Android: Remove some touchscreen checks from EmulationActivity

It's better to directly check whether we have an InputOverlay
than to check a proxy for it.
This commit is contained in:
JosJuice
2020-11-02 11:05:21 +01:00
parent c3bc079c81
commit 8123263631
2 changed files with 22 additions and 15 deletions

View File

@ -73,7 +73,6 @@ public final class EmulationActivity extends AppCompatActivity
private Settings mSettings; private Settings mSettings;
private boolean mDeviceHasTouchScreen;
private boolean mMenuVisible; private boolean mMenuVisible;
private static boolean sIgnoreLaunchRequests = false; private static boolean sIgnoreLaunchRequests = false;
@ -229,7 +228,6 @@ public final class EmulationActivity extends AppCompatActivity
updateOrientation(); updateOrientation();
mDeviceHasTouchScreen = getPackageManager().hasSystemFeature("android.hardware.touchscreen");
mMotionListener = new MotionListener(this); mMotionListener = new MotionListener(this);
// Set these options now so that the SurfaceView the game renders into is the right size. // Set these options now so that the SurfaceView the game renders into is the right size.
@ -311,7 +309,6 @@ public final class EmulationActivity extends AppCompatActivity
setTitle(NativeLibrary.GetCurrentTitleDescription()); setTitle(NativeLibrary.GetCurrentTitleDescription());
updateMotionListener(); updateMotionListener();
if (mDeviceHasTouchScreen)
mEmulationFragment.refreshInputOverlay(); mEmulationFragment.refreshInputOverlay();
} }
@ -1169,7 +1166,6 @@ public final class EmulationActivity extends AppCompatActivity
public void initInputPointer() public void initInputPointer()
{ {
if (mDeviceHasTouchScreen)
mEmulationFragment.initInputPointer(); mEmulationFragment.initInputPointer();
} }
} }

View File

@ -124,21 +124,26 @@ public final class EmulationFragment extends Fragment implements SurfaceHolder.C
{ {
BooleanSetting.MAIN_SHOW_INPUT_OVERLAY BooleanSetting.MAIN_SHOW_INPUT_OVERLAY
.setBoolean(settings, !BooleanSetting.MAIN_SHOW_INPUT_OVERLAY.getBoolean(settings)); .setBoolean(settings, !BooleanSetting.MAIN_SHOW_INPUT_OVERLAY.getBoolean(settings));
if (mInputOverlay != null)
mInputOverlay.refreshControls(); mInputOverlay.refreshControls();
} }
public void initInputPointer() public void initInputPointer()
{ {
if (mInputOverlay != null)
mInputOverlay.initTouchPointer(); mInputOverlay.initTouchPointer();
} }
public void refreshInputOverlay() public void refreshInputOverlay()
{ {
if (mInputOverlay != null)
mInputOverlay.refreshControls(); mInputOverlay.refreshControls();
} }
public void resetInputOverlay() public void resetInputOverlay()
{ {
if (mInputOverlay != null)
mInputOverlay.resetButtonPlacement(); mInputOverlay.resetButtonPlacement();
} }
@ -169,19 +174,25 @@ public final class EmulationFragment extends Fragment implements SurfaceHolder.C
public void startConfiguringControls() public void startConfiguringControls()
{ {
getView().findViewById(R.id.done_control_config).setVisibility(View.VISIBLE); if (mInputOverlay != null)
{
requireView().findViewById(R.id.done_control_config).setVisibility(View.VISIBLE);
mInputOverlay.setIsInEditMode(true); mInputOverlay.setIsInEditMode(true);
} }
}
public void stopConfiguringControls() public void stopConfiguringControls()
{ {
getView().findViewById(R.id.done_control_config).setVisibility(View.GONE); if (mInputOverlay != null)
{
requireView().findViewById(R.id.done_control_config).setVisibility(View.GONE);
mInputOverlay.setIsInEditMode(false); mInputOverlay.setIsInEditMode(false);
} }
}
public boolean isConfiguringControls() public boolean isConfiguringControls()
{ {
return mInputOverlay.isInEditMode(); return mInputOverlay != null && mInputOverlay.isInEditMode();
} }
private static class EmulationState private static class EmulationState