Merge "Add logging for settings"

This commit is contained in:
TreeHugger Robot
2017-02-14 03:01:29 +00:00
committed by Android (Google) Code Review
4 changed files with 44 additions and 5 deletions

View File

@@ -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;
@@ -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();
@@ -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);
@@ -165,7 +177,7 @@ public class CreateShortcut extends LauncherActivity {
continue; continue;
} }
updates.add(new ShortcutInfo.Builder(mContext, info.getId()) updates.add(new ShortcutInfo.Builder(mContext, info.getId())
.setShortLabel(ri.loadLabel(pm)).build()); .setShortLabel(ri.loadLabel(pm)).build());
} }
if (!updates.isEmpty()) { if (!updates.isEmpty()) {
sm.updateShortcuts(updates); sm.updateShortcuts(updates);

View File

@@ -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;

View File

@@ -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;
@@ -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
@@ -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());
}
} }

View File

@@ -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;
@@ -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);
} }
@@ -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));
} }