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:
@@ -80,6 +80,7 @@ public class AccountPreferenceController extends AbstractPreferenceController
|
||||
private static final int ORDER_NEXT_TO_LAST = 1001;
|
||||
private static final int ORDER_NEXT_TO_NEXT_TO_LAST = 1000;
|
||||
|
||||
private static final String PREF_KEY_ADD_ACCOUNT = "add_account";
|
||||
private static final String PREF_KEY_REMOVE_PROFILE = "remove_profile";
|
||||
private static final String PREF_KEY_WORK_PROFILE_SETTING = "work_profile_setting";
|
||||
|
||||
@@ -225,11 +226,13 @@ public class AccountPreferenceController extends AbstractPreferenceController
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
final int metricsCategory = mFragment.getMetricsCategory();
|
||||
// Check the preference
|
||||
final int count = mProfiles.size();
|
||||
for (int i = 0; i < count; i++) {
|
||||
ProfileData profileData = mProfiles.valueAt(i);
|
||||
if (preference == profileData.addAccountPreference) {
|
||||
mMetricsFeatureProvider.logClickedPreference(preference, metricsCategory);
|
||||
Intent intent = new Intent(ACTION_ADD_ACCOUNT);
|
||||
intent.putExtra(EXTRA_USER, profileData.userInfo.getUserHandle());
|
||||
intent.putExtra(EXTRA_AUTHORITIES, mAuthorities);
|
||||
@@ -237,16 +240,18 @@ public class AccountPreferenceController extends AbstractPreferenceController
|
||||
return true;
|
||||
}
|
||||
if (preference == profileData.removeWorkProfilePreference) {
|
||||
mMetricsFeatureProvider.logClickedPreference(preference, metricsCategory);
|
||||
final int userId = profileData.userInfo.id;
|
||||
RemoveUserFragment.newInstance(userId).show(mFragment.getFragmentManager(),
|
||||
"removeUser");
|
||||
return true;
|
||||
}
|
||||
if (preference == profileData.managedProfilePreference) {
|
||||
mMetricsFeatureProvider.logClickedPreference(preference, metricsCategory);
|
||||
Bundle arguments = new Bundle();
|
||||
arguments.putParcelable(Intent.EXTRA_USER, profileData.userInfo.getUserHandle());
|
||||
new SubSettingLauncher(mContext)
|
||||
.setSourceMetricsCategory(mFragment.getMetricsCategory())
|
||||
.setSourceMetricsCategory(metricsCategory)
|
||||
.setDestination(ManagedProfileSettings.class.getName())
|
||||
.setTitleRes(R.string.managed_profile_settings_title)
|
||||
.setArguments(arguments)
|
||||
@@ -360,6 +365,7 @@ public class AccountPreferenceController extends AbstractPreferenceController
|
||||
private RestrictedPreference newAddAccountPreference() {
|
||||
RestrictedPreference preference =
|
||||
new RestrictedPreference(mFragment.getPreferenceManager().getContext());
|
||||
preference.setKey(PREF_KEY_ADD_ACCOUNT);
|
||||
preference.setTitle(R.string.add_account_label);
|
||||
preference.setIcon(R.drawable.ic_add_24dp);
|
||||
preference.setOnPreferenceClickListener(this);
|
||||
|
@@ -40,10 +40,12 @@ import androidx.preference.PreferenceScreen;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.widget.LayoutPreference;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -53,20 +55,23 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl
|
||||
|
||||
private static final String KEY_REMOVE_ACCOUNT = "remove_account";
|
||||
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
private Account mAccount;
|
||||
private Fragment mParentFragment;
|
||||
private UserHandle mUserHandle;
|
||||
private LayoutPreference mRemoveAccountPreference;
|
||||
|
||||
public RemoveAccountPreferenceController(Context context, Fragment parent) {
|
||||
super(context);
|
||||
mParentFragment = parent;
|
||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
final LayoutPreference removeAccountPreference = screen.findPreference(KEY_REMOVE_ACCOUNT);
|
||||
Button removeAccountButton = (Button) removeAccountPreference.findViewById(R.id.button);
|
||||
mRemoveAccountPreference = screen.findPreference(KEY_REMOVE_ACCOUNT);
|
||||
final Button removeAccountButton = mRemoveAccountPreference.findViewById(R.id.button);
|
||||
removeAccountButton.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@@ -82,6 +87,8 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mMetricsFeatureProvider.logClickedPreference(mRemoveAccountPreference,
|
||||
mMetricsFeatureProvider.getMetricsCategory(mParentFragment));
|
||||
if (mUserHandle != null) {
|
||||
final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
|
||||
mContext, UserManager.DISALLOW_MODIFY_ACCOUNTS, mUserHandle.getIdentifier());
|
||||
|
Reference in New Issue
Block a user