Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd79e3a7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add logging for settings"

parents b88f73a0 42aaa53e
Loading
Loading
Loading
Loading
+14 −2
Original line number Original line Diff line number Diff line
@@ -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);
+0 −1
Original line number Original line Diff line number Diff line
@@ -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;
+21 −1
Original line number Original line Diff line number Diff line
@@ -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());
    }
}
}
+9 −1
Original line number Original line Diff line number Diff line
@@ -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));
    }
    }