Support click metrics logs in several pages

- Assign metrics category to perferences at an earlier stage in
  DashboardFragment for better usability.

Bug: 137559984
Test: robotest
Change-Id: Icd4185efa0e655be20c4b673a1380fa42140923f
This commit is contained in:
Jason Chiu
2020-04-07 16:30:18 +08:00
parent 4edb83b260
commit b12e3b96c9
13 changed files with 74 additions and 31 deletions

View File

@@ -17,11 +17,14 @@
package com.android.settings.location;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import androidx.preference.Preference;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.RestrictedAppPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.location.InjectedSetting;
import com.android.settingslib.location.SettingsInjector;
import com.android.settingslib.widget.apppreference.AppPreference;
@@ -31,8 +34,13 @@ import com.android.settingslib.widget.apppreference.AppPreference;
*/
public class AppSettingsInjector extends SettingsInjector {
public AppSettingsInjector(Context context) {
private final MetricsFeatureProvider mMetricsFeatureProvider;
private final int mMetricsCategory;
public AppSettingsInjector(Context context, int metricsCategory) {
super(context);
mMetricsCategory = metricsCategory;
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
@Override
@@ -41,4 +49,9 @@ public class AppSettingsInjector extends SettingsInjector {
? new AppPreference(prefContext)
: new RestrictedAppPreference(prefContext, setting.userRestriction);
}
@Override
protected void logPreferenceClick(Intent intent) {
mMetricsFeatureProvider.logStartedIntent(intent, mMetricsCategory);
}
}

View File

@@ -58,7 +58,7 @@ public class LocationServicePreferenceController extends LocationBasePreferenceC
@Override
public void init(DashboardFragment fragment) {
super.init(fragment);
mInjector = new AppSettingsInjector(mContext);
mInjector = new AppSettingsInjector(mContext, getMetricsCategory());
}
@Override