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

Commit 623be947 authored by Daniel Huang's avatar Daniel Huang Committed by Android (Google) Code Review
Browse files

Merge "[ToA] Use radio button style for single selection" into main

parents b995a324 2d2f523a
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -24,22 +24,22 @@
        android:title="@string/terms_of_address_intro_title"
        android:persistent="false"/>

    <com.android.settings.widget.TickButtonPreference
    <com.android.settingslib.widget.SelectorWithWidgetPreference
        android:key="key_terms_of_address_not_specified"
        android:title="@string/terms_of_address_not_specified"
        settings:controller="com.android.settings.localepicker.TermsOfAddressNotSpecifiedController"/>

    <com.android.settings.widget.TickButtonPreference
    <com.android.settingslib.widget.SelectorWithWidgetPreference
        android:key="key_terms_of_address_feminine"
        android:title="@string/terms_of_address_feminine"
        settings:controller="com.android.settings.localepicker.TermsOfAddressFeminineController"/>

    <com.android.settings.widget.TickButtonPreference
    <com.android.settingslib.widget.SelectorWithWidgetPreference
        android:key="key_terms_of_address_masculine"
        android:title="@string/terms_of_address_masculine"
        settings:controller="com.android.settings.localepicker.TermsOfAddressMasculineController"/>

    <com.android.settings.widget.TickButtonPreference
    <com.android.settingslib.widget.SelectorWithWidgetPreference
        android:key="key_terms_of_address_neutral"
        android:title="@string/terms_of_address_neutral"
        settings:controller="com.android.settings.localepicker.TermsOfAddressNeutralController"/>
+6 −23
Original line number Diff line number Diff line
@@ -23,8 +23,8 @@ import androidx.preference.PreferenceScreen;

import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.TickButtonPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.widget.SelectorWithWidgetPreference;

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
@@ -32,9 +32,9 @@ import java.util.concurrent.Executors;
public abstract class TermsOfAddressBaseController extends BasePreferenceController {

    private static final Executor sExecutor = Executors.newSingleThreadExecutor();
    private PreferenceScreen mPreferenceScreen;
    private MetricsFeatureProvider mMetricsFeatureProvider;
    private TickButtonPreference mPreference;
    private SelectorWithWidgetPreference mPreference;

    private TermsOfAddressHelper mTermsOfAddressHelper;

    public TermsOfAddressBaseController(Context context, String preferenceKey) {
@@ -49,34 +49,17 @@ public abstract class TermsOfAddressBaseController extends BasePreferenceControl
    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mPreferenceScreen = screen;
        mPreference = screen.findPreference(getPreferenceKey());
        mPreference.setOnPreferenceClickListener(clickedPref -> {
        mPreference.setChecked(
                mTermsOfAddressHelper.getSystemGrammaticalGender() == getGrammaticalGenderType());
        mPreference.setOnClickListener(v -> {
            sExecutor.execute(
                    () -> {
                        mTermsOfAddressHelper.setSystemGrammaticalGender(
                                getGrammaticalGenderType());
                    });
            setSelected(mPreference);
            mMetricsFeatureProvider.action(mContext, getMetricsActionKey());
            return true;
        });
        updatePreferences();
    }

    private void setSelected(TickButtonPreference preference) {
        for (int i = 1; i < mPreferenceScreen.getPreferenceCount(); i++) {
            TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(i);
            pref.setSelected(pref.getKey().equals(preference.getKey()));
        }
    }

    private void updatePreferences() {
        if (mPreference == null) {
            return;
        }
        mPreference.setSelected(
                mTermsOfAddressHelper.getSystemGrammaticalGender() == getGrammaticalGenderType());
    }

    @Override
+11 −11
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.android.settings.widget.TickButtonPreference;
import com.android.settingslib.widget.SelectorWithWidgetPreference;

import org.junit.Before;
import org.junit.Ignore;
@@ -53,10 +53,10 @@ public class TermsOfAddressFeminineControllerTest {
    private PreferenceCategory mPreferenceCategory;
    private PreferenceScreen mPreferenceScreen;
    private TermsOfAddressFeminineController mController;
    private TickButtonPreference mFemininePreference;
    private TickButtonPreference mMasculinePreference;
    private TickButtonPreference mNotSpecifiedPreference;
    private TickButtonPreference mNeutralPreference;
    private SelectorWithWidgetPreference mFemininePreference;
    private SelectorWithWidgetPreference mMasculinePreference;
    private SelectorWithWidgetPreference mNotSpecifiedPreference;
    private SelectorWithWidgetPreference mNeutralPreference;
    private GrammaticalInflectionManager mGrammaticalInflectionManager;

    @Before
@@ -74,13 +74,13 @@ public class TermsOfAddressFeminineControllerTest {
        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
        mPreferenceCategory = new PreferenceCategory(mContext);
        mPreferenceCategory.setKey(KEY_CATEGORY_TERMS_OF_ADDRESS);
        mNotSpecifiedPreference = new TickButtonPreference(mContext);
        mNotSpecifiedPreference = new SelectorWithWidgetPreference(mContext);
        mNotSpecifiedPreference.setKey(KEY_NOT_SPECIFIED);
        mFemininePreference = new TickButtonPreference(mContext);
        mFemininePreference = new SelectorWithWidgetPreference(mContext);
        mFemininePreference.setKey(KEY_FEMININE);
        mMasculinePreference = new TickButtonPreference(mContext);
        mMasculinePreference = new SelectorWithWidgetPreference(mContext);
        mMasculinePreference.setKey(KEY_MASCULINE);
        mNeutralPreference = new TickButtonPreference(mContext);
        mNeutralPreference = new SelectorWithWidgetPreference(mContext);
        mNeutralPreference.setKey(KEY_NEUTRAL);
        mPreferenceScreen.addPreference(mPreferenceCategory);
        mPreferenceScreen.addPreference(mNotSpecifiedPreference);
@@ -95,8 +95,8 @@ public class TermsOfAddressFeminineControllerTest {
    @Test
    @Ignore("b/339543490")
    public void displayPreference_setGrammaticalGenderIsFeminine_FeminineIsSelected() {
        TickButtonPreference selectedPreference =
                (TickButtonPreference) mPreferenceScreen.getPreference(2);
        SelectorWithWidgetPreference selectedPreference =
                (SelectorWithWidgetPreference) mPreferenceScreen.getPreference(2);
        selectedPreference.performClick();

        assertThat(selectedPreference.getKey()).isEqualTo(KEY_FEMININE);
+11 −11
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.android.settings.widget.TickButtonPreference;
import com.android.settingslib.widget.SelectorWithWidgetPreference;

import org.junit.Before;
import org.junit.Ignore;
@@ -53,10 +53,10 @@ public class TermsOfAddressMasculineControllerTest {
    private PreferenceCategory mPreferenceCategory;
    private PreferenceScreen mPreferenceScreen;
    private TermsOfAddressMasculineController mController;
    private TickButtonPreference mFemininePreference;
    private TickButtonPreference mMasculinePreference;
    private TickButtonPreference mNotSpecifiedPreference;
    private TickButtonPreference mNeutralPreference;
    private SelectorWithWidgetPreference mFemininePreference;
    private SelectorWithWidgetPreference mMasculinePreference;
    private SelectorWithWidgetPreference mNotSpecifiedPreference;
    private SelectorWithWidgetPreference mNeutralPreference;
    private GrammaticalInflectionManager mGrammaticalInflectionManager;

    @Before
@@ -74,13 +74,13 @@ public class TermsOfAddressMasculineControllerTest {
        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
        mPreferenceCategory = new PreferenceCategory(mContext);
        mPreferenceCategory.setKey(KEY_CATEGORY_TERMS_OF_ADDRESS);
        mNotSpecifiedPreference = new TickButtonPreference(mContext);
        mNotSpecifiedPreference = new SelectorWithWidgetPreference(mContext);
        mNotSpecifiedPreference.setKey(KEY_NOT_SPECIFIED);
        mFemininePreference = new TickButtonPreference(mContext);
        mFemininePreference = new SelectorWithWidgetPreference(mContext);
        mFemininePreference.setKey(KEY_FEMININE);
        mMasculinePreference = new TickButtonPreference(mContext);
        mMasculinePreference = new SelectorWithWidgetPreference(mContext);
        mMasculinePreference.setKey(KEY_MASCULINE);
        mNeutralPreference = new TickButtonPreference(mContext);
        mNeutralPreference = new SelectorWithWidgetPreference(mContext);
        mNeutralPreference.setKey(KEY_NEUTRAL);
        mPreferenceScreen.addPreference(mPreferenceCategory);
        mPreferenceScreen.addPreference(mNotSpecifiedPreference);
@@ -95,8 +95,8 @@ public class TermsOfAddressMasculineControllerTest {
    @Test
    @Ignore("b/339543490")
    public void displayPreference_setGrammaticalGenderIsMasculine_MasculineIsSelected() {
        TickButtonPreference selectedPreference =
                (TickButtonPreference) mPreferenceScreen.getPreference(3);
        SelectorWithWidgetPreference selectedPreference =
                (SelectorWithWidgetPreference) mPreferenceScreen.getPreference(3);
        selectedPreference.performClick();

        assertThat(selectedPreference.getKey()).isEqualTo(KEY_MASCULINE);
+11 −11
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.android.settings.widget.TickButtonPreference;
import com.android.settingslib.widget.SelectorWithWidgetPreference;

import org.junit.Before;
import org.junit.Ignore;
@@ -53,10 +53,10 @@ public class TermsOfAddressNeutralControllerTest {
    private PreferenceCategory mPreferenceCategory;
    private PreferenceScreen mPreferenceScreen;
    private TermsOfAddressNeutralController mController;
    private TickButtonPreference mFemininePreference;
    private TickButtonPreference mMasculinePreference;
    private TickButtonPreference mNotSpecifiedPreference;
    private TickButtonPreference mNeutralPreference;
    private SelectorWithWidgetPreference mFemininePreference;
    private SelectorWithWidgetPreference mMasculinePreference;
    private SelectorWithWidgetPreference mNotSpecifiedPreference;
    private SelectorWithWidgetPreference mNeutralPreference;
    private GrammaticalInflectionManager mGrammaticalInflectionManager;

    @Before
@@ -74,13 +74,13 @@ public class TermsOfAddressNeutralControllerTest {
        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
        mPreferenceCategory = new PreferenceCategory(mContext);
        mPreferenceCategory.setKey(KEY_CATEGORY_TERMS_OF_ADDRESS);
        mNotSpecifiedPreference = new TickButtonPreference(mContext);
        mNotSpecifiedPreference = new SelectorWithWidgetPreference(mContext);
        mNotSpecifiedPreference.setKey(KEY_NOT_SPECIFIED);
        mFemininePreference = new TickButtonPreference(mContext);
        mFemininePreference = new SelectorWithWidgetPreference(mContext);
        mFemininePreference.setKey(KEY_FEMININE);
        mMasculinePreference = new TickButtonPreference(mContext);
        mMasculinePreference = new SelectorWithWidgetPreference(mContext);
        mMasculinePreference.setKey(KEY_MASCULINE);
        mNeutralPreference = new TickButtonPreference(mContext);
        mNeutralPreference = new SelectorWithWidgetPreference(mContext);
        mNeutralPreference.setKey(KEY_NEUTRAL);
        mPreferenceScreen.addPreference(mPreferenceCategory);
        mPreferenceScreen.addPreference(mNotSpecifiedPreference);
@@ -95,8 +95,8 @@ public class TermsOfAddressNeutralControllerTest {
    @Test
    @Ignore("b/339543490")
    public void displayPreference_setGrammaticalGenderIsNotSpecified_NeutralIsSelected() {
        TickButtonPreference selectedPreference =
                (TickButtonPreference) mPreferenceScreen.getPreference(4);
        SelectorWithWidgetPreference selectedPreference =
                (SelectorWithWidgetPreference) mPreferenceScreen.getPreference(4);
        selectedPreference.performClick();

        assertThat(selectedPreference.getKey()).isEqualTo(KEY_NEUTRAL);
Loading