Android: Show the in-game menu when back button is pushed.
This commit is contained in:
parent
5c7caf1f22
commit
a97e9addf0
|
@ -25,6 +25,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
|
||||
|
@ -44,6 +47,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();
|
||||
|
||||
|
@ -59,9 +64,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();
|
||||
|
@ -117,6 +122,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)
|
||||
{
|
||||
|
@ -275,6 +294,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 |
|
||||
|
@ -285,8 +306,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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue