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