Merge "Rollback language source metrics" into udc-qpr-dev
This commit is contained in:
@@ -18,7 +18,6 @@ package com.android.settings.localepicker;
|
|||||||
|
|
||||||
import android.app.FragmentTransaction;
|
import android.app.FragmentTransaction;
|
||||||
import android.app.LocaleManager;
|
import android.app.LocaleManager;
|
||||||
import android.app.settings.SettingsEnums;
|
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -38,22 +37,15 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.applications.AppLocaleUtil;
|
import com.android.settings.applications.AppLocaleUtil;
|
||||||
import com.android.settings.applications.appinfo.AppLocaleDetails;
|
import com.android.settings.applications.appinfo.AppLocaleDetails;
|
||||||
import com.android.settings.core.SettingsBaseActivity;
|
import com.android.settings.core.SettingsBaseActivity;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
|
||||||
|
|
||||||
public class AppLocalePickerActivity extends SettingsBaseActivity
|
public class AppLocalePickerActivity extends SettingsBaseActivity
|
||||||
implements LocalePickerWithRegion.LocaleSelectedListener, MenuItem.OnActionExpandListener {
|
implements LocalePickerWithRegion.LocaleSelectedListener, MenuItem.OnActionExpandListener {
|
||||||
private static final String TAG = AppLocalePickerActivity.class.getSimpleName();
|
private static final String TAG = AppLocalePickerActivity.class.getSimpleName();
|
||||||
private static final int SIM_LOCALE = 1 << 0;
|
|
||||||
private static final int SYSTEM_LOCALE = 1 << 1;
|
|
||||||
private static final int APP_LOCALE = 1 << 2;
|
|
||||||
private static final int IME_LOCALE = 1 << 3;
|
|
||||||
|
|
||||||
private String mPackageName;
|
private String mPackageName;
|
||||||
private LocalePickerWithRegion mLocalePickerWithRegion;
|
private LocalePickerWithRegion mLocalePickerWithRegion;
|
||||||
private AppLocaleDetails mAppLocaleDetails;
|
private AppLocaleDetails mAppLocaleDetails;
|
||||||
private View mAppLocaleDetailContainer;
|
private View mAppLocaleDetailContainer;
|
||||||
private MetricsFeatureProvider mMetricsFeatureProvider;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -79,7 +71,6 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
|||||||
|
|
||||||
setTitle(R.string.app_locale_picker_title);
|
setTitle(R.string.app_locale_picker_title);
|
||||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
mMetricsFeatureProvider = FeatureFactory.getFactory(this).getMetricsFeatureProvider();
|
|
||||||
|
|
||||||
mLocalePickerWithRegion = LocalePickerWithRegion.createLanguagePicker(
|
mLocalePickerWithRegion = LocalePickerWithRegion.createLanguagePicker(
|
||||||
this,
|
this,
|
||||||
@@ -108,7 +99,6 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
|||||||
if (localeInfo == null || localeInfo.getLocale() == null || localeInfo.isSystemLocale()) {
|
if (localeInfo == null || localeInfo.getLocale() == null || localeInfo.isSystemLocale()) {
|
||||||
setAppDefaultLocale("");
|
setAppDefaultLocale("");
|
||||||
} else {
|
} else {
|
||||||
logLocaleSource(localeInfo);
|
|
||||||
setAppDefaultLocale(localeInfo.getLocale().toLanguageTag());
|
setAppDefaultLocale(localeInfo.getLocale().toLanguageTag());
|
||||||
}
|
}
|
||||||
finish();
|
finish();
|
||||||
@@ -187,32 +177,4 @@ public class AppLocalePickerActivity extends SettingsBaseActivity
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void logLocaleSource(LocaleStore.LocaleInfo localeInfo) {
|
|
||||||
if (!localeInfo.isSuggested() || localeInfo.isAppCurrentLocale()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int localeSource = 0;
|
|
||||||
if (hasSuggestionType(localeInfo,
|
|
||||||
LocaleStore.LocaleInfo.SUGGESTION_TYPE_SYSTEM_AVAILABLE_LANGUAGE)) {
|
|
||||||
localeSource |= SYSTEM_LOCALE;
|
|
||||||
}
|
|
||||||
if (hasSuggestionType(localeInfo,
|
|
||||||
LocaleStore.LocaleInfo.SUGGESTION_TYPE_OTHER_APP_LANGUAGE)) {
|
|
||||||
localeSource |= APP_LOCALE;
|
|
||||||
}
|
|
||||||
if (hasSuggestionType(localeInfo, LocaleStore.LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE)) {
|
|
||||||
localeSource |= IME_LOCALE;
|
|
||||||
}
|
|
||||||
if (hasSuggestionType(localeInfo, LocaleStore.LocaleInfo.SUGGESTION_TYPE_SIM)) {
|
|
||||||
localeSource |= SIM_LOCALE;
|
|
||||||
}
|
|
||||||
mMetricsFeatureProvider.action(this,
|
|
||||||
SettingsEnums.ACTION_CHANGE_APP_LANGUAGE_FROM_SUGGESTED, localeSource);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean hasSuggestionType(LocaleStore.LocaleInfo localeInfo,
|
|
||||||
int suggestionType) {
|
|
||||||
return localeInfo.isSuggestionOfType(suggestionType);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -18,8 +18,6 @@ package com.android.settings.localepicker;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
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.mock;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
@@ -29,7 +27,6 @@ import static org.mockito.Mockito.when;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.ApplicationPackageManager;
|
import android.app.ApplicationPackageManager;
|
||||||
import android.app.LocaleConfig;
|
import android.app.LocaleConfig;
|
||||||
import android.app.settings.SettingsEnums;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
@@ -48,7 +45,6 @@ import androidx.annotation.ArrayRes;
|
|||||||
import com.android.internal.app.LocaleStore;
|
import com.android.internal.app.LocaleStore;
|
||||||
import com.android.settings.applications.AppInfoBase;
|
import com.android.settings.applications.AppInfoBase;
|
||||||
import com.android.settings.applications.AppLocaleUtil;
|
import com.android.settings.applications.AppLocaleUtil;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -83,7 +79,6 @@ import java.util.Locale;
|
|||||||
public class AppLocalePickerActivityTest {
|
public class AppLocalePickerActivityTest {
|
||||||
private static final String TEST_PACKAGE_NAME = "com.android.settings";
|
private static final String TEST_PACKAGE_NAME = "com.android.settings";
|
||||||
private static final Uri TEST_PACKAGE_URI = Uri.parse("package:" + TEST_PACKAGE_NAME);
|
private static final Uri TEST_PACKAGE_URI = Uri.parse("package:" + TEST_PACKAGE_NAME);
|
||||||
private FakeFeatureFactory mFeatureFactory;
|
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
LocaleStore.LocaleInfo mLocaleInfo;
|
LocaleStore.LocaleInfo mLocaleInfo;
|
||||||
@@ -104,7 +99,6 @@ public class AppLocalePickerActivityTest {
|
|||||||
when(mLocaleConfig.getStatus()).thenReturn(LocaleConfig.STATUS_SUCCESS);
|
when(mLocaleConfig.getStatus()).thenReturn(LocaleConfig.STATUS_SUCCESS);
|
||||||
when(mLocaleConfig.getSupportedLocales()).thenReturn(LocaleList.forLanguageTags("en-US"));
|
when(mLocaleConfig.getSupportedLocales()).thenReturn(LocaleList.forLanguageTags("en-US"));
|
||||||
ReflectionHelpers.setStaticField(AppLocaleUtil.class, "sLocaleConfig", mLocaleConfig);
|
ReflectionHelpers.setStaticField(AppLocaleUtil.class, "sLocaleConfig", mLocaleConfig);
|
||||||
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
@@ -216,37 +210,6 @@ public class AppLocalePickerActivityTest {
|
|||||||
assertThat(controller.get().isFinishing()).isTrue();
|
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(
|
private ActivityController<TestAppLocalePickerActivity> initActivityController(
|
||||||
boolean hasPackageName) {
|
boolean hasPackageName) {
|
||||||
Intent data = new Intent();
|
Intent data = new Intent();
|
||||||
|
Reference in New Issue
Block a user