From 2d9a212b5c96b074f46f40047d060c1f090c430f Mon Sep 17 00:00:00 2001 From: tzugen Date: Sat, 23 Oct 2021 17:25:59 +0200 Subject: [PATCH] Cleanup a bunch of preference setters and getters by using the new utility class --- .../ultrasonic/fragment/SettingsFragment.java | 27 ++++--------- .../ultrasonic/data/ActiveServerProvider.kt | 12 ++---- .../ultrasonic/service/AudioFocusHandler.kt | 7 +--- .../org/moire/ultrasonic/util/Settings.kt | 9 +++++ .../kotlin/org/moire/ultrasonic/util/Util.kt | 39 ++++++++----------- 5 files changed, 36 insertions(+), 58 deletions(-) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/SettingsFragment.java b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/SettingsFragment.java index c1fb0466..8ce6e4a9 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/SettingsFragment.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/fragment/SettingsFragment.java @@ -26,7 +26,6 @@ import org.moire.ultrasonic.R; import org.moire.ultrasonic.featureflags.Feature; import org.moire.ultrasonic.featureflags.FeatureStorage; import org.moire.ultrasonic.filepicker.FilePickerDialog; -import org.moire.ultrasonic.filepicker.OnFileSelectedListener; import org.moire.ultrasonic.log.FileLoggerTree; import org.moire.ultrasonic.provider.SearchSuggestionProvider; import org.moire.ultrasonic.service.Consumer; @@ -233,15 +232,9 @@ public class SettingsFragment extends PreferenceFragmentCompat FilePickerDialog filePickerDialog = FilePickerDialog.Companion.createFilePickerDialog(getContext()); filePickerDialog.setDefaultDirectory(FileUtil.getDefaultMusicDirectory().getPath()); filePickerDialog.setInitialDirectory(cacheLocation.getSummary().toString()); - filePickerDialog.setOnFileSelectedListener(new OnFileSelectedListener() { - @Override - public void onFileSelected(File file, String path) { - SharedPreferences.Editor editor = cacheLocation.getSharedPreferences().edit(); - editor.putString(Constants.PREFERENCES_KEY_CACHE_LOCATION, path); - editor.apply(); - - setCacheLocation(path); - } + filePickerDialog.setOnFileSelectedListener((file, path) -> { + Settings.setCacheLocation(path); + setCacheLocation(path); }); filePickerDialog.show(); } @@ -287,9 +280,7 @@ public class SettingsFragment extends PreferenceFragmentCompat new Consumer() { @Override public void accept(Integer choice) { - SharedPreferences.Editor editor = pauseOnBluetoothDevice.getSharedPreferences().edit(); - editor.putInt(Constants.PREFERENCES_KEY_PAUSE_ON_BLUETOOTH_DEVICE, choice); - editor.apply(); + Settings.setPauseOnBluetoothDevice(choice); pauseOnBluetoothDevice.setSummary(bluetoothDevicePreferenceToString(choice)); } }); @@ -442,13 +433,9 @@ public class SettingsFragment extends PreferenceFragmentCompat File dir = new File(path); if (!FileUtil.ensureDirectoryExistsAndIsReadWritable(dir)) { - permissionUtil.getValue().handlePermissionFailed(new PermissionUtil.PermissionRequestFinishedCallback() { - @Override - public void onPermissionRequestFinished(boolean hasPermission) { - String currentPath = settings.getString(Constants.PREFERENCES_KEY_CACHE_LOCATION, - FileUtil.getDefaultMusicDirectory().getPath()); - cacheLocation.setSummary(currentPath); - } + permissionUtil.getValue().handlePermissionFailed(hasPermission -> { + String currentPath = Settings.getCacheLocation(); + cacheLocation.setSummary(currentPath); }); } else { diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/data/ActiveServerProvider.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/data/ActiveServerProvider.kt index 1d768071..4cfab1a9 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/data/ActiveServerProvider.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/data/ActiveServerProvider.kt @@ -193,8 +193,7 @@ class ActiveServerProvider( * Queries the Id of the Active Server */ fun getActiveServerId(): Int { - val preferences = Settings.preferences - return preferences.getInt(Constants.PREFERENCES_KEY_SERVER_INSTANCE, -1) + return Settings.activeServer } /** @@ -203,11 +202,7 @@ class ActiveServerProvider( fun setActiveServerId(serverId: Int) { resetMusicService() - val preferences = Settings.preferences - val editor = preferences.edit() - editor.putInt(Constants.PREFERENCES_KEY_SERVER_INSTANCE, serverId) - editor.apply() - + Settings.activeServer = serverId liveActiveServerId.postValue(serverId) } @@ -229,8 +224,7 @@ class ActiveServerProvider( if (isOffline()) { return false } - val preferences = Settings.preferences - return preferences.getBoolean(Constants.PREFERENCES_KEY_SERVER_SCALING, false) + return Settings.serverScaling } } } diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/AudioFocusHandler.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/AudioFocusHandler.kt index c49df186..2f36974a 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/AudioFocusHandler.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/service/AudioFocusHandler.kt @@ -11,7 +11,6 @@ import androidx.media.AudioFocusRequestCompat import androidx.media.AudioManagerCompat import org.koin.java.KoinJavaComponent.inject import org.moire.ultrasonic.domain.PlayerState -import org.moire.ultrasonic.util.Constants import org.moire.ultrasonic.util.Settings import timber.log.Timber @@ -25,12 +24,8 @@ class AudioFocusHandler(private val context: Context) { context.getSystemService(Context.AUDIO_SERVICE) as AudioManager } - private val preferences by lazy { - Settings.preferences - } - private val lossPref: Int - get() = preferences.getString(Constants.PREFERENCES_KEY_TEMP_LOSS, "1")!!.toInt() + get() = Settings.tempLoss private val audioAttributesCompat by lazy { AudioAttributesCompat.Builder() diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Settings.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Settings.kt index 73043a0b..7a45b123 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Settings.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Settings.kt @@ -185,6 +185,15 @@ object Settings { var shouldUseId3Tags by BooleanSetting(Constants.PREFERENCES_KEY_ID3_TAGS, false) + @JvmStatic + var tempLoss by StringIntSetting(Constants.PREFERENCES_KEY_TEMP_LOSS, "1") + + var activeServer by IntSetting(Constants.PREFERENCES_KEY_SERVER_INSTANCE, -1) + + var serverScaling by BooleanSetting(Constants.PREFERENCES_KEY_SERVER_SCALING, false) + + var firstRunExecuted by BooleanSetting(Constants.PREFERENCES_KEY_FIRST_RUN_EXECUTED, false) + val shouldShowArtistPicture: Boolean get() { val preferences = preferences diff --git a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Util.kt b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Util.kt index 3c5d2b91..c6a8af0b 100644 --- a/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Util.kt +++ b/ultrasonic/src/main/kotlin/org/moire/ultrasonic/util/Util.kt @@ -95,21 +95,18 @@ object Util { @JvmStatic fun applyTheme(context: Context?) { - val theme = Settings.theme - if (Constants.PREFERENCES_KEY_THEME_DARK.equals( - theme, - ignoreCase = true - ) || "fullscreen".equals(theme, ignoreCase = true) - ) { - context!!.setTheme(R.style.UltrasonicTheme) - } else if (Constants.PREFERENCES_KEY_THEME_BLACK.equals(theme, ignoreCase = true)) { - context!!.setTheme(R.style.UltrasonicTheme_Black) - } else if (Constants.PREFERENCES_KEY_THEME_LIGHT.equals( - theme, - ignoreCase = true - ) || "fullscreenlight".equals(theme, ignoreCase = true) - ) { - context!!.setTheme(R.style.UltrasonicTheme_Light) + when (Settings.theme.lowercase()) { + Constants.PREFERENCES_KEY_THEME_DARK, + "fullscreen" -> { + context!!.setTheme(R.style.UltrasonicTheme) + } + Constants.PREFERENCES_KEY_THEME_BLACK -> { + context!!.setTheme(R.style.UltrasonicTheme_Black) + } + Constants.PREFERENCES_KEY_THEME_LIGHT, + "fullscreenlight" -> { + context!!.setTheme(R.style.UltrasonicTheme_Light) + } } } @@ -794,13 +791,9 @@ object Util { } fun isFirstRun(): Boolean { - val preferences = Settings.preferences - val firstExecuted = - preferences.getBoolean(Constants.PREFERENCES_KEY_FIRST_RUN_EXECUTED, false) - if (firstExecuted) return false - val editor = preferences.edit() - editor.putBoolean(Constants.PREFERENCES_KEY_FIRST_RUN_EXECUTED, true) - editor.apply() + if (Settings.firstRunExecuted) return false + + Settings.firstRunExecuted = true return true } @@ -925,7 +918,7 @@ object Util { } fun getConnectivityManager(): ConnectivityManager { - val context = Util.appContext() + val context = appContext() return context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager } }