mirror of
https://github.com/izzy2lost/WeeU.git
synced 2026-07-06 00:19:59 -07:00
Added option to show input overlay & quit during emulation
This commit is contained in:
@@ -6,6 +6,7 @@ import android.os.Bundle;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import androidx.activity.OnBackPressedCallback;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.view.WindowCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
@@ -44,6 +45,13 @@ public class EmulationActivity extends AppCompatActivity implements Observer<Emu
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
showExitConfirmationDialog();
|
||||
}
|
||||
});
|
||||
|
||||
viewModel = new ViewModelProvider(this).get(EmulationViewModel.class);
|
||||
viewModel.getEmulationData().observe(this, this);
|
||||
Intent intent = getIntent();
|
||||
@@ -70,11 +78,7 @@ public class EmulationActivity extends AppCompatActivity implements Observer<Emu
|
||||
.add(R.id.emulation_frame, emulationFragment)
|
||||
.commit();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
showExitConfirmationDialog();
|
||||
}
|
||||
|
||||
private void showExitConfirmationDialog() {
|
||||
|
||||
@@ -228,6 +228,20 @@ public class EmulationFragment extends Fragment implements PopupMenu.OnMenuItemC
|
||||
else
|
||||
sensorManager.pauseListening();
|
||||
item.setChecked(isMotionEnabled);
|
||||
return true;
|
||||
}
|
||||
if (itemId == R.id.exit_emulation) {
|
||||
requireActivity().getOnBackPressedDispatcher().onBackPressed();
|
||||
return true;
|
||||
}
|
||||
if (itemId == R.id.show_input_overlay) {
|
||||
boolean showInputOverlay = !item.isChecked();
|
||||
var menu = settingsMenu.getMenu();
|
||||
menu.findItem(R.id.edit_inputs).setEnabled(showInputOverlay);
|
||||
menu.findItem(R.id.reset_inputs).setEnabled(showInputOverlay);
|
||||
item.setChecked(showInputOverlay);
|
||||
inputOverlaySurfaceView.setVisibility(showInputOverlay ? View.VISIBLE : View.GONE);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -265,8 +279,11 @@ public class EmulationFragment extends Fragment implements PopupMenu.OnMenuItemC
|
||||
settingsMenu.getMenuInflater().inflate(R.menu.menu_emulation_in_game, settingsMenu.getMenu());
|
||||
settingsMenu.setOnMenuItemClickListener(EmulationFragment.this);
|
||||
binding.emulationSettingsButton.setOnClickListener(v -> settingsMenu.show());
|
||||
|
||||
var menu = settingsMenu.getMenu();
|
||||
menu.findItem(R.id.show_input_overlay).setChecked(overlaySettings.isOverlayEnabled());
|
||||
if (!overlaySettings.isOverlayEnabled()) {
|
||||
menu.findItem(R.id.reset_inputs).setEnabled(false);
|
||||
menu.findItem(R.id.edit_inputs).setEnabled(false);
|
||||
inputOverlaySurfaceView.setVisibility(View.GONE);
|
||||
}
|
||||
SurfaceView mainCanvas = binding.mainCanvas;
|
||||
|
||||
@@ -26,6 +26,7 @@ public class InputOverlaySurfaceView extends SurfaceView implements View.OnTouch
|
||||
private InputMode inputMode = InputMode.DEFAULT;
|
||||
|
||||
public void resetInputs() {
|
||||
if (inputs == null) return;
|
||||
int width = getWidth();
|
||||
int height = getHeight();
|
||||
for (var input : InputOverlaySettingsProvider.Input.values()) {
|
||||
|
||||
@@ -17,5 +17,12 @@
|
||||
android:title="@string/edit_inputs" />
|
||||
<item
|
||||
android:id="@+id/reset_inputs"
|
||||
android:title="@string/reset_overlay_inputs" />
|
||||
android:title="@string/reset_input_overlay" />
|
||||
<item
|
||||
android:id="@+id/show_input_overlay"
|
||||
android:checkable="true"
|
||||
android:title="@string/show_input_overlay" />
|
||||
<item
|
||||
android:id="@+id/exit_emulation"
|
||||
android:title="@string/exit" />
|
||||
</menu>
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
<string name="input_finish_edit_label">Done</string>
|
||||
<string name="move_inputs_description">Move inputs</string>
|
||||
<string name="resize_inputs_description">Resize inputs</string>
|
||||
<string name="reset_overlay_inputs">Reset overlay inputs</string>
|
||||
<string name="reset_input_overlay">Reset input overlay</string>
|
||||
<string name="edit_inputs">Edit inputs</string>
|
||||
<string name="show_pad">Show pad</string>
|
||||
<string name="replace_tv_with_pad">Replace TV with PAD</string>
|
||||
@@ -189,4 +189,6 @@
|
||||
<string name="downscale_filter">Downscale filter</string>
|
||||
<string name="overlay_text_scale">Overlay text scale</string>
|
||||
<string name="notifications_text_scale">Notifications text scale</string>
|
||||
<string name="exit">Exit</string>
|
||||
<string name="show_input_overlay">Show input overlay</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user