diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/DolphinApplication.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/DolphinApplication.java index e0eb5e5415..6c2e3be39d 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/DolphinApplication.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/DolphinApplication.java @@ -3,6 +3,8 @@ package org.dolphinemu.dolphinemu; import android.app.Application; import org.dolphinemu.dolphinemu.model.GameDatabase; +import org.dolphinemu.dolphinemu.services.DirectoryInitializationService; +import org.dolphinemu.dolphinemu.utils.PermissionsHandler; public class DolphinApplication extends Application { @@ -13,6 +15,11 @@ public class DolphinApplication extends Application { super.onCreate(); + NativeLibrary.SetUserDirectory(""); // Empty string means use the default path + + if (PermissionsHandler.hasWriteAccess(getApplicationContext())) + DirectoryInitializationService.startService(getApplicationContext()); + databaseHelper = new GameDatabase(this); } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java index 72a9477f00..1f46f8eecb 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.java @@ -58,7 +58,6 @@ public final class MainActivity extends AppCompatActivity implements MainView mPresenter.onCreate(); // Stuff in this block only happens when this activity is newly created (i.e. not a rotation) - // TODO Split some of this stuff into Application.onCreate() if (savedInstanceState == null) StartupHandler.HandleInit(this); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java index 11cdf861c6..738d696b31 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/StartupHandler.java @@ -5,28 +5,19 @@ import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.text.TextUtils; -import org.dolphinemu.dolphinemu.NativeLibrary; import org.dolphinemu.dolphinemu.activities.EmulationActivity; -import org.dolphinemu.dolphinemu.services.DirectoryInitializationService; public final class StartupHandler { public static boolean HandleInit(FragmentActivity parent) { - String user_dir = ""; - String start_file = ""; + // Ask the user to grant write permission if it's not already granted + PermissionsHandler.checkWritePermission(parent); + String start_file = ""; Bundle extras = parent.getIntent().getExtras(); if (extras != null) - { - user_dir = extras.getString("UserDir"); start_file = extras.getString("AutoStartFile"); - } - - NativeLibrary.SetUserDirectory(user_dir); // Uses default path if user_dir equals "" - - if (PermissionsHandler.checkWritePermission(parent)) - DirectoryInitializationService.startService(parent); if (!TextUtils.isEmpty(start_file)) {