Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update gradle plugin, catch NPE caused by some motorola devices when set... #662

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4.+'
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
apply plugin: 'android-library'
apply plugin: 'com.android.library'

dependencies {
compile 'com.android.support:support-v4:13.0.0'
compile 'com.android.support:support-v4:20.0.0'
}

android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
compileSdkVersion 20
buildToolsVersion "20.0.0"

defaultConfig {
minSdkVersion 7
targetSdkVersion 16
targetSdkVersion 20
}

sourceSets {
Expand Down
81 changes: 75 additions & 6 deletions library/library.iml
Original file line number Diff line number Diff line change
@@ -1,19 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<module external.linked.project.id=":ext:SlidingMenu:library" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="jaumo-android.ext.SlidingMenu" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":ext:SlidingMenu:library" />
</configuration>
</facet>
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugTestSources" />
<option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugTestSources" />
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="RES_FOLDERS_RELATIVE_PATH" value="file:https://$MODULE_DIR$/res" />
<option name="LIBRARY_PROJECT" value="true" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file:https://$MODULE_DIR$/build/intermediates/classes/debug" />
<output-test url="file:https://$MODULE_DIR$/build/intermediates/classes/test/debug" />
<exclude-output />
<content url="file:https://$MODULE_DIR$">
<sourceFolder url="file:https://$MODULE_DIR$/gen" isTestSource="false" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/res/generated/debug" type="java-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/source/r/test/debug" isTestSource="true" generated="true" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/source/aidl/test/debug" isTestSource="true" generated="true" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/source/buildConfig/test/debug" isTestSource="true" generated="true" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/source/rs/test/debug" isTestSource="true" generated="true" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/res/rs/test/debug" type="java-test-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/build/generated/res/generated/test/debug" type="java-test-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/src/debug/resources" type="java-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/src/debug/assets" type="java-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
<sourceFolder url="file:https://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file:https://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
<sourceFolder url="file:https://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file:https://$MODULE_DIR$/res" type="java-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/src" type="java-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/assets" type="java-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file:https://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file:https://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file:https://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file:https://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file:https://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file:https://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/bundles" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/dependency-cache" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/dex" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/dex-cache" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/jacoco" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/javaResources" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/libs" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/lint" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/ndk" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/pre-dexed" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/proguard" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file:https://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file:https://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file:https://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android 4.2.2" jdkType="Android SDK" />
<orderEntry type="jdk" jdkName="Android API 20 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="support-annotations-20.0.0" level="project" />
<orderEntry type="library" exported="" name="support-v4-20.0.0" level="project" />
</component>
</module>

</module>
Original file line number Diff line number Diff line change
Expand Up @@ -779,21 +779,27 @@ private void determineDrag(MotionEvent ev) {
final int pointerIndex = getPointerIndex(ev, activePointerId);
if (activePointerId == INVALID_POINTER || pointerIndex == INVALID_POINTER)
return;
final float x = MotionEventCompat.getX(ev, pointerIndex);
final float dx = x - mLastMotionX;
final float xDiff = Math.abs(dx);
final float y = MotionEventCompat.getY(ev, pointerIndex);
final float dy = y - mLastMotionY;
final float yDiff = Math.abs(dy);
if (xDiff > (isMenuOpen()?mTouchSlop/2:mTouchSlop) && xDiff > yDiff && thisSlideAllowed(dx)) {
startDrag();
mLastMotionX = x;
mLastMotionY = y;
setScrollingCacheEnabled(true);
// TODO add back in touch slop check
} else if (xDiff > mTouchSlop) {
mIsUnableToDrag = true;
}
try {
final float x = MotionEventCompat.getX(ev, pointerIndex);
final float dx = x - mLastMotionX;
final float xDiff = Math.abs(dx);
final float y = MotionEventCompat.getY(ev, pointerIndex);
final float dy = y - mLastMotionY;
final float yDiff = Math.abs(dy);
if (xDiff > (isMenuOpen()?mTouchSlop/2:mTouchSlop) && xDiff > yDiff && thisSlideAllowed(dx)) {
startDrag();
mLastMotionX = x;
mLastMotionY = y;
setScrollingCacheEnabled(true);
// TODO add back in touch slop check
} else if (xDiff > mTouchSlop) {
mIsUnableToDrag = true;
}
}
catch (ArrayIndexOutOfBoundsException e) {
// Ignore. Occasionally happens in MotionEventCompat.getX
// Known problem, caused in Android Framework
}
}

@Override
Expand Down
17 changes: 11 additions & 6 deletions library/src/com/jeremyfeinstein/slidingmenu/lib/SlidingMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -1008,12 +1008,17 @@ public void manageLayers(float percentOpen) {
if (layerType != getContent().getLayerType()) {
getHandler().post(new Runnable() {
public void run() {
Log.v(TAG, "changing layerType. hardware? " + (layerType == View.LAYER_TYPE_HARDWARE));
getContent().setLayerType(layerType, null);
getMenu().setLayerType(layerType, null);
if (getSecondaryMenu() != null) {
getSecondaryMenu().setLayerType(layerType, null);
}
try {
Log.v(TAG, "changing layerType. hardware? " + (layerType == View.LAYER_TYPE_HARDWARE));
getContent().setLayerType(layerType, null);
getMenu().setLayerType(layerType, null);
if (getSecondaryMenu() != null) {
getSecondaryMenu().setLayerType(layerType, null);
}
}
catch (NullPointerException e) {
// Happens on some motorola devices
}
}
});
}
Expand Down