Loading src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +10 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,9 @@ import android.text.TextUtils; import android.util.Log; import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.SettingsActivity; import com.android.settings.SubSettings; import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.drawer.CategoryManager; Loading Loading @@ -198,6 +200,8 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { return; } final Intent intent = new Intent(tile.intent) .putExtra(SettingsActivity.EXTRA_SOURCE_METRICS_CATEGORY, MetricsEvent.DASHBOARD_SUMMARY) .putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); launchIntentOrSelectProfile(activity, tile, intent); Loading @@ -222,10 +226,15 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { } final ComponentName cn = intent.getComponent(); if (cn == null) { // Not loggable return; } else if (TextUtils.equals(cn.getPackageName(), mContext.getPackageName())) { // Going to a Setting internal page, skip click logging in favor of page's own // visibility logging. return; } mMetricsFeatureProvider.action(mContext, MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK, MetricsEvent.ACTION_SETTINGS_TILE_CLICK, cn.flattenToString()); } } tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +29 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import org.mockito.Answers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowActivity; import org.robolectric.shadows.ShadowApplication; Loading @@ -55,6 +56,7 @@ import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -174,6 +176,33 @@ public class DashboardFeatureProviderImplTest { .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); } @Test public void bindPreference_toInternalSettingActivity_shouldBindToDirectLaunchIntentAndNotLog() { final Preference preference = new Preference(RuntimeEnvironment.application); final Tile tile = new Tile(); tile.metaData = new Bundle(); tile.userHandle = new ArrayList<>(); tile.userHandle.add(mock(UserHandle.class)); tile.intent = new Intent(); tile.intent.setComponent( new ComponentName(RuntimeEnvironment.application.getPackageName(), "class")); when(mActivity.getSystemService(Context.USER_SERVICE)) .thenReturn(mUserManager); when(mActivity.getApplicationContext().getPackageName()) .thenReturn(RuntimeEnvironment.application.getPackageName()); mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER); preference.getOnPreferenceClickListener().onPreferenceClick(null); verify(mFeatureFactory.metricsFeatureProvider, never()).action( any(Context.class), eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK), eq(tile.intent.getComponent().flattenToString())); verify(mActivity) .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); } @Test public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() { final Preference preference = new Preference( Loading Loading
src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +10 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,9 @@ import android.text.TextUtils; import android.util.Log; import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.SettingsActivity; import com.android.settings.SubSettings; import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.drawer.CategoryManager; Loading Loading @@ -198,6 +200,8 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { return; } final Intent intent = new Intent(tile.intent) .putExtra(SettingsActivity.EXTRA_SOURCE_METRICS_CATEGORY, MetricsEvent.DASHBOARD_SUMMARY) .putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); launchIntentOrSelectProfile(activity, tile, intent); Loading @@ -222,10 +226,15 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { } final ComponentName cn = intent.getComponent(); if (cn == null) { // Not loggable return; } else if (TextUtils.equals(cn.getPackageName(), mContext.getPackageName())) { // Going to a Setting internal page, skip click logging in favor of page's own // visibility logging. return; } mMetricsFeatureProvider.action(mContext, MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK, MetricsEvent.ACTION_SETTINGS_TILE_CLICK, cn.flattenToString()); } }
tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +29 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import org.mockito.Answers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowActivity; import org.robolectric.shadows.ShadowApplication; Loading @@ -55,6 +56,7 @@ import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -174,6 +176,33 @@ public class DashboardFeatureProviderImplTest { .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); } @Test public void bindPreference_toInternalSettingActivity_shouldBindToDirectLaunchIntentAndNotLog() { final Preference preference = new Preference(RuntimeEnvironment.application); final Tile tile = new Tile(); tile.metaData = new Bundle(); tile.userHandle = new ArrayList<>(); tile.userHandle.add(mock(UserHandle.class)); tile.intent = new Intent(); tile.intent.setComponent( new ComponentName(RuntimeEnvironment.application.getPackageName(), "class")); when(mActivity.getSystemService(Context.USER_SERVICE)) .thenReturn(mUserManager); when(mActivity.getApplicationContext().getPackageName()) .thenReturn(RuntimeEnvironment.application.getPackageName()); mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.SETTINGS_GESTURES, preference, tile, "123", Preference.DEFAULT_ORDER); preference.getOnPreferenceClickListener().onPreferenceClick(null); verify(mFeatureFactory.metricsFeatureProvider, never()).action( any(Context.class), eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK), eq(tile.intent.getComponent().flattenToString())); verify(mActivity) .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); } @Test public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() { final Preference preference = new Preference( Loading