From 3865c81e96432638f3f4cc2ba4eeb481da1c6ebb Mon Sep 17 00:00:00 2001 From: Michael Weghorn Date: Thu, 16 May 2024 08:26:14 +0200 Subject: android: Drop indirection listening to pref change Let `LibreOfficeMainActivity` implement the standard Android `SharedPreferences.OnSharedPreferenceChangeListener` interface directly, rather than having a custom `SettingsListenerModel.OnSettingsPreferenceChangedListener` indirection and the `SettingsFragment` implementing the standard interface. This simplifies the code and removes one level of indirection. Drop the now unused `SettingsListenerModel`. Change-Id: I8c7d6088e711631409f9189bba966439db3daa44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167723 Tested-by: Jenkins Reviewed-by: Michael Weghorn --- .../org/libreoffice/LibreOfficeMainActivity.java | 10 ++-- .../src/java/org/libreoffice/SettingsActivity.java | 21 +------- .../org/libreoffice/SettingsListenerModel.java | 56 ---------------------- 3 files changed, 8 insertions(+), 79 deletions(-) delete mode 100644 android/source/src/java/org/libreoffice/SettingsListenerModel.java (limited to 'android') diff --git a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java index 315656b6ef7e..8bacb3f0df72 100644 --- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java +++ b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java @@ -57,7 +57,7 @@ import java.util.UUID; /** * Main activity of the LibreOffice App. It is started in the UI thread. */ -public class LibreOfficeMainActivity extends AppCompatActivity implements SettingsListenerModel.OnSettingsPreferenceChangedListener { +public class LibreOfficeMainActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String LOGTAG = "LibreOfficeMainActivity"; public static final String ENABLE_EXPERIMENTAL_PREFS_KEY = "ENABLE_EXPERIMENTAL"; @@ -125,8 +125,9 @@ public class LibreOfficeMainActivity extends AppCompatActivity implements Settin Log.w(LOGTAG, "onCreate.."); super.onCreate(savedInstanceState); - SettingsListenerModel.getInstance().setListener(this); updatePreferences(); + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()) + .registerOnSharedPreferenceChangeListener(this); setContentView(R.layout.activity_main); @@ -492,6 +493,9 @@ public class LibreOfficeMainActivity extends AppCompatActivity implements Settin @Override protected void onDestroy() { Log.i(LOGTAG, "onDestroy.."); + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()) + .unregisterOnSharedPreferenceChangeListener(this); + LOKitShell.sendCloseEvent(); mLayerClient.destroy(); super.onDestroy(); @@ -842,7 +846,7 @@ public class LibreOfficeMainActivity extends AppCompatActivity implements Settin } @Override - public void settingsPreferenceChanged(SharedPreferences sharedPreferences, String key) { + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.matches(ENABLE_EXPERIMENTAL_PREFS_KEY)) { Log.d(LOGTAG, "Editing Preference Changed"); mIsExperimentalMode = sharedPreferences.getBoolean(ENABLE_EXPERIMENTAL_PREFS_KEY, false); diff --git a/android/source/src/java/org/libreoffice/SettingsActivity.java b/android/source/src/java/org/libreoffice/SettingsActivity.java index 90d3f95459e4..39102aee5a0f 100644 --- a/android/source/src/java/org/libreoffice/SettingsActivity.java +++ b/android/source/src/java/org/libreoffice/SettingsActivity.java @@ -25,7 +25,7 @@ public class SettingsActivity extends FragmentActivity { .commit(); } - public static class SettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { + public static class SettingsFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -41,25 +41,6 @@ public class SettingsActivity extends FragmentActivity { generalGroup.removePreference(generalGroup.findPreference("ENABLE_DEVELOPER")); } } - - @Override - public void onResume() { - super.onResume(); - getPreferenceScreen().getSharedPreferences() - .registerOnSharedPreferenceChangeListener(this); - } - - @Override - public void onPause() { - super.onPause(); - getPreferenceScreen().getSharedPreferences() - .unregisterOnSharedPreferenceChangeListener(this); - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - SettingsListenerModel.getInstance().changePreferenceState(sharedPreferences, key); - } } } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/android/source/src/java/org/libreoffice/SettingsListenerModel.java b/android/source/src/java/org/libreoffice/SettingsListenerModel.java deleted file mode 100644 index 1b5a909e1e65..000000000000 --- a/android/source/src/java/org/libreoffice/SettingsListenerModel.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * - * * This file is part of the LibreOffice project. - * * This Source Code Form is subject to the terms of the Mozilla Public - * * License, v. 2.0. If a copy of the MPL was not distributed with this - * * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - */ -package org.libreoffice; - -import android.content.SharedPreferences; - -public class SettingsListenerModel { - - public interface OnSettingsPreferenceChangedListener { - void settingsPreferenceChanged(SharedPreferences sharedPreferences, String key); - } - - private static SettingsListenerModel mInstance; - private OnSettingsPreferenceChangedListener mListener; - private SharedPreferences sharedPreferences; - private String key; - - private SettingsListenerModel() {} - - public static SettingsListenerModel getInstance() { - if(mInstance == null) { - mInstance = new SettingsListenerModel(); - } - return mInstance; - } - - public void setListener(OnSettingsPreferenceChangedListener listener) { - mListener = listener; - } - - public void changePreferenceState(SharedPreferences sharedPreferences, String key) { - if(mListener != null) { - this.sharedPreferences = sharedPreferences; - this.key = key; - notifyPreferenceChange(sharedPreferences, key); - } - } - - public SharedPreferences getSharedPreferences() { - return sharedPreferences; - } - - public String getKey(){ - return key; - } - - private void notifyPreferenceChange(SharedPreferences preferences, String key) { - mListener.settingsPreferenceChanged(preferences, key); - } -} -- cgit