Browse Source

Added support for some more File::getSpecialLocation locations on Android

tags/2021-05-28
jules 10 years ago
parent
commit
de4637d8cb
3 changed files with 28 additions and 7 deletions
  1. +12
    -0
      modules/juce_core/native/java/JuceAppActivity.java
  2. +11
    -7
      modules/juce_core/native/juce_android_Files.cpp
  3. +5
    -0
      modules/juce_core/native/juce_android_JNIHelpers.h

+ 12
- 0
modules/juce_core/native/java/JuceAppActivity.java View File

@@ -38,6 +38,7 @@ import android.os.Handler;
import android.os.Build;
import android.os.Process;
import android.os.ParcelUuid;
import android.os.Environment;
import android.view.*;
import android.view.inputmethod.BaseInputConnection;
import android.view.inputmethod.EditorInfo;
@@ -917,6 +918,17 @@ public class JuceAppActivity extends Activity
: locale.getDisplayLanguage (java.util.Locale.US);
}
private static final String getFileLocation (String type)
{
return Environment.getExternalStoragePublicDirectory (type).getAbsolutePath();
}
public static final String getDocumentsFolder() { return getFileLocation (Environment.DIRECTORY_DOCUMENTS); }
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); }
public static final String getDownloadsFolder() { return getFileLocation (Environment.DIRECTORY_DOWNLOADS); }
//==============================================================================
private final class SingleMediaScanner implements MediaScannerConnectionClient
{


+ 11
- 7
modules/juce_core/native/juce_android_Files.cpp View File

@@ -46,23 +46,27 @@ String File::getVersion() const
return String();
}
static File getSpecialFile (jmethodID type)
{
return File (juceString (LocalRef<jstring> ((jstring) getEnv()->CallStaticObjectMethod (JuceAppActivity, type))));
}
File File::getSpecialLocation (const SpecialLocationType type)
{
switch (type)
{
case userHomeDirectory:
case userDocumentsDirectory:
case userMusicDirectory:
case userMoviesDirectory:
case userPicturesDirectory:
case userApplicationDataDirectory:
case userDesktopDirectory:
return File (android.appDataDir);
case commonApplicationDataDirectory:
case commonDocumentsDirectory:
return File (android.appDataDir);
case userDocumentsDirectory:
case commonDocumentsDirectory: return getSpecialFile (JuceAppActivity.getDocumentsFolder);
case userPicturesDirectory: return getSpecialFile (JuceAppActivity.getPicturesFolder);
case userMusicDirectory: return getSpecialFile (JuceAppActivity.getMusicFolder);
case userMoviesDirectory: return getSpecialFile (JuceAppActivity.getMoviesFolder);
case globalApplicationsDirectory:
return File ("/system/app");


+ 5
- 0
modules/juce_core/native/juce_android_JNIHelpers.h View File

@@ -277,6 +277,11 @@ extern AndroidSystem android;
METHOD (showOkCancelBox, "showOkCancelBox", "(Ljava/lang/String;Ljava/lang/String;J)V") \
METHOD (showYesNoCancelBox, "showYesNoCancelBox", "(Ljava/lang/String;Ljava/lang/String;J)V") \
STATICMETHOD (getLocaleValue, "getLocaleValue", "(Z)Ljava/lang/String;") \
STATICMETHOD (getDocumentsFolder, "getDocumentsFolder", "()Ljava/lang/String;") \
STATICMETHOD (getPicturesFolder, "getPicturesFolder", "()Ljava/lang/String;") \
STATICMETHOD (getMusicFolder, "getMusicFolder", "()Ljava/lang/String;") \
STATICMETHOD (getDownloadsFolder, "getDownloadsFolder", "()Ljava/lang/String;") \
STATICMETHOD (getMoviesFolder, "getMoviesFolder", "()Ljava/lang/String;") \
METHOD (scanFile, "scanFile", "(Ljava/lang/String;)V") \
METHOD (getTypeFaceFromAsset, "getTypeFaceFromAsset", "(Ljava/lang/String;)Landroid/graphics/Typeface;") \
METHOD (getTypeFaceFromByteArray,"getTypeFaceFromByteArray","([B)Landroid/graphics/Typeface;") \


Loading…
Cancel
Save