Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c380528 authored by jasonwshsu's avatar jasonwshsu
Browse files

Update to use android:summary="%s" in ListPreference

* No need to call updateState() in onPreferenceChange()

Bug: 274326713
Test: make RunSettingsRoboTests ROBOTEST_FILTER="(AccessibilityButtonGesturePreferenceControllerTest|CaptioningLocalePreferenceControllerTest|CaptioningFontSizeControllerTest|CaptioningTypefaceControllerTest|AccessibilityButtonLocationPreferenceControllerTest|FloatingMenuSizePreferenceControllerTest|SelectLongPressTimeoutPreferenceControllerTest)"
Change-Id: I14a87597a44c5500ff7e676664b67feb9c352494
parent 3a4c6feb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
        android:entries="@array/long_press_timeout_selector_list_titles"
        android:entryValues="@array/long_press_timeout_selector_values"
        android:key="select_long_press_timeout_preference"
        android:summary="%s"
        android:persistent="false"
        android:title="@string/accessibility_long_press_timeout_preference_title"
        settings:controller="com.android.settings.accessibility.SelectLongPressTimeoutPreferenceController"/>
+21 −19
Original line number Diff line number Diff line
@@ -19,21 +19,30 @@ package com.android.settings.accessibility;
import android.content.Context;
import android.provider.Settings;

import androidx.annotation.IntDef;
import androidx.preference.ListPreference;
import androidx.preference.Preference;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;

import com.google.common.primitives.Ints;

import java.util.Optional;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/** Preference controller that controls the button or gesture in accessibility button page. */
public class AccessibilityButtonGesturePreferenceController extends BasePreferenceController
        implements Preference.OnPreferenceChangeListener {

    private Optional<Integer> mDefaultGesture = Optional.empty();
    @Retention(RetentionPolicy.SOURCE)
    @IntDef({
            Mode.BUTTON,
            Mode.GESTURE,
    })
    private @interface Mode {
        int BUTTON = 1;
        int GESTURE = 2;
    }

    public AccessibilityButtonGesturePreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
@@ -47,12 +56,9 @@ public class AccessibilityButtonGesturePreferenceController extends BasePreferen

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        final ListPreference listPreference = (ListPreference) preference;
        final Integer value = Ints.tryParse((String) newValue);
        if (value != null) {
            Settings.Secure.putInt(mContext.getContentResolver(),
                    Settings.Secure.ACCESSIBILITY_BUTTON_MODE, value);
            updateState(listPreference);
            putCurrentAccessibilityButtonMode(value);
        }
        return true;
    }
@@ -62,21 +68,17 @@ public class AccessibilityButtonGesturePreferenceController extends BasePreferen
        super.updateState(preference);
        final ListPreference listPreference = (ListPreference) preference;

        listPreference.setValue(getCurrentAccessibilityButtonMode());
        listPreference.setValue(String.valueOf(getCurrentAccessibilityButtonMode()));
    }

    private String getCurrentAccessibilityButtonMode() {
        final int mode = Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, getDefaultGestureValue());
        return String.valueOf(mode);
    @Mode
    private int getCurrentAccessibilityButtonMode() {
        return Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, Mode.BUTTON);
    }

    private int getDefaultGestureValue() {
        if (!mDefaultGesture.isPresent()) {
            final String[] valuesList = mContext.getResources().getStringArray(
                    R.array.accessibility_button_gesture_selector_values);
            mDefaultGesture = Optional.of(Integer.parseInt(valuesList[0]));
        }
        return mDefaultGesture.get();
    private void putCurrentAccessibilityButtonMode(@Mode int mode) {
        Settings.Secure.putInt(mContext.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, mode);
    }
}
+21 −19
Original line number Diff line number Diff line
@@ -19,21 +19,30 @@ package com.android.settings.accessibility;
import android.content.Context;
import android.provider.Settings;

import androidx.annotation.IntDef;
import androidx.preference.ListPreference;
import androidx.preference.Preference;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;

import com.google.common.primitives.Ints;

import java.util.Optional;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/** Preference controller that controls the preferred location in accessibility button page. */
public class AccessibilityButtonLocationPreferenceController extends BasePreferenceController
        implements Preference.OnPreferenceChangeListener {

    private Optional<Integer> mDefaultLocation = Optional.empty();
    @Retention(RetentionPolicy.SOURCE)
    @IntDef({
            Location.FLOATING_MENU,
            Location.NAVIGATION_BAR,
    })
    private @interface Location {
        int FLOATING_MENU = 1;
        int NAVIGATION_BAR = 0;
    }

    public AccessibilityButtonLocationPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
@@ -47,12 +56,9 @@ public class AccessibilityButtonLocationPreferenceController extends BasePrefere

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        final ListPreference listPreference = (ListPreference) preference;
        final Integer value = Ints.tryParse((String) newValue);
        if (value != null) {
            Settings.Secure.putInt(mContext.getContentResolver(),
                    Settings.Secure.ACCESSIBILITY_BUTTON_MODE, value);
            updateState(listPreference);
            putCurrentAccessibilityButtonMode(value);
        }
        return true;
    }
@@ -62,21 +68,17 @@ public class AccessibilityButtonLocationPreferenceController extends BasePrefere
        super.updateState(preference);
        final ListPreference listPreference = (ListPreference) preference;

        listPreference.setValue(getCurrentAccessibilityButtonMode());
        listPreference.setValue(String.valueOf(getCurrentAccessibilityButtonMode()));
    }

    private String getCurrentAccessibilityButtonMode() {
        final int mode = Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, getDefaultLocationValue());
        return String.valueOf(mode);
    @Location
    private int getCurrentAccessibilityButtonMode() {
        return Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, Location.FLOATING_MENU);
    }

    private int getDefaultLocationValue() {
        if (!mDefaultLocation.isPresent()) {
            final String[] valuesList = mContext.getResources().getStringArray(
                    R.array.accessibility_button_location_selector_values);
            mDefaultLocation = Optional.of(Integer.parseInt(valuesList[0]));
        }
        return mDefaultLocation.get();
    private void putCurrentAccessibilityButtonMode(@Location int location) {
        Settings.Secure.putInt(mContext.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, location);
    }
}
+6 −10
Original line number Diff line number Diff line
@@ -16,14 +16,12 @@

package com.android.settings.accessibility;

import android.content.ContentResolver;
import android.content.Context;
import android.provider.Settings;
import android.view.accessibility.CaptioningManager;

import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.core.BasePreferenceController;

@@ -46,22 +44,20 @@ public class CaptioningFontSizeController extends BasePreferenceController
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        final ListPreference listPreference = screen.findPreference(getPreferenceKey());
    public void updateState(Preference preference) {
        super.updateState(preference);
        final ListPreference listPreference = (ListPreference) preference;
        final float fontSize = mCaptioningManager.getFontScale();

        listPreference.setValue(Float.toString(fontSize));
    }

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        final ListPreference listPreference = (ListPreference) preference;
        final ContentResolver cr = mContext.getContentResolver();
        Settings.Secure.putFloat(
                cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE,
                mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE,
                Float.parseFloat((String) newValue));
        listPreference.setValue((String) newValue);
        mCaptionHelper.setEnabled(true);
        return false;
        return true;
    }
}
+8 −12
Original line number Diff line number Diff line
@@ -16,14 +16,12 @@

package com.android.settings.accessibility;

import android.content.ContentResolver;
import android.content.Context;
import android.provider.Settings;
import android.view.accessibility.CaptioningManager.CaptionStyle;

import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.core.BasePreferenceController;

@@ -44,23 +42,21 @@ public class CaptioningTypefaceController extends BasePreferenceController
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        final ListPreference listPreference = screen.findPreference(getPreferenceKey());
        final ContentResolver cr = mContext.getContentResolver();
        final CaptionStyle attrs = CaptionStyle.getCustomStyle(cr);
    public void updateState(Preference preference) {
        super.updateState(preference);
        final ListPreference listPreference = (ListPreference) preference;
        final CaptionStyle attrs = CaptionStyle.getCustomStyle(mContext.getContentResolver());
        final String rawTypeface = attrs.mRawTypeface;

        listPreference.setValue(rawTypeface == null ? "" : rawTypeface);
    }

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        final ListPreference listPreference = (ListPreference) preference;
        final ContentResolver cr = mContext.getContentResolver();
        Settings.Secure.putString(
                cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE, (String) newValue);
        listPreference.setValue((String) newValue);
                mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE,
                (String) newValue);
        mCaptionHelper.setEnabled(true);
        return false;
        return true;
    }
}
Loading