diff --git a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java b/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java index 7d890f81f5..8fe80a702c 100644 --- a/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java +++ b/android/phoenix/src/com/retroarch/browser/mainmenu/MainMenuFragment.java @@ -22,6 +22,7 @@ import android.preference.PreferenceManager; import android.provider.Settings; import android.util.Log; import android.widget.Toast; +import android.os.Environment; import com.retroarch.R; import com.retroarch.browser.NativeInterface; @@ -250,5 +251,8 @@ public final class MainMenuFragment extends PreferenceListFragment implements On retro.putExtra("CONFIGFILE", configFilePath); retro.putExtra("IME", imePath); retro.putExtra("DATADIR", dataDirPath); + retro.putExtra("SDCARD", Environment.getExternalStorageDirectory().getAbsolutePath()); + retro.putExtra("DOWNLOADS", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()); + retro.putExtra("SCREENSHOTS", Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()); } } diff --git a/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityCommon.java b/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityCommon.java index de1e03e3e9..740d528d0e 100644 --- a/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityCommon.java +++ b/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityCommon.java @@ -6,7 +6,7 @@ import com.retroarch.browser.preferences.util.UserPreferences; * Class which provides common methods for RetroActivity related classes. */ public class RetroActivityCommon extends RetroActivityLocation -{ +{ @Override public void onLowMemory() { diff --git a/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityIntent.java b/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityIntent.java index b8250b20cf..91ccc3f8a6 100644 --- a/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityIntent.java +++ b/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityIntent.java @@ -7,6 +7,7 @@ import android.util.Log; public class RetroActivityIntent extends RetroActivityCommon { private Intent pendingIntent = null; + private static final String TAG = "RetroArch"; @Override public void onBackPressed() @@ -56,6 +57,21 @@ public class RetroActivityIntent extends RetroActivityCommon { return pendingIntent.getStringExtra("CONFIGFILE"); } + public String getPendingIntentStorageLocation() + { + return pendingIntent.getStringExtra("SDCARD"); + } + + public String getPendingIntentDownloadLocation() + { + return pendingIntent.getStringExtra("DOWNLOADS"); + } + + public String getPendingIntentScreenshotsLocation() + { + return pendingIntent.getStringExtra("SCREENSHOTS"); + } + /** * Gets the specified IME in the pending intent. * diff --git a/frontend/drivers/platform_android.c b/frontend/drivers/platform_android.c index d93b8bf891..64ea009321 100644 --- a/frontend/drivers/platform_android.c +++ b/frontend/drivers/platform_android.c @@ -568,6 +568,75 @@ static void frontend_android_get_environment_settings(int *argc, } } + /* External Storage */ + CALL_OBJ_METHOD_PARAM(env, jstr, obj, android_app->getStringExtra, + (*env)->NewStringUTF(env, "SDCARD")); + + if (android_app->getStringExtra && jstr) + { + static char path[PATH_MAX_LENGTH]; + const char *argv = NULL; + + *path = '\0'; + argv = (*env)->GetStringUTFChars(env, jstr, 0); + + if (argv && *argv) + strlcpy(path, argv, sizeof(path)); + (*env)->ReleaseStringUTFChars(env, jstr, argv); + + if (*path) + { + RARCH_LOG("External Storage Location %s.\n", path); + //todo base dir handler + } + } + + /* Screenshots */ + CALL_OBJ_METHOD_PARAM(env, jstr, obj, android_app->getStringExtra, + (*env)->NewStringUTF(env, "SCREENSHOTS")); + + if (android_app->getStringExtra && jstr) + { + static char path[PATH_MAX_LENGTH]; + const char *argv = NULL; + + *path = '\0'; + argv = (*env)->GetStringUTFChars(env, jstr, 0); + + if (argv && *argv) + strlcpy(path, argv, sizeof(path)); + (*env)->ReleaseStringUTFChars(env, jstr, argv); + + if (*path) + { + RARCH_LOG("Screenshot Location %s.\n", path); + //todo screenshot handler + } + } + + /* Downloads */ + CALL_OBJ_METHOD_PARAM(env, jstr, obj, android_app->getStringExtra, + (*env)->NewStringUTF(env, "DOWNLOADS")); + + if (android_app->getStringExtra && jstr) + { + static char path[PATH_MAX_LENGTH]; + const char *argv = NULL; + + *path = '\0'; + argv = (*env)->GetStringUTFChars(env, jstr, 0); + + if (argv && *argv) + strlcpy(path, argv, sizeof(path)); + (*env)->ReleaseStringUTFChars(env, jstr, argv); + + if (*path) + { + RARCH_LOG("Downloads Location %s.\n", path); + //todo downloads handler + } + } + /* Content. */ CALL_OBJ_METHOD_PARAM(env, jstr, obj, android_app->getStringExtra, (*env)->NewStringUTF(env, "DATADIR")); diff --git a/frontend/drivers/platform_android.h b/frontend/drivers/platform_android.h index 64e9003bcd..ca70f4adda 100644 --- a/frontend/drivers/platform_android.h +++ b/frontend/drivers/platform_android.h @@ -57,6 +57,9 @@ struct android_app jmethodID getPendingIntentLibretroPath; jmethodID getPendingIntentFullPath; jmethodID getPendingIntentIME; + jmethodID getPendingIntentStorageLocation; + jmethodID getPendingIntentDownloadsLocation; + jmethodID getPendingIntentScreenshotsLocation; }; enum