From 986549cd730315915b7934063ded4cf29b688943 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Tue, 22 Sep 2020 12:47:29 +0700 Subject: [PATCH] Fix custom controls screen crash; Fix uninstall JRE dialog crash --- app/build.gradle | 2 +- .../prefs/UninstallJREDialogPreference.java | 21 ++++++++++++++----- .../value/customcontrols/ControlView.java | 4 +++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8b0810f79..16c7352d9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,7 +28,7 @@ android { multiDexEnabled true //important ndk { - abiFilters "armeabi-v7a", "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a", "x86" } } diff --git a/app/src/main/java/net/kdt/pojavlaunch/prefs/UninstallJREDialogPreference.java b/app/src/main/java/net/kdt/pojavlaunch/prefs/UninstallJREDialogPreference.java index 1e63eb530..28ef669cc 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/prefs/UninstallJREDialogPreference.java +++ b/app/src/main/java/net/kdt/pojavlaunch/prefs/UninstallJREDialogPreference.java @@ -1,16 +1,18 @@ package net.kdt.pojavlaunch.prefs; import android.content.*; +import android.support.v7.app.*; import android.support.v7.preference.*; import android.util.*; +import android.widget.*; import java.io.*; import net.kdt.pojavlaunch.*; import net.kdt.pojavlaunch.R; -import android.widget.*; -public class UninstallJREDialogPreference extends DialogPreference implements DialogInterface.OnClickListener +public class UninstallJREDialogPreference extends Preference implements DialogInterface.OnClickListener { + private AlertDialog mDialog; public UninstallJREDialogPreference(Context ctx) { this(ctx, null); } @@ -18,9 +20,18 @@ public class UninstallJREDialogPreference extends DialogPreference implements Di public UninstallJREDialogPreference(Context ctx, AttributeSet attrs) { super(ctx, attrs); setPersistent(false); - setDialogMessage(R.string.mcl_setting_title_uninstalljre); - setPositiveButtonText(android.R.string.ok); - setNegativeButtonText(android.R.string.cancel); + + AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()); + dialog.setMessage(R.string.mcl_setting_title_uninstalljre); + dialog.setPositiveButton(android.R.string.ok, this); + dialog.setNegativeButton(android.R.string.cancel, this); + mDialog = dialog.create(); + } + + @Override + protected void onClick() { + super.onClick(); + mDialog.show(); } @Override diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java index 7241a6795..ff07d887a 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java +++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java @@ -54,7 +54,9 @@ public class ControlView extends Button implements OnLongClickListener, OnTouchL setTranslationY(moveY = properties.y); } - if (properties.specialButtonListener instanceof View.OnClickListener) { + if (properties.specialButtonListener == null) { + // A non-special button or inside custom controls screen so skip listener + } if (properties.specialButtonListener instanceof View.OnClickListener) { setOnClickListener((View.OnClickListener) properties.specialButtonListener); } else if (properties.specialButtonListener instanceof View.OnTouchListener) { setOnTouchListener((View.OnTouchListener) properties.specialButtonListener);