Loading src/com/android/settings/localepicker/LocaleDialogFragment.java +9 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ import com.android.internal.app.LocaleStore; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; /** * Create a dialog for system locale events. Loading Loading @@ -143,6 +145,7 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment { private final int mDialogType; private final LocaleStore.LocaleInfo mLocaleInfo; private final ResultReceiver mResultReceiver; private final MetricsFeatureProvider mMetricsFeatureProvider; LocaleDialogController( @NonNull Context context, @NonNull LocaleDialogFragment dialogFragment) { Loading @@ -152,6 +155,8 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment { mLocaleInfo = (LocaleStore.LocaleInfo) arguments.getSerializable( ARG_TARGET_LOCALE); mResultReceiver = (ResultReceiver) arguments.getParcelable(ARG_RESULT_RECEIVER); mMetricsFeatureProvider = FeatureFactory.getFactory( mContext).getMetricsFeatureProvider(); } LocaleDialogController(@NonNull LocaleDialogFragment dialogFragment) { Loading @@ -163,11 +168,15 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment { if (mResultReceiver != null && mDialogType == DIALOG_CONFIRM_SYSTEM_DEFAULT) { Bundle bundle = new Bundle(); bundle.putInt(ARG_DIALOG_TYPE, DIALOG_CONFIRM_SYSTEM_DEFAULT); boolean changed = false; if (which == DialogInterface.BUTTON_POSITIVE) { changed = true; mResultReceiver.send(Activity.RESULT_OK, bundle); } else if (which == DialogInterface.BUTTON_NEGATIVE) { mResultReceiver.send(Activity.RESULT_CANCELED, bundle); } mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, changed); } } Loading src/com/android/settings/localepicker/LocaleHelperPreferenceController.java +7 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.localepicker; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; import android.util.Log; Loading @@ -24,8 +25,10 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.HelpUtils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.widget.FooterPreference; /** Loading @@ -36,8 +39,11 @@ public class LocaleHelperPreferenceController extends AbstractPreferenceControll private static final String KEY_FOOTER_LANGUAGE_PICKER = "footer_languages_picker"; private final MetricsFeatureProvider mMetricsFeatureProvider; public LocaleHelperPreferenceController(Context context) { super(context); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } @Override Loading Loading @@ -72,6 +78,7 @@ public class LocaleHelperPreferenceController extends AbstractPreferenceControll mContext.getString(R.string.link_locale_picker_footer_learn_more), mContext.getClass().getName()); if (intent != null) { mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE); mContext.startActivity(intent); } else { Log.w(TAG, "HelpIntent is null"); Loading tests/unit/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import androidx.test.annotation.UiThreadTest; import androidx.test.core.app.ApplicationProvider; import com.android.internal.app.LocaleStore; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.ResourcesUtils; import org.junit.Before; Loading @@ -55,11 +56,13 @@ public class LocaleDialogFragmentTest { private Context mContext; private LocaleDialogFragment mDialogFragment; private FakeFeatureFactory mFeatureFactory; @Before public void setUp() throws Exception { mContext = ApplicationProvider.getApplicationContext(); mDialogFragment = new LocaleDialogFragment(); mFeatureFactory = FakeFeatureFactory.setupForTest(); } private void setArgument( Loading Loading @@ -112,6 +115,8 @@ public class LocaleDialogFragmentTest { controller.onClick(null, DialogInterface.BUTTON_POSITIVE); verify(resultReceiver).send(eq(Activity.RESULT_OK), any()); verify(mFeatureFactory.metricsFeatureProvider).action( mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, true); } @Test Loading @@ -124,6 +129,8 @@ public class LocaleDialogFragmentTest { controller.onClick(null, DialogInterface.BUTTON_NEGATIVE); verify(resultReceiver).send(eq(Activity.RESULT_CANCELED), any()); verify(mFeatureFactory.metricsFeatureProvider).action( mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, false); } @Test Loading tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java +8 −0 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package com.android.settings.localepicker; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.verify; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Looper; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.widget.FooterPreference; import org.junit.Before; Loading @@ -37,6 +39,7 @@ import org.mockito.MockitoAnnotations; public class LocaleHelperPreferenceControllerTest { private Context mContext; private LocaleHelperPreferenceController mLocaleHelperPreferenceController; private FakeFeatureFactory mFeatureFactory; @Mock private FooterPreference mMockFooterPreference; Loading @@ -49,11 +52,16 @@ public class LocaleHelperPreferenceControllerTest { } mContext = ApplicationProvider.getApplicationContext(); mLocaleHelperPreferenceController = new LocaleHelperPreferenceController(mContext); mFeatureFactory = FakeFeatureFactory.setupForTest(); } @Test public void updateFooterPreference_setFooterPreference_hasClickAction() { mLocaleHelperPreferenceController.updateFooterPreference(mMockFooterPreference); verify(mMockFooterPreference).setLearnMoreText(anyString()); mMockFooterPreference.setLearnMoreAction(v -> { verify(mFeatureFactory.metricsFeatureProvider).action( mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE); }); } } Loading
src/com/android/settings/localepicker/LocaleDialogFragment.java +9 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ import com.android.internal.app.LocaleStore; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; /** * Create a dialog for system locale events. Loading Loading @@ -143,6 +145,7 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment { private final int mDialogType; private final LocaleStore.LocaleInfo mLocaleInfo; private final ResultReceiver mResultReceiver; private final MetricsFeatureProvider mMetricsFeatureProvider; LocaleDialogController( @NonNull Context context, @NonNull LocaleDialogFragment dialogFragment) { Loading @@ -152,6 +155,8 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment { mLocaleInfo = (LocaleStore.LocaleInfo) arguments.getSerializable( ARG_TARGET_LOCALE); mResultReceiver = (ResultReceiver) arguments.getParcelable(ARG_RESULT_RECEIVER); mMetricsFeatureProvider = FeatureFactory.getFactory( mContext).getMetricsFeatureProvider(); } LocaleDialogController(@NonNull LocaleDialogFragment dialogFragment) { Loading @@ -163,11 +168,15 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment { if (mResultReceiver != null && mDialogType == DIALOG_CONFIRM_SYSTEM_DEFAULT) { Bundle bundle = new Bundle(); bundle.putInt(ARG_DIALOG_TYPE, DIALOG_CONFIRM_SYSTEM_DEFAULT); boolean changed = false; if (which == DialogInterface.BUTTON_POSITIVE) { changed = true; mResultReceiver.send(Activity.RESULT_OK, bundle); } else if (which == DialogInterface.BUTTON_NEGATIVE) { mResultReceiver.send(Activity.RESULT_CANCELED, bundle); } mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, changed); } } Loading
src/com/android/settings/localepicker/LocaleHelperPreferenceController.java +7 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.localepicker; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; import android.util.Log; Loading @@ -24,8 +25,10 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.HelpUtils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.widget.FooterPreference; /** Loading @@ -36,8 +39,11 @@ public class LocaleHelperPreferenceController extends AbstractPreferenceControll private static final String KEY_FOOTER_LANGUAGE_PICKER = "footer_languages_picker"; private final MetricsFeatureProvider mMetricsFeatureProvider; public LocaleHelperPreferenceController(Context context) { super(context); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } @Override Loading Loading @@ -72,6 +78,7 @@ public class LocaleHelperPreferenceController extends AbstractPreferenceControll mContext.getString(R.string.link_locale_picker_footer_learn_more), mContext.getClass().getName()); if (intent != null) { mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE); mContext.startActivity(intent); } else { Log.w(TAG, "HelpIntent is null"); Loading
tests/unit/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import androidx.test.annotation.UiThreadTest; import androidx.test.core.app.ApplicationProvider; import com.android.internal.app.LocaleStore; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.ResourcesUtils; import org.junit.Before; Loading @@ -55,11 +56,13 @@ public class LocaleDialogFragmentTest { private Context mContext; private LocaleDialogFragment mDialogFragment; private FakeFeatureFactory mFeatureFactory; @Before public void setUp() throws Exception { mContext = ApplicationProvider.getApplicationContext(); mDialogFragment = new LocaleDialogFragment(); mFeatureFactory = FakeFeatureFactory.setupForTest(); } private void setArgument( Loading Loading @@ -112,6 +115,8 @@ public class LocaleDialogFragmentTest { controller.onClick(null, DialogInterface.BUTTON_POSITIVE); verify(resultReceiver).send(eq(Activity.RESULT_OK), any()); verify(mFeatureFactory.metricsFeatureProvider).action( mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, true); } @Test Loading @@ -124,6 +129,8 @@ public class LocaleDialogFragmentTest { controller.onClick(null, DialogInterface.BUTTON_NEGATIVE); verify(resultReceiver).send(eq(Activity.RESULT_CANCELED), any()); verify(mFeatureFactory.metricsFeatureProvider).action( mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, false); } @Test Loading
tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java +8 −0 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package com.android.settings.localepicker; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.verify; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Looper; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.widget.FooterPreference; import org.junit.Before; Loading @@ -37,6 +39,7 @@ import org.mockito.MockitoAnnotations; public class LocaleHelperPreferenceControllerTest { private Context mContext; private LocaleHelperPreferenceController mLocaleHelperPreferenceController; private FakeFeatureFactory mFeatureFactory; @Mock private FooterPreference mMockFooterPreference; Loading @@ -49,11 +52,16 @@ public class LocaleHelperPreferenceControllerTest { } mContext = ApplicationProvider.getApplicationContext(); mLocaleHelperPreferenceController = new LocaleHelperPreferenceController(mContext); mFeatureFactory = FakeFeatureFactory.setupForTest(); } @Test public void updateFooterPreference_setFooterPreference_hasClickAction() { mLocaleHelperPreferenceController.updateFooterPreference(mMockFooterPreference); verify(mMockFooterPreference).setLearnMoreText(anyString()); mMockFooterPreference.setLearnMoreAction(v -> { verify(mFeatureFactory.metricsFeatureProvider).action( mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE); }); } }