diff options
author | 2025-02-24 11:30:48 -0800 | |
---|---|---|
committer | 2025-02-24 11:30:48 -0800 | |
commit | 8c1232f1f2382d6ecc5468ae53ff265fffc2467a (patch) | |
tree | e096b9a1006683382d354692e7061818ff64fa11 | |
parent | 5e1d862826e558c00679835b462cf2b7f4b421d6 (diff) | |
parent | 88a45da5278d0f8976e49994eee9ccab82524851 (diff) |
Merge "Log a metric when user change the role holder in settings" into main
2 files changed, 25 insertions, 23 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppChildFragment.java b/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppChildFragment.java index a396c190a..814a312c6 100644 --- a/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppChildFragment.java +++ b/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppChildFragment.java @@ -16,6 +16,8 @@ package com.android.permissioncontroller.role.ui; +import static com.android.permissioncontroller.PermissionControllerStatsLog.ROLE_SETTINGS_FRAGMENT_ACTION_REPORTED; + import android.app.Activity; import android.app.role.RoleManager; import android.content.Context; @@ -41,6 +43,7 @@ import androidx.preference.TwoStatePreference; import com.android.modules.utils.build.SdkLevel; import com.android.permission.flags.Flags; +import com.android.permissioncontroller.PermissionControllerStatsLog; import com.android.permissioncontroller.R; import com.android.permissioncontroller.permission.utils.Utils; import com.android.permissioncontroller.role.utils.PackageUtils; @@ -78,8 +81,8 @@ public class DefaultAppChildFragment<PF extends PreferenceFragmentCompat DefaultAppChildFragment.class.getName() + ".preference.OTHER_NFC_SERVICES"; private static final String PREFERENCE_EXTRA_PACKAGE_NAME = DefaultAppChildFragment.class.getName() + ".extra.PACKAGE_NAME"; - private static final String PREFERENCE_EXTRA_USER = DefaultAppChildFragment.class.getName() - + ".extra.USER"; + private static final String PREFERENCE_EXTRA_UID = DefaultAppChildFragment.class.getName() + + ".extra.UID"; @NonNull private String mRoleName; @@ -309,7 +312,7 @@ public class DefaultAppChildFragment<PF extends PreferenceFragmentCompat context, applicationInfo.packageName, user.getIdentifier())); Bundle extras = preference.getExtras(); extras.putString(PREFERENCE_EXTRA_PACKAGE_NAME, applicationInfo.packageName); - extras.putParcelable(PREFERENCE_EXTRA_USER, user); + extras.putInt(PREFERENCE_EXTRA_UID, applicationInfo.uid); } } else { preference = roleApplicationPreference.asTwoStatePreference(); @@ -352,24 +355,25 @@ public class DefaultAppChildFragment<PF extends PreferenceFragmentCompat } else { String packageName = preference.getExtras().getString(PREFERENCE_EXTRA_PACKAGE_NAME); - UserHandle user = - preference.getExtras().getParcelable(PREFERENCE_EXTRA_USER); + int uid = preference.getExtras().getInt(PREFERENCE_EXTRA_UID); CharSequence confirmationMessage = RoleUiBehaviorUtils.getConfirmationMessage(mRole, packageName, requireContext()); if (confirmationMessage != null) { - DefaultAppConfirmationDialogFragment.show(packageName, user, confirmationMessage, + DefaultAppConfirmationDialogFragment.show(packageName, uid, confirmationMessage, this); } else { - setDefaultApp(packageName, user); + setDefaultApp(packageName, uid); } } return true; } @Override - public void setDefaultApp(@NonNull String packageName, @NonNull UserHandle user) { - mViewModel.setDefaultApp(packageName, user); + public void setDefaultApp(@NonNull String packageName, int uid) { + PermissionControllerStatsLog.write( + ROLE_SETTINGS_FRAGMENT_ACTION_REPORTED, uid, packageName, mRoleName); + mViewModel.setDefaultApp(packageName, UserHandle.getUserHandleForUid(uid)); } private void addNonPaymentNfcServicesPreference(@NonNull PreferenceScreen preferenceScreen, diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppConfirmationDialogFragment.java b/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppConfirmationDialogFragment.java index 5f399a0b8..9a9606291 100644 --- a/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppConfirmationDialogFragment.java +++ b/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppConfirmationDialogFragment.java @@ -20,11 +20,9 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.Intent; import android.os.Bundle; -import android.os.UserHandle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.os.BundleCompat; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; @@ -34,27 +32,27 @@ import androidx.fragment.app.Fragment; public class DefaultAppConfirmationDialogFragment extends DialogFragment { private String mPackageName; - private UserHandle mUser; + private int mUid; private CharSequence mMessage; /** * Create a new instance of this fragment. * * @param packageName the package name of the application - * @param user the user the specified package is running in + * @param uid the UID the specified package is running in * @param message the confirmation message * * @return a new instance of this fragment * - * @see #show(String, UserHandle, CharSequence, Fragment) + * @see #show(String, int, CharSequence, Fragment) */ @NonNull public static DefaultAppConfirmationDialogFragment newInstance(@NonNull String packageName, - @NonNull UserHandle user, @NonNull CharSequence message) { + int uid, @NonNull CharSequence message) { DefaultAppConfirmationDialogFragment fragment = new DefaultAppConfirmationDialogFragment(); Bundle arguments = new Bundle(); arguments.putString(Intent.EXTRA_PACKAGE_NAME, packageName); - arguments.putParcelable(Intent.EXTRA_USER, user); + arguments.putInt(Intent.EXTRA_UID, uid); arguments.putCharSequence(Intent.EXTRA_TEXT, message); fragment.setArguments(arguments); return fragment; @@ -64,15 +62,15 @@ public class DefaultAppConfirmationDialogFragment extends DialogFragment { * Show a new instance of this fragment. * * @param packageName the package name of the application - * @param user the user the specified package is running in + * @param uid the UID the specified package is running in * @param message the confirmation message * @param fragment the parent fragment * - * @see #newInstance(String, UserHandle, CharSequence) + * @see #newInstance(String, int, CharSequence) */ - public static void show(@NonNull String packageName, @NonNull UserHandle user, + public static void show(@NonNull String packageName, int uid, @NonNull CharSequence message, @NonNull Fragment fragment) { - newInstance(packageName, user, message).show(fragment.getChildFragmentManager(), null); + newInstance(packageName, uid, message).show(fragment.getChildFragmentManager(), null); } @Override @@ -81,7 +79,7 @@ public class DefaultAppConfirmationDialogFragment extends DialogFragment { Bundle arguments = getArguments(); mPackageName = arguments.getString(Intent.EXTRA_PACKAGE_NAME); - mUser = BundleCompat.getParcelable(arguments, Intent.EXTRA_USER, UserHandle.class); + mUid = arguments.getInt(Intent.EXTRA_UID); mMessage = arguments.getCharSequence(Intent.EXTRA_TEXT); } @@ -97,7 +95,7 @@ public class DefaultAppConfirmationDialogFragment extends DialogFragment { private void onOk() { Listener listener = (Listener) getParentFragment(); - listener.setDefaultApp(mPackageName, mUser); + listener.setDefaultApp(mPackageName, mUid); } /** @@ -110,6 +108,6 @@ public class DefaultAppConfirmationDialogFragment extends DialogFragment { * * @param packageName the package name of the application */ - void setDefaultApp(@NonNull String packageName, @NonNull UserHandle user); + void setDefaultApp(@NonNull String packageName, int uid); } } |