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

Commit b12e3b96 authored by Jason Chiu's avatar Jason Chiu
Browse files

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
parent 4edb83b2
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -20,9 +20,6 @@ import android.content.Context;
import android.os.UserHandle;
import android.provider.Settings;

import androidx.preference.Preference;
import androidx.preference.SwitchPreference;

import com.android.settings.core.TogglePreferenceController;

/** Controller that shows the magnification enable mode summary. */
+1 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ public class MagnificationGesturesPreferenceController extends TogglePreferenceC
            populateMagnificationGesturesPreferenceExtras(extras, mContext);
            extras.putBoolean(AccessibilitySettings.EXTRA_CHECKED, isChecked());
            extras.putBoolean(AccessibilitySettings.EXTRA_LAUNCHED_FROM_SUW, mIsFromSUW);
            return true;
        }
        return false;
    }
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ public class MagnificationNavbarPreferenceController extends TogglePreferenceCon
                    mContext.getText(R.string.accessibility_screen_magnification_navbar_summary));
            extras.putBoolean(AccessibilitySettings.EXTRA_CHECKED, isChecked());
            extras.putBoolean(AccessibilitySettings.EXTRA_LAUNCHED_FROM_SUW, mIsFromSUW);
            return true;
        }
        return false;
    }
+7 −1
Original line number Diff line number Diff line
@@ -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);
+9 −2
Original line number Diff line number Diff line
@@ -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());
Loading