Merge "Add logging for settings"
This commit is contained in:
committed by
Android (Google) Code Review
commit
cd79e3a785
@@ -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);
|
||||||
|
@@ -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;
|
||||||
|
@@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user