diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2015-03-08 08:50:27 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2015-03-08 08:50:27 -0500 |
| commit | a984b2476a5ac858029c001e4b1fe5bf35c4402d (patch) | |
| tree | c76034bbaf9e369725873c19ab46e050c0e0bcf8 /Source/Android/src | |
| parent | 70977fd6b163d38e1db875d1e3d303656b071043 (diff) | |
| parent | c2b2e03f73300f0ac742d63a125b46ec798b2c8c (diff) | |
Merge pull request #2144 from Sonicadvance1/android_autostart
[Android] Support arguments from Activity Monitor.
Diffstat (limited to 'Source/Android/src')
3 files changed, 65 insertions, 2 deletions
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/AssetCopyService.java b/Source/Android/src/org/dolphinemu/dolphinemu/AssetCopyService.java index 83960433ec..d39bbec59f 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/AssetCopyService.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/AssetCopyService.java @@ -36,7 +36,7 @@ public final class AssetCopyService extends IntentService @Override protected void onHandleIntent(Intent intent) { - String BaseDir = Environment.getExternalStorageDirectory() + File.separator + "dolphin-emu"; + String BaseDir = NativeLibrary.GetUserDirectory(); String ConfigDir = BaseDir + File.separator + "Config"; String GCDir = BaseDir + File.separator + "GC"; diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java index 91b29e4410..ab9f25b306 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java @@ -176,6 +176,11 @@ public final class NativeLibrary public static native void SetUserDirectory(String directory); /** + * Returns the current working user directory + */ + public static native String GetUserDirectory(); + + /** * Begins emulation. * * @param surf The surface to render to. diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java index adade82145..3accec11de 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java @@ -12,11 +12,15 @@ import android.app.Fragment; import android.app.FragmentTransaction; import android.content.DialogInterface; import android.content.Intent; +import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; +import android.os.Environment; +import android.preference.PreferenceManager; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.widget.DrawerLayout; +import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -28,11 +32,13 @@ import org.dolphinemu.dolphinemu.AssetCopyService; import org.dolphinemu.dolphinemu.NativeLibrary; import org.dolphinemu.dolphinemu.R; import org.dolphinemu.dolphinemu.about.AboutActivity; +import org.dolphinemu.dolphinemu.emulation.EmulationActivity; import org.dolphinemu.dolphinemu.folderbrowser.FolderBrowser; import org.dolphinemu.dolphinemu.settings.PrefsActivity; import org.dolphinemu.dolphinemu.sidemenu.SideMenuAdapter; import org.dolphinemu.dolphinemu.sidemenu.SideMenuItem; +import java.io.File; import java.util.ArrayList; import java.util.List; @@ -49,6 +55,8 @@ public final class GameListActivity extends Activity private DrawerLayout mDrawerLayout; private SideMenuAdapter mDrawerAdapter; private ListView mDrawerList; + private boolean mAutoStart = false; + private String mAutoStartFile = ""; /** * Called from the {@link GameListFragment}. @@ -65,6 +73,7 @@ public final class GameListActivity extends Activity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setContentView(R.layout.gamelist_activity); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); @@ -104,6 +113,13 @@ public final class GameListActivity extends Activity }; mDrawerLayout.setDrawerListener(mDrawerToggle); + CheckForIntent(); + + String BaseDir = NativeLibrary.GetUserDirectory(); + final String DefaultDir = Environment.getExternalStorageDirectory() + File.separator + "dolphin-emu"; + if (BaseDir.isEmpty()) + BaseDir = DefaultDir; + NativeLibrary.SetUserDirectory(BaseDir); // Stuff in this block only happens when this activity is newly created (i.e. not a rotation) if (savedInstanceState == null) @@ -118,7 +134,6 @@ public final class GameListActivity extends Activity ft.replace(R.id.content_frame, gameList); ft.commit(); } - // Create an alert telling them that their phone sucks if (Build.CPU_ABI.contains("arm") && !NativeLibrary.SupportsNEON()) @@ -135,6 +150,49 @@ public final class GameListActivity extends Activity }); builder.show(); } + + if (mAutoStart) + { + // Start the emulation activity + Intent intent = new Intent(this, EmulationActivity.class); + intent.putExtra("SelectedGame", mAutoStartFile); + startActivity(intent); + } + } + + private void CheckForIntent() + { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + boolean handled = prefs.getBoolean("HandledIntent", false); + + // Get an editor. + SharedPreferences.Editor editor = prefs.edit(); + + Bundle extras = getIntent().getExtras(); + + if (!handled && extras != null) + { + // Application got passed extra data + editor.putBoolean("HandledIntent", true); + editor.apply(); + + // Did we get passed a new user directory? + String user_dir = extras.getString("UserDir"); + if (user_dir != null && user_dir.length() != 0) + NativeLibrary.SetUserDirectory(user_dir); + + // Did we get passed a file? + String start_file = extras.getString("AutoStartFile"); + if (start_file != null && start_file.length() != 0) + { + mAutoStart = true; + mAutoStartFile = start_file; + } + return; + } + + editor.putBoolean("HandledIntent", false); + editor.apply(); } /** |
