Merge pull request #6140 from hackbar/cleanup2
Android: minor UI changes
This commit is contained in:
commit
ad8d885c1d
|
@ -8,7 +8,6 @@ import android.content.SharedPreferences;
|
||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.support.annotation.IntDef;
|
import android.support.annotation.IntDef;
|
||||||
import android.support.v4.app.ActivityOptionsCompat;
|
import android.support.v4.app.ActivityOptionsCompat;
|
||||||
|
@ -63,24 +62,10 @@ public final class EmulationActivity extends AppCompatActivity
|
||||||
private int mPosition;
|
private int mPosition;
|
||||||
|
|
||||||
private boolean mDeviceHasTouchScreen;
|
private boolean mDeviceHasTouchScreen;
|
||||||
private boolean mSystemUiVisible;
|
|
||||||
private boolean mMenuVisible;
|
private boolean mMenuVisible;
|
||||||
|
|
||||||
private static boolean sIsGameCubeGame;
|
private static boolean sIsGameCubeGame;
|
||||||
|
|
||||||
/**
|
|
||||||
* 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
|
|
||||||
* hiding the system UI.
|
|
||||||
*/
|
|
||||||
private Handler mSystemUiHider = new Handler()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void handleMessage(Message msg)
|
|
||||||
{
|
|
||||||
hideSystemUI();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
private String mScreenPath;
|
private String mScreenPath;
|
||||||
private String mSelectedTitle;
|
private String mSelectedTitle;
|
||||||
|
|
||||||
|
@ -187,32 +172,28 @@ public final class EmulationActivity extends AppCompatActivity
|
||||||
|
|
||||||
// Get a handle to the Window containing the UI.
|
// Get a handle to the Window containing the UI.
|
||||||
mDecorView = getWindow().getDecorView();
|
mDecorView = getWindow().getDecorView();
|
||||||
|
mDecorView.setOnSystemUiVisibilityChangeListener
|
||||||
// Set these options now so that the SurfaceView the game renders into is the right size.
|
(new View.OnSystemUiVisibilityChangeListener() {
|
||||||
mDecorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
|
@Override
|
||||||
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
|
public void onSystemUiVisibilityChange(int visibility) {
|
||||||
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
|
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0)
|
||||||
|
|
||||||
// Set the ActionBar to follow the navigation/status bar's visibility changes.
|
|
||||||
mDecorView.setOnSystemUiVisibilityChangeListener(
|
|
||||||
new View.OnSystemUiVisibilityChangeListener()
|
|
||||||
{
|
{
|
||||||
@Override
|
// Go back to immersive fullscreen mode in 3s
|
||||||
public void onSystemUiVisibilityChange(int flags)
|
Handler handler = new Handler(getMainLooper());
|
||||||
|
handler.postDelayed(new Runnable()
|
||||||
{
|
{
|
||||||
mSystemUiVisible = (flags & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
|
@Override
|
||||||
|
public void run()
|
||||||
if (mSystemUiVisible)
|
|
||||||
{
|
{
|
||||||
getSupportActionBar().show();
|
enableFullscreenImmersive();
|
||||||
hideSystemUiAfterDelay();
|
|
||||||
}
|
}
|
||||||
else
|
},
|
||||||
{
|
3000 /* 3s */);
|
||||||
getSupportActionBar().hide();
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
// Set these options now so that the SurfaceView the game renders into is the right size.
|
||||||
|
enableFullscreenImmersive();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -290,38 +271,6 @@ public final class EmulationActivity extends AppCompatActivity
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostCreate(Bundle savedInstanceState)
|
|
||||||
{
|
|
||||||
super.onPostCreate(savedInstanceState);
|
|
||||||
|
|
||||||
if (mDeviceHasTouchScreen)
|
|
||||||
{
|
|
||||||
// Give the user a few seconds to see what the controls look like, then hide them.
|
|
||||||
hideSystemUiAfterDelay();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWindowFocusChanged(boolean hasFocus)
|
|
||||||
{
|
|
||||||
super.onWindowFocusChanged(hasFocus);
|
|
||||||
|
|
||||||
if (mDeviceHasTouchScreen)
|
|
||||||
{
|
|
||||||
if (hasFocus)
|
|
||||||
{
|
|
||||||
hideSystemUiAfterDelay();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// If the window loses focus (i.e. a dialog box, or a popup menu is on screen
|
|
||||||
// stop hiding the UI.
|
|
||||||
mSystemUiHider.removeMessages(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed()
|
public void onBackPressed()
|
||||||
{
|
{
|
||||||
|
@ -342,6 +291,18 @@ public final class EmulationActivity extends AppCompatActivity
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void enableFullscreenImmersive()
|
||||||
|
{
|
||||||
|
// It would be nice to use IMMERSIVE_STICKY, but that doesn't show the toolbar.
|
||||||
|
mDecorView.setSystemUiVisibility(
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
|
||||||
|
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
|
||||||
|
View.SYSTEM_UI_FLAG_FULLSCREEN |
|
||||||
|
View.SYSTEM_UI_FLAG_IMMERSIVE);
|
||||||
|
}
|
||||||
|
|
||||||
private void toggleMenu()
|
private void toggleMenu()
|
||||||
{
|
{
|
||||||
boolean result = getSupportFragmentManager().popBackStackImmediate(
|
boolean result = getSupportFragmentManager().popBackStackImmediate(
|
||||||
|
@ -774,38 +735,6 @@ public final class EmulationActivity extends AppCompatActivity
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void hideSystemUiAfterDelay()
|
|
||||||
{
|
|
||||||
// Clear any pending hide events.
|
|
||||||
mSystemUiHider.removeMessages(0);
|
|
||||||
|
|
||||||
// Add a new hide event, to occur 3 seconds from now.
|
|
||||||
mSystemUiHider.sendEmptyMessageDelayed(0, 3000);
|
|
||||||
}
|
|
||||||
|
|
||||||
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 |
|
|
||||||
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
|
|
||||||
View.SYSTEM_UI_FLAG_FULLSCREEN |
|
|
||||||
View.SYSTEM_UI_FLAG_IMMERSIVE);
|
|
||||||
}
|
|
||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void showSubMenu(SaveLoadStateFragment.SaveOrLoad saveOrLoad)
|
private void showSubMenu(SaveLoadStateFragment.SaveOrLoad saveOrLoad)
|
||||||
{
|
{
|
||||||
// Get rid of any visible submenu
|
// Get rid of any visible submenu
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
android:id="@+id/image_game_screen"
|
android:id="@+id/image_game_screen"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:transitionName="image_game_screenshot"
|
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
tools:src="@drawable/placeholder_screenshot"
|
tools:src="@drawable/placeholder_screenshot"
|
||||||
tools:scaleType="centerCrop"/>
|
tools:scaleType="centerCrop"/>
|
||||||
|
|
Loading…
Reference in New Issue