Merge " [Settings] UI part: Add metrics for numbers preferences" into udc-dev
This commit is contained in:
@@ -34,18 +34,22 @@ import com.android.internal.app.LocaleStore;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.widget.TickButtonPreference;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
/** Uses to control the preference UI of numbering system page. */
|
||||
public class NumberingSystemItemController extends BasePreferenceController {
|
||||
private static final String TAG = NumberingSystemItemController.class.getSimpleName();
|
||||
private static final String DISPLAY_KEYWORD_NUMBERING_SYSTEM = "numbers";
|
||||
|
||||
static final String ARG_VALUE_NUMBERING_SYSTEM_SELECT = "arg_value_numbering_system_select";
|
||||
static final String ARG_VALUE_LANGUAGE_SELECT = "arg_value_language_select";
|
||||
static final String KEY_SELECTED_LANGUAGE = "key_selected_language";
|
||||
private static final String DISPLAY_KEYWORD_NUMBERING_SYSTEM = "numbers";
|
||||
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
|
||||
private String mOption = "";
|
||||
private String mSelectedLanguage = "";
|
||||
@@ -60,6 +64,7 @@ public class NumberingSystemItemController extends BasePreferenceController {
|
||||
RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, "");
|
||||
mSelectedLanguage = argument.getString(
|
||||
NumberingSystemItemController.KEY_SELECTED_LANGUAGE, "");
|
||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -146,10 +151,13 @@ public class NumberingSystemItemController extends BasePreferenceController {
|
||||
}
|
||||
|
||||
private void handleLanguageSelect(Preference preference) {
|
||||
String selectedLanguage = preference.getKey();
|
||||
mMetricsFeatureProvider.action(mContext,
|
||||
SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES, selectedLanguage);
|
||||
final Bundle extra = new Bundle();
|
||||
extra.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE,
|
||||
ARG_VALUE_NUMBERING_SYSTEM_SELECT);
|
||||
extra.putString(KEY_SELECTED_LANGUAGE, preference.getKey());
|
||||
extra.putString(KEY_SELECTED_LANGUAGE, selectedLanguage);
|
||||
new SubSettingLauncher(preference.getContext())
|
||||
.setDestination(NumberingPreferencesFragment.class.getName())
|
||||
.setSourceMetricsCategory(
|
||||
@@ -163,13 +171,15 @@ public class NumberingSystemItemController extends BasePreferenceController {
|
||||
TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(i);
|
||||
Log.i(TAG, "[onPreferenceClick] key is " + pref.getKey());
|
||||
if (pref.getKey().equals(preference.getKey())) {
|
||||
String numberingSystem = pref.getKey();
|
||||
pref.setSelected(true);
|
||||
Locale updatedLocale =
|
||||
saveNumberingSystemToLocale(
|
||||
Locale.forLanguageTag(mSelectedLanguage), pref.getKey());
|
||||
|
||||
saveNumberingSystemToLocale(Locale.forLanguageTag(mSelectedLanguage),
|
||||
numberingSystem);
|
||||
mMetricsFeatureProvider.action(mContext,
|
||||
SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES, numberingSystem);
|
||||
// After updated locale to framework, this fragment will recreate,
|
||||
// so it need to update the argement of selected language.
|
||||
// so it needs to update the argument of selected language.
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE,
|
||||
ARG_VALUE_NUMBERING_SYSTEM_SELECT);
|
||||
|
@@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.LocaleList;
|
||||
@@ -33,6 +34,7 @@ import androidx.preference.PreferenceScreen;
|
||||
import androidx.test.annotation.UiThreadTest;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.widget.TickButtonPreference;
|
||||
|
||||
import org.junit.After;
|
||||
@@ -47,6 +49,7 @@ public class NumberingSystemItemControllerTest {
|
||||
private NumberingPreferencesFragment mFragment;
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
private LocaleList mCacheLocale;
|
||||
private FakeFeatureFactory mFeatureFactory;
|
||||
|
||||
@Before
|
||||
@UiThreadTest
|
||||
@@ -55,6 +58,7 @@ public class NumberingSystemItemControllerTest {
|
||||
Looper.prepare();
|
||||
}
|
||||
mApplicationContext = ApplicationProvider.getApplicationContext();
|
||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||
mFragment = spy(new NumberingPreferencesFragment());
|
||||
PreferenceManager preferenceManager = new PreferenceManager(mApplicationContext);
|
||||
mPreferenceScreen = preferenceManager.createPreferenceScreen(mApplicationContext);
|
||||
@@ -89,6 +93,10 @@ public class NumberingSystemItemControllerTest {
|
||||
}
|
||||
|
||||
assertTrue(isCallingStartActivity);
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
mApplicationContext,
|
||||
SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES,
|
||||
"I_am_the_key");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -109,6 +117,9 @@ public class NumberingSystemItemControllerTest {
|
||||
mController.handlePreferenceTreeClick(preference);
|
||||
|
||||
verify(mFragment).setArguments(any());
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
mApplicationContext, SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES,
|
||||
"test_key");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user