From d5249492aeba9292ac4ea48958ee28683d34d427 Mon Sep 17 00:00:00 2001 From: hogliux Date: Tue, 29 Aug 2017 09:33:39 +0100 Subject: [PATCH] Android: Fixed File::getSpecialLocation (userDocumentsDirectory) to return correct directory on newer Android versions --- modules/juce_core/native/java/JuceAppActivity.java | 11 +++++++++-- modules/juce_core/native/juce_android_JNIHelpers.h | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/juce_core/native/java/JuceAppActivity.java b/modules/juce_core/native/java/JuceAppActivity.java index 53c3ff0644..42de8c7a8c 100644 --- a/modules/juce_core/native/java/JuceAppActivity.java +++ b/modules/juce_core/native/java/JuceAppActivity.java @@ -1226,7 +1226,14 @@ public class JuceAppActivity extends Activity return Environment.getExternalStoragePublicDirectory (type).getAbsolutePath(); } - public static final String getDocumentsFolder() { return Environment.getDataDirectory().getAbsolutePath(); } + public static final String getDocumentsFolder() + { + if (getAndroidSDKVersion() >= android.os.Build.VERSION_CODES.KITKAT) + return getFileLocation (Environment.DIRECTORY_DOCUMENTS); + + return Environment.getDataDirectory().getAbsolutePath(); + } + public static final String getPicturesFolder() { return getFileLocation (Environment.DIRECTORY_PICTURES); } public static final String getMusicFolder() { return getFileLocation (Environment.DIRECTORY_MUSIC); } public static final String getMoviesFolder() { return getFileLocation (Environment.DIRECTORY_MOVIES); } @@ -1321,7 +1328,7 @@ public class JuceAppActivity extends Activity return null; } - public final int getAndroidSDKVersion() + public static final int getAndroidSDKVersion() { return android.os.Build.VERSION.SDK_INT; } diff --git a/modules/juce_core/native/juce_android_JNIHelpers.h b/modules/juce_core/native/juce_android_JNIHelpers.h index a0e17e347e..1b5b100ea8 100644 --- a/modules/juce_core/native/juce_android_JNIHelpers.h +++ b/modules/juce_core/native/juce_android_JNIHelpers.h @@ -305,7 +305,7 @@ extern AndroidSystem android; METHOD (getScreenSaver, "getScreenSaver", "()Z") \ METHOD (getAndroidMidiDeviceManager, "getAndroidMidiDeviceManager", "()L" JUCE_ANDROID_ACTIVITY_CLASSPATH "$MidiDeviceManager;") \ METHOD (getAndroidBluetoothManager, "getAndroidBluetoothManager", "()L" JUCE_ANDROID_ACTIVITY_CLASSPATH "$BluetoothManager;") \ - METHOD (getAndroidSDKVersion, "getAndroidSDKVersion", "()I") \ + STATICMETHOD (getAndroidSDKVersion, "getAndroidSDKVersion", "()I") \ METHOD (audioManagerGetProperty, "audioManagerGetProperty", "(Ljava/lang/String;)Ljava/lang/String;") \ METHOD (hasSystemFeature, "hasSystemFeature", "(Ljava/lang/String;)Z" ) \ METHOD (requestRuntimePermission, "requestRuntimePermission", "(IJ)V" ) \