This commit is contained in:
wheremyfoodat 2023-12-29 18:05:57 +02:00
commit a974cf5342
3 changed files with 18 additions and 20 deletions

View file

@ -53,9 +53,7 @@ void Pandroid::onSmdhLoaded(const std::vector<u8>& smdh) {
extern "C" { extern "C" {
AlberFunction(void, Setup)(JNIEnv* env, jobject obj) { env->GetJavaVM(&jvm); } AlberFunction(void, Setup)(JNIEnv* env, jobject obj) { env->GetJavaVM(&jvm); }
AlberFunction(void, Pause)(JNIEnv* env, jobject obj) { emulator->pause(); } AlberFunction(void, Pause)(JNIEnv* env, jobject obj) { emulator->pause(); }
AlberFunction(void, Resume)(JNIEnv* env, jobject obj) { emulator->resume(); } AlberFunction(void, Resume)(JNIEnv* env, jobject obj) { emulator->resume(); }
AlberFunction(void, Initialize)(JNIEnv* env, jobject obj) { AlberFunction(void, Initialize)(JNIEnv* env, jobject obj) {

View file

@ -24,8 +24,8 @@ import com.panda3ds.pandroid.view.PandaLayoutController;
public class GameActivity extends BaseActivity { public class GameActivity extends BaseActivity {
private final DrawerFragment drawerFragment = new DrawerFragment(); private final DrawerFragment drawerFragment = new DrawerFragment();
private final AlberInputListener inputListener = new AlberInputListener(()->{ private final AlberInputListener inputListener = new AlberInputListener(() -> {
if (drawerFragment.isOpened()){ if (drawerFragment.isOpened()) {
drawerFragment.close(); drawerFragment.close();
} else { } else {
drawerFragment.open(); drawerFragment.open();
@ -77,6 +77,7 @@ public class GameActivity extends BaseActivity {
@Override @Override
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
InputHandler.reset(); InputHandler.reset();
drawerFragment.open(); drawerFragment.open();
} }

View file

@ -55,19 +55,25 @@ public class DrawerFragment extends Fragment implements DrawerLayout.DrawerListe
super.onDetach(); super.onDetach();
} }
private void refreshLayout(){ private void refreshLayout() {
drawerContainer.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY); drawerContainer.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY);
drawerContainer.requestLayout(); drawerContainer.requestLayout();
drawerContainer.invalidate(); drawerContainer.invalidate();
drawerContainer.forceLayout(); drawerContainer.forceLayout();
} }
public void open(){ public void open() {
if (drawerContainer.isOpen()) if (!drawerContainer.isOpen()) {
return; drawerContainer.setVisibility(View.VISIBLE);
drawerContainer.setVisibility(View.VISIBLE); drawerContainer.open();
drawerContainer.open(); drawerContainer.postDelayed(this::refreshLayout, 20);
drawerContainer.postDelayed(this::refreshLayout, 20); }
}
public void close() {
if (drawerContainer.isOpen()) {
drawerContainer.close();
}
} }
@Override @Override
@ -90,9 +96,9 @@ public class DrawerFragment extends Fragment implements DrawerLayout.DrawerListe
@Override @Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) { public boolean onNavigationItemSelected(@NonNull MenuItem item) {
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.exit){ } else if (id == R.id.exit) {
requireActivity().onBackPressed(); requireActivity().onBackPressed();
} }
@ -102,11 +108,4 @@ public class DrawerFragment extends Fragment implements DrawerLayout.DrawerListe
public boolean isOpened() { public boolean isOpened() {
return drawerContainer.isOpen(); return drawerContainer.isOpen();
} }
public void close() {
if (!drawerContainer.isOpen()){
return;
}
drawerContainer.close();
}
} }