From db0e4181c341df5409bab924c9d2c036b6fabf39 Mon Sep 17 00:00:00 2001 From: Pranav Vashi Date: Wed, 26 Apr 2023 23:57:16 +0530 Subject: [PATCH] Cherish: Enable lockscreen weather options properly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pranav Vashi Signed-off-by: Hưng Phan --- .../fragments/LockScreenSettings.java | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/com/cherish/settings/fragments/LockScreenSettings.java b/src/com/cherish/settings/fragments/LockScreenSettings.java index fa23678..22f6f50 100644 --- a/src/com/cherish/settings/fragments/LockScreenSettings.java +++ b/src/com/cherish/settings/fragments/LockScreenSettings.java @@ -74,6 +74,7 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements private ListPreference mLockClockStyles; + private OmniJawsClient mWeatherClient; private Preference mWeather; private PreferenceCategory mUdfpsCategory; private Context mContext; @@ -132,17 +133,8 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements } mWeather = (Preference) findPreference(KEY_WEATHER); - OmniJawsClient weatherClient = new OmniJawsClient(getContext()); - boolean weatherEnabled = weatherClient.isOmniJawsEnabled(); - if (!weatherEnabled) { - mWeather.setEnabled(false); - mWeather.setSummary(R.string.lockscreen_weather_enabled_info); - } - } - - @Override - public void onResume() { - super.onResume(); + mWeatherClient = new OmniJawsClient(getContext()); + updateWeatherSettings(); } public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -165,15 +157,25 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements Settings.System.putInt(getActivity().getContentResolver(), Settings.System.FP_ERROR_VIBRATE, value ? 1 : 0); return true; - } else if (preference == mWeather) { - boolean value = (Boolean) newValue; - Settings.System.putInt(getActivity().getContentResolver(), - Settings.System.LOCKSCREEN_WEATHER_ENABLED, value ? 0 : 0); - return true; } return false; } + private void updateWeatherSettings() { + if (mWeatherClient == null || mWeather == null) return; + + boolean weatherEnabled = mWeatherClient.isOmniJawsEnabled(); + mWeather.setEnabled(weatherEnabled); + mWeather.setSummary(weatherEnabled ? R.string.lockscreen_weather_summary : + R.string.lockscreen_weather_enabled_info); + } + + @Override + public void onResume() { + super.onResume(); + updateWeatherSettings(); + } + @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.CHERISH_SETTINGS;