summaryrefslogtreecommitdiff
path: root/Source/Android/src
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2015-03-08 08:50:27 -0500
committerRyan Houdek <Sonicadvance1@gmail.com>2015-03-08 08:50:27 -0500
commita984b2476a5ac858029c001e4b1fe5bf35c4402d (patch)
treec76034bbaf9e369725873c19ab46e050c0e0bcf8 /Source/Android/src
parent70977fd6b163d38e1db875d1e3d303656b071043 (diff)
parentc2b2e03f73300f0ac742d63a125b46ec798b2c8c (diff)
Merge pull request #2144 from Sonicadvance1/android_autostart
[Android] Support arguments from Activity Monitor.
Diffstat (limited to 'Source/Android/src')
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/AssetCopyService.java2
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java5
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java60
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();
}
/**