Cleaanup[preference]: use onPreferenceClickListener instead of onPreferenceTreeClick

This commit is contained in:
artdeell 2023-10-18 21:22:40 +03:00
parent 462bbc0e58
commit 109f37fa42
2 changed files with 18 additions and 31 deletions

View File

@ -22,8 +22,6 @@ import net.kdt.pojavlaunch.prefs.LauncherPreferences;
*/
public class LauncherPreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
private Preference mRequestNotificationPermissionPreference;
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
view.setBackgroundColor(Color.parseColor("#232323"));
@ -33,12 +31,22 @@ public class LauncherPreferenceFragment extends PreferenceFragmentCompat impleme
@Override
public void onCreatePreferences(Bundle b, String str) {
addPreferencesFromResource(R.xml.pref_main);
mRequestNotificationPermissionPreference = requirePreference("notification_permission_request");
setupNotificationRequestPreference();
}
private void setupNotificationRequestPreference() {
Preference mRequestNotificationPermissionPreference = requirePreference("notification_permission_request");
Activity activity = getActivity();
mRequestNotificationPermissionPreference.setVisible(
activity instanceof LauncherActivity &&
!((LauncherActivity) activity).checkForNotificationPermission()
);
if(activity instanceof LauncherActivity) {
LauncherActivity launcherActivity = (LauncherActivity)activity;
mRequestNotificationPermissionPreference.setVisible(!launcherActivity.checkForNotificationPermission());
mRequestNotificationPermissionPreference.setOnPreferenceClickListener(preference -> {
launcherActivity.askForNotificationPermission(()->mRequestNotificationPermissionPreference.setVisible(false));
return true;
});
}else{
mRequestNotificationPermissionPreference.setVisible(false);
}
}
@Override
@ -60,18 +68,6 @@ public class LauncherPreferenceFragment extends PreferenceFragmentCompat impleme
LauncherPreferences.loadPreferences(getContext());
}
@Override
public boolean onPreferenceTreeClick(@NonNull Preference preference) {
Activity activity = getActivity();
if(preference.equals(mRequestNotificationPermissionPreference) &&
activity instanceof LauncherActivity) {
((LauncherActivity)activity).askForNotificationPermission(()->
mRequestNotificationPermissionPreference.setVisible(false)
);
}
return super.onPreferenceTreeClick(preference);
}
protected Preference requirePreference(CharSequence key) {
Preference preference = findPreference(key);
if(preference != null) return preference;

View File

@ -3,14 +3,11 @@ package net.kdt.pojavlaunch.prefs.screens;
import static net.kdt.pojavlaunch.Architecture.is32BitsDevice;
import static net.kdt.pojavlaunch.Tools.getTotalDeviceMemory;
import android.content.Context;
import android.os.Bundle;
import android.widget.TextView;
import androidx.activity.result.ActivityResultLauncher;
import androidx.annotation.NonNull;
import androidx.preference.EditTextPreference;
import androidx.preference.Preference;
import net.kdt.pojavlaunch.R;
import net.kdt.pojavlaunch.Tools;
@ -21,7 +18,6 @@ import net.kdt.pojavlaunch.prefs.LauncherPreferences;
public class LauncherPreferenceJavaFragment extends LauncherPreferenceFragment {
private MultiRTConfigDialog mDialogScreen;
private Preference mMultiRTPreference;
private final ActivityResultLauncher<Object> mVmInstallLauncher =
registerForActivityResult(new OpenDocumentWithExtension("xz"), (data)->{
if(data != null) Tools.installRuntimeFromUri(getContext(), data);
@ -52,15 +48,10 @@ public class LauncherPreferenceJavaFragment extends LauncherPreferenceFragment {
editJVMArgs.setOnBindEditTextListener(TextView::setSingleLine);
}
mMultiRTPreference = findPreference("install_jre");
}
@Override
public boolean onPreferenceTreeClick(@NonNull Preference preference) {
if(preference.equals(mMultiRTPreference)) {
requirePreference("install_jre").setOnPreferenceClickListener(preference->{
openMultiRTDialog();
}
return super.onPreferenceTreeClick(preference);
return true;
});
}
private void openMultiRTDialog() {