summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2015-06-24 21:39:47 -0500
committerRyan Houdek <Sonicadvance1@gmail.com>2015-06-24 21:39:47 -0500
commit521f6e89c31811103a96da8e9c32820aa5b64ee9 (patch)
treef41760ec5c240bb5737ab1e8819a063b1f6abc75 /Source/Android/app/src/main/java
parent2a5dd69c72677154215564aa837bb6bdc0213dea (diff)
parent7935c1c57a264158bbc8e0bda97fedaa8cbba96a (diff)
Merge pull request #2624 from sigmabeta/android-save-screenshot
Android: Save screenshot at end of an emulation session.
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java12
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/Game.java16
5 files changed, 28 insertions, 18 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
index d8b1b6c112..c9efb0c790 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
@@ -274,6 +274,12 @@ public final class NativeLibrary
});
}
+ public static void endEmulationActivity()
+ {
+ Log.v("DolphinEmu", "Ending EmulationActivity.");
+ mEmulationActivity.finish();
+ }
+
public static void setEmulationActivity(EmulationActivity emulationActivity)
{
Log.v("DolphinEmu", "Registering EmulationActivity.");
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
index cb6b17c3d5..b569785d35 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java
@@ -150,7 +150,11 @@ public final class EmulationActivity extends AppCompatActivity
else
{
// Let the system handle it; i.e. quit the activity TODO or show "are you sure?" dialog.
- super.onBackPressed();
+ EmulationFragment fragment = (EmulationFragment) getFragmentManager()
+ .findFragmentByTag(EmulationFragment.FRAGMENT_TAG);
+ fragment.notifyEmulationStopped();
+
+ NativeLibrary.StopEmulation();
}
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java
index d296c5e023..a9a7be930e 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/GameAdapter.java
@@ -79,9 +79,13 @@ public final class GameAdapter extends RecyclerView.Adapter<GameViewHolder> impl
{
if (mCursor.moveToPosition(position))
{
+ String screenPath = mCursor.getString(GameDatabase.GAME_COLUMN_SCREENSHOT_PATH);
+ Picasso.with(holder.imageScreenshot.getContext())
+ .invalidate(screenPath);
+
// Fill in the view contents.
Picasso.with(holder.imageScreenshot.getContext())
- .load(mCursor.getString(GameDatabase.GAME_COLUMN_SCREENSHOT_PATH))
+ .load(screenPath)
.fit()
.centerCrop()
.error(R.drawable.no_banner)
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java
index 70dff7237e..9d23736cb6 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.java
@@ -119,7 +119,7 @@ public final class EmulationFragment extends Fragment implements SurfaceHolder.C
public void onDestroyView()
{
super.onDestroyView();
- if (getActivity().isFinishing())
+ if (getActivity().isFinishing() && mEmulationStarted)
{
NativeLibrary.StopEmulation();
}
@@ -195,6 +195,16 @@ public final class EmulationFragment extends Fragment implements SurfaceHolder.C
mEmulationRunning = false;
}
+ /**
+ * Called by containing activity to tell the Fragment emulation is already stopping,
+ * so it doesn't try to stop emulation on its way to the garbage collector.
+ */
+ public void notifyEmulationStopped()
+ {
+ mEmulationStarted = false;
+ mEmulationRunning = false;
+ }
+
private Runnable mEmulationRunner = new Runnable()
{
@Override
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/Game.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/Game.java
index ae52261b45..f3ef6f7514 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/Game.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/Game.java
@@ -113,21 +113,7 @@ public final class Game
{
ContentValues values = new ContentValues();
- // TODO Come up with a way of finding the most recent screenshot that doesn't involve counting files
- String screenshotFolderPath = PATH_SCREENSHOT_FOLDER + gameId + "/";
-
- // Count how many screenshots are available, so we can use the most recent one.
- File screenshotFolder = new File(screenshotFolderPath.substring(screenshotFolderPath.indexOf('s') - 1));
- int screenCount = 0;
-
- if (screenshotFolder.isDirectory())
- {
- screenCount = screenshotFolder.list().length;
- }
-
- String screenPath = screenshotFolderPath
- + gameId + "-"
- + screenCount + ".png";
+ String screenPath = PATH_SCREENSHOT_FOLDER + gameId + "/thumb.png";
values.put(GameDatabase.KEY_GAME_PLATFORM, platform);
values.put(GameDatabase.KEY_GAME_TITLE, title);