Loading src/com/android/settings/CreateShortcut.java +14 −2 Original line number Original line Diff line number Diff line Loading @@ -39,7 +39,9 @@ import android.view.View.MeasureSpec; import android.widget.ImageView; import android.widget.ImageView; import android.widget.ListView; import android.widget.ListView; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.Settings.TetherSettingsActivity; import com.android.settings.Settings.TetherSettingsActivity; import com.android.settings.overlay.FeatureFactory; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; import java.util.List; Loading @@ -56,7 +58,8 @@ public class CreateShortcut extends LauncherActivity { @Override @Override protected void onListItemClick(ListView l, View v, int position, long id) { protected void onListItemClick(ListView l, View v, int position, long id) { ListItem item = itemForPosition(position); final ListItem item = itemForPosition(position); logCreateShortcut(item.resolveInfo); setResult(RESULT_OK, createResultIntent(intentForPosition(position), setResult(RESULT_OK, createResultIntent(intentForPosition(position), item.resolveInfo, item.label)); item.resolveInfo, item.label)); finish(); finish(); Loading Loading @@ -89,6 +92,15 @@ public class CreateShortcut extends LauncherActivity { return intent; return intent; } } private void logCreateShortcut(ResolveInfo info) { if (info == null || info.activityInfo == null) { return; } FeatureFactory.getFactory(this).getMetricsFeatureProvider().action( this, MetricsProto.MetricsEvent.ACTION_SETTINGS_CREATE_SHORTCUT, info.activityInfo.name); } private Bitmap createIcon(int resource) { private Bitmap createIcon(int resource) { Context context = new ContextThemeWrapper(this, android.R.style.Theme_Material); Context context = new ContextThemeWrapper(this, android.R.style.Theme_Material); View view = LayoutInflater.from(context).inflate(R.layout.shortcut_badge, null); View view = LayoutInflater.from(context).inflate(R.layout.shortcut_badge, null); Loading src/com/android/settings/SettingsActivity.java +0 −1 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,6 @@ import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.SettingsDrawerActivity; import com.android.settingslib.drawer.SettingsDrawerActivity; import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; import java.util.List; import java.util.Set; import java.util.Set; Loading src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +21 −1 Original line number Original line Diff line number Diff line Loading @@ -27,7 +27,10 @@ import android.support.v7.preference.Preference; import android.text.TextUtils; import android.text.TextUtils; import android.util.Log; import android.util.Log; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity; import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.ProfileSelectDialog; import com.android.settingslib.drawer.ProfileSelectDialog; Loading @@ -49,18 +52,20 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { protected final Context mContext; protected final Context mContext; private final MetricsFeatureProvider mMetricsFeatureProvider; private final CategoryManager mCategoryManager; private final CategoryManager mCategoryManager; public DashboardFeatureProviderImpl(Context context) { public DashboardFeatureProviderImpl(Context context) { mContext = context.getApplicationContext(); mContext = context.getApplicationContext(); mCategoryManager = CategoryManager.get(context, getExtraIntentAction()); mCategoryManager = CategoryManager.get(context, getExtraIntentAction()); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } } @VisibleForTesting @VisibleForTesting DashboardFeatureProviderImpl(Context context, CategoryManager categoryManager) { DashboardFeatureProviderImpl(Context context, CategoryManager categoryManager) { mContext = context.getApplicationContext(); mContext = context.getApplicationContext(); mCategoryManager = categoryManager; mCategoryManager = categoryManager; mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } } @Override @Override Loading Loading @@ -205,11 +210,26 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { private void launchIntentOrSelectProfile(Activity activity, Tile tile, Intent intent) { private void launchIntentOrSelectProfile(Activity activity, Tile tile, Intent intent) { ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile); ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile); if (tile.userHandle == null) { if (tile.userHandle == null) { logStartActivity(intent); activity.startActivityForResult(intent, 0); activity.startActivityForResult(intent, 0); } else if (tile.userHandle.size() == 1) { } else if (tile.userHandle.size() == 1) { logStartActivity(intent); activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0)); activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0)); } else { } else { ProfileSelectDialog.show(activity.getFragmentManager(), tile); ProfileSelectDialog.show(activity.getFragmentManager(), tile); } } } } private void logStartActivity(Intent intent) { if (intent == null) { return; } final ComponentName cn = intent.getComponent(); if (cn == null) { return; } mMetricsFeatureProvider.action(mContext, MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK, cn.flattenToString()); } } } tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +9 −1 Original line number Original line Diff line number Diff line Loading @@ -27,9 +27,11 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.UserManager; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.TestConfig; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory; Loading Loading @@ -68,12 +70,15 @@ public class DashboardFeatureProviderImplTest { private UserManager mUserManager; private UserManager mUserManager; @Mock @Mock private CategoryManager mCategoryManager; private CategoryManager mCategoryManager; private FakeFeatureFactory mFeatureFactory; private DashboardFeatureProviderImpl mImpl; private DashboardFeatureProviderImpl mImpl; @Before @Before public void setUp() { public void setUp() { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); FakeFeatureFactory.setupForTest(mActivity); mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mActivity); mImpl = new DashboardFeatureProviderImpl(mActivity); mImpl = new DashboardFeatureProviderImpl(mActivity); } } Loading Loading @@ -157,7 +162,10 @@ public class DashboardFeatureProviderImplTest { mImpl.bindPreferenceToTile(mActivity, preference, tile, "123", Preference.DEFAULT_ORDER); mImpl.bindPreferenceToTile(mActivity, preference, tile, "123", Preference.DEFAULT_ORDER); preference.getOnPreferenceClickListener().onPreferenceClick(null); preference.getOnPreferenceClickListener().onPreferenceClick(null); verify(mFeatureFactory.metricsFeatureProvider).action( any(Context.class), eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK), eq(tile.intent.getComponent().flattenToString())); verify(mActivity) verify(mActivity) .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); } } Loading Loading
src/com/android/settings/CreateShortcut.java +14 −2 Original line number Original line Diff line number Diff line Loading @@ -39,7 +39,9 @@ import android.view.View.MeasureSpec; import android.widget.ImageView; import android.widget.ImageView; import android.widget.ListView; import android.widget.ListView; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.Settings.TetherSettingsActivity; import com.android.settings.Settings.TetherSettingsActivity; import com.android.settings.overlay.FeatureFactory; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; import java.util.List; Loading @@ -56,7 +58,8 @@ public class CreateShortcut extends LauncherActivity { @Override @Override protected void onListItemClick(ListView l, View v, int position, long id) { protected void onListItemClick(ListView l, View v, int position, long id) { ListItem item = itemForPosition(position); final ListItem item = itemForPosition(position); logCreateShortcut(item.resolveInfo); setResult(RESULT_OK, createResultIntent(intentForPosition(position), setResult(RESULT_OK, createResultIntent(intentForPosition(position), item.resolveInfo, item.label)); item.resolveInfo, item.label)); finish(); finish(); Loading Loading @@ -89,6 +92,15 @@ public class CreateShortcut extends LauncherActivity { return intent; return intent; } } private void logCreateShortcut(ResolveInfo info) { if (info == null || info.activityInfo == null) { return; } FeatureFactory.getFactory(this).getMetricsFeatureProvider().action( this, MetricsProto.MetricsEvent.ACTION_SETTINGS_CREATE_SHORTCUT, info.activityInfo.name); } private Bitmap createIcon(int resource) { private Bitmap createIcon(int resource) { Context context = new ContextThemeWrapper(this, android.R.style.Theme_Material); Context context = new ContextThemeWrapper(this, android.R.style.Theme_Material); View view = LayoutInflater.from(context).inflate(R.layout.shortcut_badge, null); View view = LayoutInflater.from(context).inflate(R.layout.shortcut_badge, null); Loading
src/com/android/settings/SettingsActivity.java +0 −1 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,6 @@ import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.SettingsDrawerActivity; import com.android.settingslib.drawer.SettingsDrawerActivity; import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; import java.util.List; import java.util.Set; import java.util.Set; Loading
src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +21 −1 Original line number Original line Diff line number Diff line Loading @@ -27,7 +27,10 @@ import android.support.v7.preference.Preference; import android.text.TextUtils; import android.text.TextUtils; import android.util.Log; import android.util.Log; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity; import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.ProfileSelectDialog; import com.android.settingslib.drawer.ProfileSelectDialog; Loading @@ -49,18 +52,20 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { protected final Context mContext; protected final Context mContext; private final MetricsFeatureProvider mMetricsFeatureProvider; private final CategoryManager mCategoryManager; private final CategoryManager mCategoryManager; public DashboardFeatureProviderImpl(Context context) { public DashboardFeatureProviderImpl(Context context) { mContext = context.getApplicationContext(); mContext = context.getApplicationContext(); mCategoryManager = CategoryManager.get(context, getExtraIntentAction()); mCategoryManager = CategoryManager.get(context, getExtraIntentAction()); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } } @VisibleForTesting @VisibleForTesting DashboardFeatureProviderImpl(Context context, CategoryManager categoryManager) { DashboardFeatureProviderImpl(Context context, CategoryManager categoryManager) { mContext = context.getApplicationContext(); mContext = context.getApplicationContext(); mCategoryManager = categoryManager; mCategoryManager = categoryManager; mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } } @Override @Override Loading Loading @@ -205,11 +210,26 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { private void launchIntentOrSelectProfile(Activity activity, Tile tile, Intent intent) { private void launchIntentOrSelectProfile(Activity activity, Tile tile, Intent intent) { ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile); ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile); if (tile.userHandle == null) { if (tile.userHandle == null) { logStartActivity(intent); activity.startActivityForResult(intent, 0); activity.startActivityForResult(intent, 0); } else if (tile.userHandle.size() == 1) { } else if (tile.userHandle.size() == 1) { logStartActivity(intent); activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0)); activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0)); } else { } else { ProfileSelectDialog.show(activity.getFragmentManager(), tile); ProfileSelectDialog.show(activity.getFragmentManager(), tile); } } } } private void logStartActivity(Intent intent) { if (intent == null) { return; } final ComponentName cn = intent.getComponent(); if (cn == null) { return; } mMetricsFeatureProvider.action(mContext, MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK, cn.flattenToString()); } } }
tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +9 −1 Original line number Original line Diff line number Diff line Loading @@ -27,9 +27,11 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.UserManager; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.TestConfig; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory; Loading Loading @@ -68,12 +70,15 @@ public class DashboardFeatureProviderImplTest { private UserManager mUserManager; private UserManager mUserManager; @Mock @Mock private CategoryManager mCategoryManager; private CategoryManager mCategoryManager; private FakeFeatureFactory mFeatureFactory; private DashboardFeatureProviderImpl mImpl; private DashboardFeatureProviderImpl mImpl; @Before @Before public void setUp() { public void setUp() { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); FakeFeatureFactory.setupForTest(mActivity); mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mActivity); mImpl = new DashboardFeatureProviderImpl(mActivity); mImpl = new DashboardFeatureProviderImpl(mActivity); } } Loading Loading @@ -157,7 +162,10 @@ public class DashboardFeatureProviderImplTest { mImpl.bindPreferenceToTile(mActivity, preference, tile, "123", Preference.DEFAULT_ORDER); mImpl.bindPreferenceToTile(mActivity, preference, tile, "123", Preference.DEFAULT_ORDER); preference.getOnPreferenceClickListener().onPreferenceClick(null); preference.getOnPreferenceClickListener().onPreferenceClick(null); verify(mFeatureFactory.metricsFeatureProvider).action( any(Context.class), eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK), eq(tile.intent.getComponent().flattenToString())); verify(mActivity) verify(mActivity) .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class)); } } Loading