[Settings] UI part: Add metrics for numbers preferences

Bug: 275003276
Test: local test
Change-Id: I2455252f3ed7f5355a363a79076113bd4452732d
This commit is contained in:
Zoey Chen
2023-04-24 06:17:38 +00:00
parent 134bea1957
commit af05cf7e0e
2 changed files with 27 additions and 6 deletions

View File

@@ -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);