Add metrics to the regional preferences implementation

1. Region
2. Temperature
3. Measurement system
4. First day of week

Bug: 389568296
Flag: EXEMPT metrics
Test: manual
Change-Id: I62c1cbcec873b33c76fd389c27e7809c7581db97
This commit is contained in:
danielwbhuang
2025-01-14 22:04:34 +08:00
parent e87733be63
commit 37749d5ee2
5 changed files with 88 additions and 2 deletions

View File

@@ -18,11 +18,16 @@ package com.android.settings.regionalpreferences;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings;
import androidx.annotation.NonNull;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList; import java.util.ArrayList;
@@ -36,6 +41,19 @@ public class FirstDayOfWeekItemFragment extends DashboardFragment {
private static final String KEY_PREFERENCE_CATEGORY_FIRST_DAY_OF_WEEK_ITEM = private static final String KEY_PREFERENCE_CATEGORY_FIRST_DAY_OF_WEEK_ITEM =
"first_day_of_week_item_category"; "first_day_of_week_item_category";
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
String action = getIntent() != null ? getIntent().getAction() : "";
if (Settings.ACTION_FIRST_DAY_OF_WEEK_SETTINGS.equals(action)) {
metricsFeatureProvider.action(
context, SettingsEnums.ACTION_OPEN_FIRST_DAY_OF_WEEK_OUTSIDE_SETTINGS);
}
}
@Override @Override
protected int getPreferenceScreenResId() { protected int getPreferenceScreenResId() {
return R.xml.regional_preferences_first_day_of_week; return R.xml.regional_preferences_first_day_of_week;

View File

@@ -18,12 +18,17 @@ package com.android.settings.regionalpreferences;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings;
import androidx.annotation.NonNull;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags; import com.android.settings.flags.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList; import java.util.ArrayList;
@@ -36,6 +41,20 @@ public class MeasurementSystemItemFragment extends DashboardFragment {
private static final String LOG_TAG = "MeasurementSystemItemFragment"; private static final String LOG_TAG = "MeasurementSystemItemFragment";
private static final String KEY_PREFERENCE_CATEGORY_MEASUREMENT_SYSTEM_ITEM = private static final String KEY_PREFERENCE_CATEGORY_MEASUREMENT_SYSTEM_ITEM =
"measurement_system_item_category"; "measurement_system_item_category";
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
String action = getIntent() != null ? getIntent().getAction() : "";
if (Settings.ACTION_MEASUREMENT_SYSTEM_SETTINGS.equals(action)) {
metricsFeatureProvider.action(
context, SettingsEnums.ACTION_OPEN_MEASUREMENT_SYSTEM_OUTSIDE_SETTINGS);
}
}
@Override @Override
protected int getPreferenceScreenResId() { protected int getPreferenceScreenResId() {
return R.xml.regional_preferences_measurement_system; return R.xml.regional_preferences_measurement_system;

View File

@@ -17,6 +17,7 @@
package com.android.settings.regionalpreferences; package com.android.settings.regionalpreferences;
import android.app.Dialog; import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
@@ -35,6 +36,8 @@ import com.android.internal.app.LocalePicker;
import com.android.internal.app.LocaleStore; import com.android.internal.app.LocaleStore;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import java.util.Locale; import java.util.Locale;
import java.util.Set; import java.util.Set;
@@ -61,7 +64,7 @@ public class RegionDialogFragment extends InstrumentedDialogFragment {
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {
return 0; return SettingsEnums.CHANGE_REGION_DIALOG;
} }
@NonNull @NonNull
@@ -110,6 +113,7 @@ public class RegionDialogFragment extends InstrumentedDialogFragment {
private final Context mContext; private final Context mContext;
private final int mDialogType; private final int mDialogType;
private final LocaleStore.LocaleInfo mLocaleInfo; private final LocaleStore.LocaleInfo mLocaleInfo;
private final MetricsFeatureProvider mMetricsFeatureProvider;
RegionDialogController( RegionDialogController(
@NonNull Context context, @NonNull RegionDialogFragment dialogFragment) { @NonNull Context context, @NonNull RegionDialogFragment dialogFragment) {
@@ -117,6 +121,8 @@ public class RegionDialogFragment extends InstrumentedDialogFragment {
Bundle arguments = dialogFragment.getArguments(); Bundle arguments = dialogFragment.getArguments();
mDialogType = arguments.getInt(ARG_DIALOG_TYPE); mDialogType = arguments.getInt(ARG_DIALOG_TYPE);
mLocaleInfo = (LocaleStore.LocaleInfo) arguments.getSerializable(ARG_TARGET_LOCALE); mLocaleInfo = (LocaleStore.LocaleInfo) arguments.getSerializable(ARG_TARGET_LOCALE);
mMetricsFeatureProvider =
FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
} }
@Override @Override
@@ -124,6 +130,14 @@ public class RegionDialogFragment extends InstrumentedDialogFragment {
if (mDialogType == DIALOG_CHANGE_LOCALE_REGION) { if (mDialogType == DIALOG_CHANGE_LOCALE_REGION) {
if (which == DialogInterface.BUTTON_POSITIVE) { if (which == DialogInterface.BUTTON_POSITIVE) {
updateRegion(mLocaleInfo.getLocale().toLanguageTag()); updateRegion(mLocaleInfo.getLocale().toLanguageTag());
mMetricsFeatureProvider.action(
mContext,
SettingsEnums.ACTION_CHANGE_REGION_DIALOG_POSITIVE_BTN_CLICKED);
}
if (which == DialogInterface.BUTTON_NEGATIVE) {
mMetricsFeatureProvider.action(
mContext,
SettingsEnums.ACTION_CHANGE_REGION_DIALOG_NEGATIVE_BTN_CLICKED);
} }
dismiss(); dismiss();
if (getActivity() != null) { if (getActivity() != null) {

View File

@@ -16,8 +16,10 @@
package com.android.settings.regionalpreferences; package com.android.settings.regionalpreferences;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -25,8 +27,10 @@ import com.android.internal.app.LocaleStore;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags; import com.android.settings.flags.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -44,6 +48,19 @@ public class RegionPickerFragment extends DashboardFragment{
super.onCreate(icicle); super.onCreate(icicle);
} }
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
String action = getIntent() != null ? getIntent().getAction() : "";
if (Settings.ACTION_REGION_SETTINGS.equals(action)) {
metricsFeatureProvider.action(
context, SettingsEnums.ACTION_OPEN_REGION_OUTSIDE_SETTINGS);
}
}
@Override @Override
protected int getPreferenceScreenResId() { protected int getPreferenceScreenResId() {
return R.xml.system_region_picker; return R.xml.system_region_picker;
@@ -56,7 +73,7 @@ public class RegionPickerFragment extends DashboardFragment{
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {
return 0; return SettingsEnums.REGION_SETTINGS;
} }
@Override @Override

View File

@@ -18,11 +18,16 @@ package com.android.settings.regionalpreferences;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.provider.Settings;
import androidx.annotation.NonNull;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList; import java.util.ArrayList;
@@ -36,6 +41,19 @@ public class TemperatureUnitFragment extends DashboardFragment {
private static final String KEY_PREFERENCE_CATEGORY_TEMPERATURE_UNIT = private static final String KEY_PREFERENCE_CATEGORY_TEMPERATURE_UNIT =
"temperature_unit_category"; "temperature_unit_category";
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
String action = getIntent() != null ? getIntent().getAction() : "";
if (Settings.ACTION_TEMPERATURE_UNIT_SETTINGS.equals(action)) {
metricsFeatureProvider.action(
context, SettingsEnums.ACTION_OPEN_TEMPERATURE_UNIT_OUTSIDE_SETTINGS);
}
}
@Override @Override
protected int getPreferenceScreenResId() { protected int getPreferenceScreenResId() {
return R.xml.regional_preferences_temperature; return R.xml.regional_preferences_temperature;