diff --git a/src/jni_driver.cpp b/src/jni_driver.cpp index 839a6f83..b48a5fe5 100644 --- a/src/jni_driver.cpp +++ b/src/jni_driver.cpp @@ -53,9 +53,7 @@ void Pandroid::onSmdhLoaded(const std::vector& smdh) { extern "C" { AlberFunction(void, Setup)(JNIEnv* env, jobject obj) { env->GetJavaVM(&jvm); } - AlberFunction(void, Pause)(JNIEnv* env, jobject obj) { emulator->pause(); } - AlberFunction(void, Resume)(JNIEnv* env, jobject obj) { emulator->resume(); } AlberFunction(void, Initialize)(JNIEnv* env, jobject obj) { diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java index 05073502..ade3e2ac 100644 --- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java +++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/GameActivity.java @@ -24,8 +24,8 @@ import com.panda3ds.pandroid.view.PandaLayoutController; public class GameActivity extends BaseActivity { private final DrawerFragment drawerFragment = new DrawerFragment(); - private final AlberInputListener inputListener = new AlberInputListener(()->{ - if (drawerFragment.isOpened()){ + private final AlberInputListener inputListener = new AlberInputListener(() -> { + if (drawerFragment.isOpened()) { drawerFragment.close(); } else { drawerFragment.open(); @@ -77,6 +77,7 @@ public class GameActivity extends BaseActivity { @Override protected void onPause() { super.onPause(); + InputHandler.reset(); drawerFragment.open(); } diff --git a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/game/DrawerFragment.java b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/game/DrawerFragment.java index 5852a78b..d18fac2b 100644 --- a/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/game/DrawerFragment.java +++ b/src/pandroid/app/src/main/java/com/panda3ds/pandroid/app/game/DrawerFragment.java @@ -55,19 +55,25 @@ public class DrawerFragment extends Fragment implements DrawerLayout.DrawerListe super.onDetach(); } - private void refreshLayout(){ + private void refreshLayout() { drawerContainer.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY); drawerContainer.requestLayout(); drawerContainer.invalidate(); drawerContainer.forceLayout(); } - public void open(){ - if (drawerContainer.isOpen()) - return; - drawerContainer.setVisibility(View.VISIBLE); - drawerContainer.open(); - drawerContainer.postDelayed(this::refreshLayout, 20); + public void open() { + if (!drawerContainer.isOpen()) { + drawerContainer.setVisibility(View.VISIBLE); + drawerContainer.open(); + drawerContainer.postDelayed(this::refreshLayout, 20); + } + } + + public void close() { + if (drawerContainer.isOpen()) { + drawerContainer.close(); + } } @Override @@ -90,9 +96,9 @@ public class DrawerFragment extends Fragment implements DrawerLayout.DrawerListe @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); - if (id == R.id.resume){ + if (id == R.id.resume) { close(); - } else if (id == R.id.exit){ + } else if (id == R.id.exit) { requireActivity().onBackPressed(); } @@ -102,11 +108,4 @@ public class DrawerFragment extends Fragment implements DrawerLayout.DrawerListe public boolean isOpened() { return drawerContainer.isOpen(); } - - public void close() { - if (!drawerContainer.isOpen()){ - return; - } - drawerContainer.close(); - } }