From 66d24112ff9a6146d8f64db77d2e3f565e2da00c Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 13 Jul 2014 19:29:10 +0400 Subject: [PATCH 1/6] NPE on empty directory Fixes NullPointerException when SD card is empty. File.listFiles() can return null. http://developer.android.com/reference/java/io/File.html#listFiles%28%29 --- .../nononsenseapps/filepicker/FilePickerFragment.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/com/nononsenseapps/filepicker/FilePickerFragment.java b/library/src/main/java/com/nononsenseapps/filepicker/FilePickerFragment.java index edee91c..e5b94e0 100644 --- a/library/src/main/java/com/nononsenseapps/filepicker/FilePickerFragment.java +++ b/library/src/main/java/com/nononsenseapps/filepicker/FilePickerFragment.java @@ -141,10 +141,13 @@ public class FilePickerFragment extends AbstractFilePickerFragment { @Override public List loadInBackground() { ArrayList files = new ArrayList(); - for (java.io.File f : currentPath.listFiles()) { - if ((mode == MODE_FILE || mode == MODE_FILE_AND_DIR) - || f.isDirectory()) { - files.add(f); + File[] listFiles = currentPath.listFiles(); + if(listFiles != null) { + for (java.io.File f : currentPath.listFiles()) { + if ((mode == MODE_FILE || mode == MODE_FILE_AND_DIR) + || f.isDirectory()) { + files.add(f); + } } } return files; From 5ec39c4ba8679297d32ef3005f4b0de0949a1c99 Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 13 Jul 2014 19:33:17 +0400 Subject: [PATCH 2/6] NPE on empty directory Use listFiles variable instead of calling again File.listFiles --- .../java/com/nononsenseapps/filepicker/FilePickerFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/nononsenseapps/filepicker/FilePickerFragment.java b/library/src/main/java/com/nononsenseapps/filepicker/FilePickerFragment.java index e5b94e0..b154dfe 100644 --- a/library/src/main/java/com/nononsenseapps/filepicker/FilePickerFragment.java +++ b/library/src/main/java/com/nononsenseapps/filepicker/FilePickerFragment.java @@ -143,7 +143,7 @@ public class FilePickerFragment extends AbstractFilePickerFragment { ArrayList files = new ArrayList(); File[] listFiles = currentPath.listFiles(); if(listFiles != null) { - for (java.io.File f : currentPath.listFiles()) { + for (java.io.File f : listFiles) { if ((mode == MODE_FILE || mode == MODE_FILE_AND_DIR) || f.isDirectory()) { files.add(f); From 73ef1d3d8174dad2407acd585ba3dd7fd3904159 Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 14 Jul 2014 10:10:39 +0400 Subject: [PATCH 3/6] New Travis config file --- .travis.yml | 49 ++++++++++--------------------------------------- 1 file changed, 10 insertions(+), 39 deletions(-) diff --git a/.travis.yml b/.travis.yml index eb23bf0..c712dc3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,39 +1,10 @@ -language: java -jdk: oraclejdk7 -env: - matrix: - #- ANDROID_SDKS=android-8 ANDROID_TARGET=android-8 ANDROID_ABI=armeabi - #- ANDROID_SDKS=android-10 ANDROID_TARGET=android-10 ANDROID_ABI=armeabi - #- ANDROID_SDKS=sysimg-16 ANDROID_TARGET=android-16 ANDROID_ABI=armeabi-v7a - - ANDROID_SDKS=android-19,sysimg-19 ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a -before_install: - - # Install base Android SDK - - sudo apt-get update -qq - - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch; fi - - wget http://dl.google.com/android/android-sdk_r22.6.2-linux.tgz - - tar zxf android-sdk_r22.6.2-linux.tgz - - export ANDROID_HOME=`pwd`/android-sdk-linux - - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools - - - echo "sdk.dir=$ANDROID_HOME" > local.properties - # Install required Android components. - - echo y | android update sdk --filter platform-tools,build-tools-19.1.0,android-19,extra-android-support,extra-android-m2repository,$ANDROID_SDKS --no-ui -a --force - - echo yes | android update sdk --filter android-19 --no-ui --force > /dev/null - - echo yes | android update sdk --filter sysimg-19 --no-ui --force > /dev/null - - echo yes | android update sdk --filter extra-android-support --no-ui --force > /dev/null - - echo yes | android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null - - echo yes | android update sdk --filter extra-google-m2repository --no-ui --force > /dev/null - - # Create and start emulator - #- echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI - #- emulator -avd test -no-skin -no-audio -no-window & - -#before_script: - # Make sure the emulator has started before running tests - #- ./wait_for_emulator - -#script: mvn install -Pintegration-tests -Dandroid.device=test -#script: -# - echo $TRAVIS_BUILD_DIR -# - TERM=dumb cd full;../gradlew connectedCheck +language: android +android: + components: + - build-tools-19.0.3 + - android-19 + - sysimg-19 + - extra-android-support + licenses: + - android-sdk-license-bcbbd656 + - '.*intel.+' From 20915a4de90e1cbb90ef57d52db036879d43c34e Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 14 Jul 2014 10:17:44 +0400 Subject: [PATCH 4/6] Added missed license for Build Tools 19.1.0 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index c712dc3..5659b8e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,4 +7,5 @@ android: - extra-android-support licenses: - android-sdk-license-bcbbd656 + - android-sdk-license-5be876d5 - '.*intel.+' From 21d4aec1533964fe15f1c2907446052cf57d5f8e Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 14 Jul 2014 10:27:33 +0400 Subject: [PATCH 5/6] Fix build tools version --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5659b8e..ae54c64 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: android android: components: - - build-tools-19.0.3 + - build-tools-19.1.0 - android-19 - sysimg-19 - extra-android-support From 0165f6f12401d7d71b87002fff524ba4ecc0db51 Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 14 Jul 2014 10:34:56 +0400 Subject: [PATCH 6/6] Create AVD before install to it --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index ae54c64..9c7a46e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,7 @@ language: android +env: + matrix: + - ANDROID_SDKS=android-19,sysimg-19 ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a android: components: - build-tools-19.1.0 @@ -9,3 +12,7 @@ android: - android-sdk-license-bcbbd656 - android-sdk-license-5be876d5 - '.*intel.+' + +before_install: + - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI + - emulator -avd test -no-skin -no-audio -no-window &