diff --git a/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java b/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java index 29004c8f1fd..6aac7723435 100644 --- a/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java +++ b/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java @@ -17,17 +17,29 @@ package com.android.settings.gestures; import android.content.Context; +import android.net.Uri; + +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; +import com.android.settingslib.core.lifecycle.LifecycleObserver; +import com.android.settingslib.core.lifecycle.events.OnStart; +import com.android.settingslib.core.lifecycle.events.OnStop; /** * Preference controller for One-handed mode shortcut settings */ -public class OneHandedEnablePreferenceController extends BasePreferenceController { +public class OneHandedEnablePreferenceController extends BasePreferenceController + implements OneHandedSettingsUtils.TogglesCallback, LifecycleObserver, OnStart, OnStop { + + private final OneHandedSettingsUtils mUtils; + private Preference mPreference; public OneHandedEnablePreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); + mUtils = new OneHandedSettingsUtils(context); } @Override @@ -41,4 +53,30 @@ public class OneHandedEnablePreferenceController extends BasePreferenceControlle OneHandedSettingsUtils.isOneHandedModeEnabled(mContext) ? R.string.gesture_setting_on : R.string.gesture_setting_off); } + + @Override + public void displayPreference(PreferenceScreen screen) { + super.displayPreference(screen); + mPreference = screen.findPreference(getPreferenceKey()); + } + + @Override + public void onStart() { + mUtils.registerToggleAwareObserver(this); + } + + @Override + public void onStop() { + mUtils.unregisterToggleAwareObserver(); + } + + @Override + public void onChange(Uri uri) { + if (mPreference == null) { + return; + } + if (uri.equals(OneHandedSettingsUtils.ONE_HANDED_MODE_ENABLED_URI)) { + refreshSummary(mPreference); + } + } }