Merge "Fix the description of one-handed mode doesn't change immediately in Gestures page after users turn on/off in Quick Settings" into tm-dev

This commit is contained in:
TreeHugger Robot
2022-04-26 23:45:12 +00:00
committed by Android (Google) Code Review

View File

@@ -17,17 +17,29 @@
package com.android.settings.gestures; package com.android.settings.gestures;
import android.content.Context; 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.R;
import com.android.settings.core.BasePreferenceController; 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 * 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) { public OneHandedEnablePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
mUtils = new OneHandedSettingsUtils(context);
} }
@Override @Override
@@ -41,4 +53,30 @@ public class OneHandedEnablePreferenceController extends BasePreferenceControlle
OneHandedSettingsUtils.isOneHandedModeEnabled(mContext) OneHandedSettingsUtils.isOneHandedModeEnabled(mContext)
? R.string.gesture_setting_on : R.string.gesture_setting_off); ? 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);
}
}
} }