mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-20 12:39:13 +12:00
add swap screen in drawer
This commit is contained in:
parent
dcda78de97
commit
e24dca78f1
9 changed files with 33 additions and 16 deletions
|
@ -3,7 +3,6 @@ package com.panda3ds.pandroid.app;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -17,7 +16,7 @@ import com.panda3ds.pandroid.AlberDriver;
|
||||||
import com.panda3ds.pandroid.R;
|
import com.panda3ds.pandroid.R;
|
||||||
import com.panda3ds.pandroid.app.game.AlberInputListener;
|
import com.panda3ds.pandroid.app.game.AlberInputListener;
|
||||||
import com.panda3ds.pandroid.app.game.DrawerFragment;
|
import com.panda3ds.pandroid.app.game.DrawerFragment;
|
||||||
import com.panda3ds.pandroid.app.game.EmulatorListener;
|
import com.panda3ds.pandroid.app.game.EmulatorCallback;
|
||||||
import com.panda3ds.pandroid.data.config.GlobalConfig;
|
import com.panda3ds.pandroid.data.config.GlobalConfig;
|
||||||
import com.panda3ds.pandroid.input.InputHandler;
|
import com.panda3ds.pandroid.input.InputHandler;
|
||||||
import com.panda3ds.pandroid.input.InputMap;
|
import com.panda3ds.pandroid.input.InputMap;
|
||||||
|
@ -28,7 +27,7 @@ import com.panda3ds.pandroid.view.ds.DsLayoutManager;
|
||||||
import com.panda3ds.pandroid.view.renderer.ConsoleRenderer;
|
import com.panda3ds.pandroid.view.renderer.ConsoleRenderer;
|
||||||
import com.panda3ds.pandroid.view.utils.PerformanceView;
|
import com.panda3ds.pandroid.view.utils.PerformanceView;
|
||||||
|
|
||||||
public class GameActivity extends BaseActivity implements EmulatorListener {
|
public class GameActivity extends BaseActivity implements EmulatorCallback {
|
||||||
private final DrawerFragment drawerFragment = new DrawerFragment();
|
private final DrawerFragment drawerFragment = new DrawerFragment();
|
||||||
private final AlberInputListener inputListener = new AlberInputListener(this);
|
private final AlberInputListener inputListener = new AlberInputListener(this);
|
||||||
private ConsoleRenderer renderer;
|
private ConsoleRenderer renderer;
|
||||||
|
@ -113,7 +112,7 @@ public class GameActivity extends BaseActivity implements EmulatorListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void switchDualScreenLayout() {
|
public void swapScreens() {
|
||||||
currentDsLayout = currentDsLayout + 1 < DsLayoutManager.getLayoutCount() ? currentDsLayout + 1 : 0;
|
currentDsLayout = currentDsLayout + 1 < DsLayoutManager.getLayoutCount() ? currentDsLayout + 1 : 0;
|
||||||
renderer.setLayout(DsLayoutManager.createLayout(currentDsLayout));
|
renderer.setLayout(DsLayoutManager.createLayout(currentDsLayout));
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,8 +11,8 @@ import java.util.Objects;
|
||||||
|
|
||||||
|
|
||||||
public class AlberInputListener implements Function<InputEvent> {
|
public class AlberInputListener implements Function<InputEvent> {
|
||||||
private final EmulatorListener emulator;
|
private final EmulatorCallback emulator;
|
||||||
public AlberInputListener(EmulatorListener emulator) { this.emulator = emulator; }
|
public AlberInputListener(EmulatorCallback emulator) { this.emulator = emulator; }
|
||||||
|
|
||||||
private final Vector2 axis = new Vector2(0.0f, 0.0f);
|
private final Vector2 axis = new Vector2(0.0f, 0.0f);
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ public class AlberInputListener implements Function<InputEvent> {
|
||||||
break;
|
break;
|
||||||
case CHANGE_DS_LAYOUT:
|
case CHANGE_DS_LAYOUT:
|
||||||
if (!event.isDown()){
|
if (!event.isDown()){
|
||||||
emulator.switchDualScreenLayout();
|
emulator.swapScreens();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -14,7 +14,6 @@ import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.drawerlayout.widget.DrawerLayout;
|
import androidx.drawerlayout.widget.DrawerLayout;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
import android.content.res.Configuration;
|
|
||||||
|
|
||||||
import com.google.android.material.navigation.NavigationView;
|
import com.google.android.material.navigation.NavigationView;
|
||||||
import com.panda3ds.pandroid.AlberDriver;
|
import com.panda3ds.pandroid.AlberDriver;
|
||||||
|
@ -25,10 +24,12 @@ import com.panda3ds.pandroid.view.gamesgrid.GameIconView;
|
||||||
|
|
||||||
public class DrawerFragment extends Fragment implements DrawerLayout.DrawerListener, NavigationView.OnNavigationItemSelectedListener {
|
public class DrawerFragment extends Fragment implements DrawerLayout.DrawerListener, NavigationView.OnNavigationItemSelectedListener {
|
||||||
private DrawerLayout drawerContainer;
|
private DrawerLayout drawerContainer;
|
||||||
|
private EmulatorCallback emulator;
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
|
emulator = ((EmulatorCallback) requireActivity());
|
||||||
drawerContainer = requireActivity().findViewById(R.id.drawer_container);
|
drawerContainer = requireActivity().findViewById(R.id.drawer_container);
|
||||||
drawerContainer.removeDrawerListener(this);
|
drawerContainer.removeDrawerListener(this);
|
||||||
drawerContainer.addDrawerListener(this);
|
drawerContainer.addDrawerListener(this);
|
||||||
|
@ -113,6 +114,9 @@ public class DrawerFragment extends Fragment implements DrawerLayout.DrawerListe
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
if (id == R.id.resume) {
|
if (id == R.id.resume) {
|
||||||
close();
|
close();
|
||||||
|
} else if (id == R.id.ds_switch) {
|
||||||
|
emulator.swapScreens();
|
||||||
|
close();
|
||||||
} else if (id == R.id.exit) {
|
} else if (id == R.id.exit) {
|
||||||
requireActivity().finish();
|
requireActivity().finish();
|
||||||
} else if (id == R.id.lua_script) {
|
} else if (id == R.id.lua_script) {
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
package com.panda3ds.pandroid.app.game;
|
||||||
|
|
||||||
|
public interface EmulatorCallback {
|
||||||
|
void onBackPressed();
|
||||||
|
|
||||||
|
void swapScreens();
|
||||||
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
package com.panda3ds.pandroid.app.game;
|
|
||||||
|
|
||||||
public interface EmulatorListener {
|
|
||||||
void onBackPressed();
|
|
||||||
|
|
||||||
void switchDualScreenLayout();
|
|
||||||
}
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M21,3L3,3c-1.11,0 -2,0.89 -2,2v14c0,1.11 0.89,2 2,2h18c1.11,0 2,-0.89 2,-2L23,5c0,-1.11 -0.89,-2 -2,-2zM21,19.02L3,19.02L3,4.98h18v14.04zM10,12L8,12l4,-4 4,4h-2v4h-4v-4z"/>
|
||||||
|
</vector>
|
|
@ -10,6 +10,10 @@
|
||||||
android:id="@+id/resume"
|
android:id="@+id/resume"
|
||||||
android:icon="@drawable/ic_shortcut"
|
android:icon="@drawable/ic_shortcut"
|
||||||
android:title="@string/resume" />
|
android:title="@string/resume" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/ds_switch"
|
||||||
|
android:icon="@drawable/ic_switch_screen"
|
||||||
|
android:title="@string/swap_screen"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/exit"
|
android:id="@+id/exit"
|
||||||
android:icon="@drawable/ic_exit"
|
android:icon="@drawable/ic_exit"
|
||||||
|
|
|
@ -74,4 +74,5 @@
|
||||||
<string name="dual_screen_layouts">Dual Screen layouts</string>
|
<string name="dual_screen_layouts">Dual Screen layouts</string>
|
||||||
<string name="dual_screen_layouts_summary">Change layout of console screens.</string>
|
<string name="dual_screen_layouts_summary">Change layout of console screens.</string>
|
||||||
<string name="click_to_change">Click to change</string>
|
<string name="click_to_change">Click to change</string>
|
||||||
|
<string name="swap_screen">Swap screen</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -134,7 +134,7 @@
|
||||||
app:iconSpaceReserved="false"/>
|
app:iconSpaceReserved="false"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
app:title="Switch dual screen layout"
|
app:title="@string/swap_screen"
|
||||||
app:key="CHANGE_DS_LAYOUT"
|
app:key="CHANGE_DS_LAYOUT"
|
||||||
app:summary="none"
|
app:summary="none"
|
||||||
app:iconSpaceReserved="false"/>
|
app:iconSpaceReserved="false"/>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue