summaryrefslogtreecommitdiff
path: root/telephony/common
diff options
context:
space:
mode:
authorGrace Jia <xiaotonj@google.com>2020-01-07 14:25:24 -0800
committerGrace Jia <xiaotonj@google.com>2020-01-17 15:51:04 -0800
commit15b4c2602404cb444bc9ef29dd6de34ea15aef5e (patch)
treefeccf33f7b15a820cf5cac2b18fdd3c8abd546e6 /telephony/common
parentf8e29c1d60dd17b7055a03b7d78c90af9568c487 (diff)
Fix hidden API usages in LocationAccessPolicy and add API in ActivityManager
Bug: 146355892 Test: Cts test, atest TeleServiceTests Change-Id: I91bf8a05383f29feaa26b03d6a03ed7de2d79061
Diffstat (limited to 'telephony/common')
-rw-r--r--telephony/common/android/telephony/LocationAccessPolicy.java25
1 files changed, 9 insertions, 16 deletions
diff --git a/telephony/common/android/telephony/LocationAccessPolicy.java b/telephony/common/android/telephony/LocationAccessPolicy.java
index f39981fdf25d..f3e9de0d2688 100644
--- a/telephony/common/android/telephony/LocationAccessPolicy.java
+++ b/telephony/common/android/telephony/LocationAccessPolicy.java
@@ -24,20 +24,16 @@ import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.content.Context;
import android.content.pm.PackageManager;
-import android.content.pm.UserInfo;
import android.location.LocationManager;
import android.os.Binder;
import android.os.Build;
import android.os.Process;
import android.os.UserHandle;
-import android.os.UserManager;
import android.util.Log;
import android.widget.Toast;
import com.android.internal.telephony.util.TelephonyUtils;
-import java.util.List;
-
/**
* Helper for performing location access checks.
* @hide
@@ -309,7 +305,7 @@ public final class LocationAccessPolicy {
}
private static boolean checkSystemLocationAccess(@NonNull Context context, int uid, int pid) {
- if (!isLocationModeEnabled(context, UserHandle.getUserId(uid))) {
+ if (!isLocationModeEnabled(context, UserHandle.getUserHandleForUid(uid).getIdentifier())) {
if (DBG) Log.w(TAG, "Location disabled, failed, (" + uid + ")");
return false;
}
@@ -336,20 +332,17 @@ public final class LocationAccessPolicy {
private static boolean isCurrentProfile(@NonNull Context context, int uid) {
long token = Binder.clearCallingIdentity();
try {
- final int currentUser = ActivityManager.getCurrentUser();
- final int callingUserId = UserHandle.getUserId(uid);
- if (callingUserId == currentUser) {
+ if (UserHandle.getUserHandleForUid(uid).getIdentifier()
+ == ActivityManager.getCurrentUser()) {
return true;
+ }
+ ActivityManager activityManager = context.getSystemService(ActivityManager.class);
+ if (activityManager != null) {
+ return activityManager.isProfileForeground(
+ UserHandle.getUserHandleForUid(ActivityManager.getCurrentUser()));
} else {
- List<UserInfo> userProfiles = context.getSystemService(
- UserManager.class).getProfiles(currentUser);
- for (UserInfo user : userProfiles) {
- if (user.id == callingUserId) {
- return true;
- }
- }
+ return false;
}
- return false;
} finally {
Binder.restoreCallingIdentity(token);
}