summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Manjeet Rulhania <mrulhania@google.com> 2025-02-24 11:30:48 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-02-24 11:30:48 -0800
commit8c1232f1f2382d6ecc5468ae53ff265fffc2467a (patch)
treee096b9a1006683382d354692e7061818ff64fa11
parent5e1d862826e558c00679835b462cf2b7f4b421d6 (diff)
parent88a45da5278d0f8976e49994eee9ccab82524851 (diff)
Merge "Log a metric when user change the role holder in settings" into main
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppChildFragment.java22
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppConfirmationDialogFragment.java26
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);
}
}