diff --git a/src/android/app/src/main/java/org/citra/citra_android/activities/EmulationActivity.java b/src/android/app/src/main/java/org/citra/citra_android/activities/EmulationActivity.java index 5c2d3cb21..bc90b15c8 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/activities/EmulationActivity.java +++ b/src/android/app/src/main/java/org/citra/citra_android/activities/EmulationActivity.java @@ -24,7 +24,6 @@ import android.view.View; import android.widget.ImageView; import android.widget.SeekBar; import android.widget.TextView; -import android.widget.Toast; import com.squareup.picasso.Callback; import com.squareup.picasso.Picasso; @@ -100,7 +99,6 @@ public final class EmulationActivity extends AppCompatActivity { private int mPosition; private boolean mDeviceHasTouchScreen; private boolean mMenuVisible; - private boolean mBackPressedOnce; private boolean activityRecreated; private String mScreenPath; private String mSelectedTitle; @@ -250,22 +248,24 @@ public final class EmulationActivity extends AppCompatActivity { toggleMenu(); } } else { - if (mBackPressedOnce) { - mEmulationFragment.stopEmulation(); - exitWithAnimation(); - } else { - mBackPressedOnce = true; - Toast.makeText(this, "Press back again to exit", Toast.LENGTH_SHORT).show(); - } - - Handler mHandler = new Handler(); - mHandler.postDelayed(new Runnable() { - @Override - public void run() { - mBackPressedOnce = false; - mHandler.removeCallbacks(this); - } - }, 2000); + NativeLibrary.PauseEmulation(); + new AlertDialog.Builder(this) + .setTitle(R.string.emulation_close_game) + .setMessage(R.string.emulation_close_game_message) + .setIcon(R.drawable.ic_launcher) + .setPositiveButton(R.string.yes, (dialogInterface, i) -> + { + mEmulationFragment.stopEmulation(); + exitWithAnimation(); + }) + .setNegativeButton(R.string.cancel, (dialogInterface, i) -> + { + }).setOnDismissListener(dialogInterface -> + { + NativeLibrary.UnPauseEmulation(); + }) + .create() + .show(); } } @@ -348,7 +348,7 @@ public final class EmulationActivity extends AppCompatActivity { getMenuInflater().inflate(R.menu.menu_emulation, menu); - // mPreferences = PreferenceManager.getDefaultSharedPreferences(getContext()); + // mPreferences = PreferenceManager.getDefaultSharedPreferences(getContext()); int layoutOption = mPreferences.getInt("LandscapeScreenLayout", LayoutOption_MobileLandscape); int menuItemId = R.id.menu_screen_layout_landscape; diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 93749c60d..fe35c9b3f 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -159,6 +159,8 @@ Side by Side Screens Swap Screens Reset Overlay + Close Game + Are you sure that you would like to close the current game? You need to allow write access to external storage for the emulator to work Loading Settings...