From cbac7c8fbd12c54a896953237d313dafdf427ee2 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Mon, 18 Oct 2021 16:52:04 +0500 Subject: [PATCH] Changed: Get user handle for package instead of process user handle when getting profile user serial number --- .../java/com/termux/shared/packages/PackageUtils.java | 11 ++++++----- .../java/com/termux/shared/termux/AndroidUtils.java | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/termux-shared/src/main/java/com/termux/shared/packages/PackageUtils.java b/termux-shared/src/main/java/com/termux/shared/packages/PackageUtils.java index 121fc0a0..cdba0fd9 100644 --- a/termux-shared/src/main/java/com/termux/shared/packages/PackageUtils.java +++ b/termux-shared/src/main/java/com/termux/shared/packages/PackageUtils.java @@ -8,6 +8,7 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.os.UserHandle; import android.os.UserManager; import androidx.annotation.NonNull; @@ -409,16 +410,16 @@ public class PackageUtils { /** - * Get the serial number for the current user. + * Get the serial number for the user for the package associated with the {@code context}. * - * @param context The {@link Context} for operations. + * @param context The {@link Context} for the package. * @return Returns the serial number. This will be {@code null} if failed to get it. */ @Nullable - public static Long getSerialNumberForCurrentUser(@NonNull Context context) { + public static Long getUserIdForPackage(@NonNull Context context) { UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE); if (userManager == null) return null; - return userManager.getSerialNumberForUser(android.os.Process.myUserHandle()); + return userManager.getSerialNumberForUser(UserHandle.getUserHandleForUid(getUidForPackage(context))); } /** @@ -429,7 +430,7 @@ public class PackageUtils { * @return Returns {@code true} if the current user is the primary user, otherwise [@code false}. */ public static boolean isCurrentUserThePrimaryUser(@NonNull Context context) { - Long userId = getSerialNumberForCurrentUser(context); + Long userId = getUserIdForPackage(context); return userId != null && userId == 0; } diff --git a/termux-shared/src/main/java/com/termux/shared/termux/AndroidUtils.java b/termux-shared/src/main/java/com/termux/shared/termux/AndroidUtils.java index b248fa4d..4a5dd59d 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/AndroidUtils.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/AndroidUtils.java @@ -49,7 +49,7 @@ public class AndroidUtils { !filesDir.equals("/data/data/" + context.getPackageName() + "/files")) AndroidUtils.appendPropertyToMarkdown(markdownString,"FILES_DIR", filesDir); - Long userId = PackageUtils.getSerialNumberForCurrentUser(context); + Long userId = PackageUtils.getUserIdForPackage(context); if (userId == null || userId != 0) AndroidUtils.appendPropertyToMarkdown(markdownString,"USER_ID", userId);