diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2015-06-08 04:02:22 -0400 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2015-06-08 04:02:22 -0400 |
| commit | 21b1d143bc73d8825bea8f4c80aa16c361f0bea0 (patch) | |
| tree | c6bb2333a76d5d2a1f09863ddbf4d4ca777e7db5 /Source/Android/app/src/main/java | |
| parent | 1b6969ca678611965007b3233922cac5b21eef74 (diff) | |
| parent | a97e9addf0f3a465c6a8b1db1aab38829b902a42 (diff) | |
Merge pull request #2566 from sigmabeta/android-tv-back
Android TV: Show the in-game menu when back button is pushed.
Diffstat (limited to 'Source/Android/app/src/main/java')
| -rw-r--r-- | Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java | 29 |
1 files changed, 27 insertions, 2 deletions
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 b4c61bea0e..aee84a4b31 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 @@ -26,6 +26,9 @@ public final class EmulationActivity extends Activity { private View mDecorView; + private boolean mDeviceHasTouchScreen; + private boolean mSystemUiVisible; + /** * Handlers are a way to pass a message to an Activity telling it to do something * on the UI thread. This Handler responds to any message, even blank ones, by @@ -45,6 +48,8 @@ public final class EmulationActivity extends Activity { super.onCreate(savedInstanceState); + mDeviceHasTouchScreen = getPackageManager().hasSystemFeature("android.hardware.touchscreen"); + // Get a handle to the Window containing the UI. mDecorView = getWindow().getDecorView(); @@ -60,9 +65,9 @@ public final class EmulationActivity extends Activity @Override public void onSystemUiVisibilityChange(int flags) { - boolean visible = (flags & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0; + mSystemUiVisible = (flags & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0; - if (visible) + if (mSystemUiVisible) { getActionBar().show(); hideSystemUiAfterDelay(); @@ -136,6 +141,20 @@ public final class EmulationActivity extends Activity } @Override + public void onBackPressed() + { + if (!mDeviceHasTouchScreen && !mSystemUiVisible) + { + showSystemUI(); + } + else + { + // Let the system handle it; i.e. quit the activity TODO or show "are you sure?" dialog. + super.onBackPressed(); + } + } + + @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. @@ -293,6 +312,8 @@ public final class EmulationActivity extends Activity private void hideSystemUI() { + mSystemUiVisible = false; + mDecorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | @@ -303,8 +324,12 @@ public final class EmulationActivity extends Activity private void showSystemUI() { + mSystemUiVisible = true; + mDecorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + + hideSystemUiAfterDelay(); } } |
