Merge "[Settings] UI part: Add metrics for language" into udc-dev am: bd9263b391
am: 39b150171b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22788844 Change-Id: Id2f4e945fc893315f15f4f58e0f114187b5edb19 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -37,6 +37,8 @@ import com.android.internal.app.LocaleStore;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.RestrictedSettingsFragment;
|
import com.android.settings.RestrictedSettingsFragment;
|
||||||
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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a dialog for system locale events.
|
* Create a dialog for system locale events.
|
||||||
@@ -143,6 +145,7 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment {
|
|||||||
private final int mDialogType;
|
private final int mDialogType;
|
||||||
private final LocaleStore.LocaleInfo mLocaleInfo;
|
private final LocaleStore.LocaleInfo mLocaleInfo;
|
||||||
private final ResultReceiver mResultReceiver;
|
private final ResultReceiver mResultReceiver;
|
||||||
|
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
|
|
||||||
LocaleDialogController(
|
LocaleDialogController(
|
||||||
@NonNull Context context, @NonNull LocaleDialogFragment dialogFragment) {
|
@NonNull Context context, @NonNull LocaleDialogFragment dialogFragment) {
|
||||||
@@ -152,6 +155,8 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment {
|
|||||||
mLocaleInfo = (LocaleStore.LocaleInfo) arguments.getSerializable(
|
mLocaleInfo = (LocaleStore.LocaleInfo) arguments.getSerializable(
|
||||||
ARG_TARGET_LOCALE);
|
ARG_TARGET_LOCALE);
|
||||||
mResultReceiver = (ResultReceiver) arguments.getParcelable(ARG_RESULT_RECEIVER);
|
mResultReceiver = (ResultReceiver) arguments.getParcelable(ARG_RESULT_RECEIVER);
|
||||||
|
mMetricsFeatureProvider = FeatureFactory.getFactory(
|
||||||
|
mContext).getMetricsFeatureProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
LocaleDialogController(@NonNull LocaleDialogFragment dialogFragment) {
|
LocaleDialogController(@NonNull LocaleDialogFragment dialogFragment) {
|
||||||
@@ -163,11 +168,15 @@ public class LocaleDialogFragment extends InstrumentedDialogFragment {
|
|||||||
if (mResultReceiver != null && mDialogType == DIALOG_CONFIRM_SYSTEM_DEFAULT) {
|
if (mResultReceiver != null && mDialogType == DIALOG_CONFIRM_SYSTEM_DEFAULT) {
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putInt(ARG_DIALOG_TYPE, DIALOG_CONFIRM_SYSTEM_DEFAULT);
|
bundle.putInt(ARG_DIALOG_TYPE, DIALOG_CONFIRM_SYSTEM_DEFAULT);
|
||||||
|
boolean changed = false;
|
||||||
if (which == DialogInterface.BUTTON_POSITIVE) {
|
if (which == DialogInterface.BUTTON_POSITIVE) {
|
||||||
|
changed = true;
|
||||||
mResultReceiver.send(Activity.RESULT_OK, bundle);
|
mResultReceiver.send(Activity.RESULT_OK, bundle);
|
||||||
} else if (which == DialogInterface.BUTTON_NEGATIVE) {
|
} else if (which == DialogInterface.BUTTON_NEGATIVE) {
|
||||||
mResultReceiver.send(Activity.RESULT_CANCELED, bundle);
|
mResultReceiver.send(Activity.RESULT_CANCELED, bundle);
|
||||||
}
|
}
|
||||||
|
mMetricsFeatureProvider.action(mContext,
|
||||||
|
SettingsEnums.ACTION_CHANGE_LANGUAGE, changed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.localepicker;
|
package com.android.settings.localepicker;
|
||||||
|
|
||||||
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -24,8 +25,10 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.HelpUtils;
|
import com.android.settingslib.HelpUtils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.widget.FooterPreference;
|
import com.android.settingslib.widget.FooterPreference;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -36,8 +39,11 @@ public class LocaleHelperPreferenceController extends AbstractPreferenceControll
|
|||||||
|
|
||||||
private static final String KEY_FOOTER_LANGUAGE_PICKER = "footer_languages_picker";
|
private static final String KEY_FOOTER_LANGUAGE_PICKER = "footer_languages_picker";
|
||||||
|
|
||||||
|
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
|
|
||||||
public LocaleHelperPreferenceController(Context context) {
|
public LocaleHelperPreferenceController(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
|
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -72,6 +78,7 @@ public class LocaleHelperPreferenceController extends AbstractPreferenceControll
|
|||||||
mContext.getString(R.string.link_locale_picker_footer_learn_more),
|
mContext.getString(R.string.link_locale_picker_footer_learn_more),
|
||||||
mContext.getClass().getName());
|
mContext.getClass().getName());
|
||||||
if (intent != null) {
|
if (intent != null) {
|
||||||
|
mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE);
|
||||||
mContext.startActivity(intent);
|
mContext.startActivity(intent);
|
||||||
} else {
|
} else {
|
||||||
Log.w(TAG, "HelpIntent is null");
|
Log.w(TAG, "HelpIntent is null");
|
||||||
|
@@ -38,6 +38,7 @@ import androidx.test.annotation.UiThreadTest;
|
|||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.internal.app.LocaleStore;
|
import com.android.internal.app.LocaleStore;
|
||||||
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settings.testutils.ResourcesUtils;
|
import com.android.settings.testutils.ResourcesUtils;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -55,11 +56,13 @@ public class LocaleDialogFragmentTest {
|
|||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private LocaleDialogFragment mDialogFragment;
|
private LocaleDialogFragment mDialogFragment;
|
||||||
|
private FakeFeatureFactory mFeatureFactory;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
mContext = ApplicationProvider.getApplicationContext();
|
mContext = ApplicationProvider.getApplicationContext();
|
||||||
mDialogFragment = new LocaleDialogFragment();
|
mDialogFragment = new LocaleDialogFragment();
|
||||||
|
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setArgument(
|
private void setArgument(
|
||||||
@@ -112,6 +115,8 @@ public class LocaleDialogFragmentTest {
|
|||||||
controller.onClick(null, DialogInterface.BUTTON_POSITIVE);
|
controller.onClick(null, DialogInterface.BUTTON_POSITIVE);
|
||||||
|
|
||||||
verify(resultReceiver).send(eq(Activity.RESULT_OK), any());
|
verify(resultReceiver).send(eq(Activity.RESULT_OK), any());
|
||||||
|
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||||
|
mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -124,6 +129,8 @@ public class LocaleDialogFragmentTest {
|
|||||||
controller.onClick(null, DialogInterface.BUTTON_NEGATIVE);
|
controller.onClick(null, DialogInterface.BUTTON_NEGATIVE);
|
||||||
|
|
||||||
verify(resultReceiver).send(eq(Activity.RESULT_CANCELED), any());
|
verify(resultReceiver).send(eq(Activity.RESULT_CANCELED), any());
|
||||||
|
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||||
|
mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -19,12 +19,14 @@ package com.android.settings.localepicker;
|
|||||||
import static org.mockito.Mockito.anyString;
|
import static org.mockito.Mockito.anyString;
|
||||||
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.Looper;
|
import android.os.Looper;
|
||||||
|
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settingslib.widget.FooterPreference;
|
import com.android.settingslib.widget.FooterPreference;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -37,6 +39,7 @@ import org.mockito.MockitoAnnotations;
|
|||||||
public class LocaleHelperPreferenceControllerTest {
|
public class LocaleHelperPreferenceControllerTest {
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private LocaleHelperPreferenceController mLocaleHelperPreferenceController;
|
private LocaleHelperPreferenceController mLocaleHelperPreferenceController;
|
||||||
|
private FakeFeatureFactory mFeatureFactory;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private FooterPreference mMockFooterPreference;
|
private FooterPreference mMockFooterPreference;
|
||||||
@@ -49,11 +52,16 @@ public class LocaleHelperPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
mContext = ApplicationProvider.getApplicationContext();
|
mContext = ApplicationProvider.getApplicationContext();
|
||||||
mLocaleHelperPreferenceController = new LocaleHelperPreferenceController(mContext);
|
mLocaleHelperPreferenceController = new LocaleHelperPreferenceController(mContext);
|
||||||
|
mFeatureFactory = FakeFeatureFactory.setupForTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateFooterPreference_setFooterPreference_hasClickAction() {
|
public void updateFooterPreference_setFooterPreference_hasClickAction() {
|
||||||
mLocaleHelperPreferenceController.updateFooterPreference(mMockFooterPreference);
|
mLocaleHelperPreferenceController.updateFooterPreference(mMockFooterPreference);
|
||||||
verify(mMockFooterPreference).setLearnMoreText(anyString());
|
verify(mMockFooterPreference).setLearnMoreText(anyString());
|
||||||
|
mMockFooterPreference.setLearnMoreAction(v -> {
|
||||||
|
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||||
|
mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user