[Panlingual]Log metrics for App's locale from the suggested
Bug: 258128535 Test: atest AppLocalePickerActivityTest Change-Id: I007c0e76d8b88f08518ba2696d42bd1db194f5b7
This commit is contained in:
@@ -18,6 +18,8 @@ package com.android.settings.localepicker;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
@@ -27,6 +29,7 @@ import static org.mockito.Mockito.when;
|
||||
import android.app.Activity;
|
||||
import android.app.ApplicationPackageManager;
|
||||
import android.app.LocaleConfig;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
@@ -45,6 +48,7 @@ import androidx.annotation.ArrayRes;
|
||||
import com.android.internal.app.LocaleStore;
|
||||
import com.android.settings.applications.AppInfoBase;
|
||||
import com.android.settings.applications.AppLocaleUtil;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
@@ -79,6 +83,7 @@ import java.util.Locale;
|
||||
public class AppLocalePickerActivityTest {
|
||||
private static final String TEST_PACKAGE_NAME = "com.android.settings";
|
||||
private static final Uri TEST_PACKAGE_URI = Uri.parse("package:" + TEST_PACKAGE_NAME);
|
||||
private FakeFeatureFactory mFeatureFactory;
|
||||
|
||||
@Mock
|
||||
LocaleStore.LocaleInfo mLocaleInfo;
|
||||
@@ -99,6 +104,7 @@ public class AppLocalePickerActivityTest {
|
||||
when(mLocaleConfig.getStatus()).thenReturn(LocaleConfig.STATUS_SUCCESS);
|
||||
when(mLocaleConfig.getSupportedLocales()).thenReturn(LocaleList.forLanguageTags("en-US"));
|
||||
ReflectionHelpers.setStaticField(AppLocaleUtil.class, "sLocaleConfig", mLocaleConfig);
|
||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -210,6 +216,37 @@ public class AppLocalePickerActivityTest {
|
||||
assertThat(controller.get().isFinishing()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onLocaleSelected_logLocaleSource() {
|
||||
ActivityController<TestAppLocalePickerActivity> controller =
|
||||
initActivityController(true);
|
||||
LocaleList.setDefault(LocaleList.forLanguageTags("ja-JP,en-CA,en-US"));
|
||||
Locale locale = new Locale("en", "US");
|
||||
when(mLocaleInfo.getLocale()).thenReturn(locale);
|
||||
when(mLocaleInfo.isSystemLocale()).thenReturn(false);
|
||||
when(mLocaleInfo.isSuggested()).thenReturn(true);
|
||||
when(mLocaleInfo.isSuggestionOfType(LocaleStore.LocaleInfo.SUGGESTION_TYPE_SIM)).thenReturn(
|
||||
true);
|
||||
when(mLocaleInfo.isSuggestionOfType(
|
||||
LocaleStore.LocaleInfo.SUGGESTION_TYPE_SYSTEM_AVAILABLE_LANGUAGE)).thenReturn(
|
||||
true);
|
||||
when(mLocaleInfo.isSuggestionOfType(
|
||||
LocaleStore.LocaleInfo.SUGGESTION_TYPE_OTHER_APP_LANGUAGE)).thenReturn(
|
||||
true);
|
||||
when(mLocaleInfo.isSuggestionOfType(
|
||||
LocaleStore.LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE)).thenReturn(
|
||||
true);
|
||||
|
||||
controller.create();
|
||||
AppLocalePickerActivity mActivity = controller.get();
|
||||
mActivity.onLocaleSelected(mLocaleInfo);
|
||||
|
||||
int localeSource = 15; // SIM_LOCALE | SYSTEM_LOCALE |IME_LOCALE|APP_LOCALE
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
any(), eq(SettingsEnums.ACTION_CHANGE_APP_LANGUAGE_FROM_SUGGESTED),
|
||||
eq(localeSource));
|
||||
}
|
||||
|
||||
private ActivityController<TestAppLocalePickerActivity> initActivityController(
|
||||
boolean hasPackageName) {
|
||||
Intent data = new Intent();
|
||||
|
Reference in New Issue
Block a user