Merge "Add userId to the package name API."
am: dcc401b7b7
Change-Id: Ib1b52a3f1082ce6f6d6087080e3e1bc5677f5026
This commit is contained in:
@@ -49,9 +49,10 @@ interface IPlatformCompat
|
|||||||
* you do not need to call this API directly. The change will be reported for you.
|
* you do not need to call this API directly. The change will be reported for you.
|
||||||
*
|
*
|
||||||
* @param changeId The ID of the compatibility change taking effect.
|
* @param changeId The ID of the compatibility change taking effect.
|
||||||
|
* @param userId The ID of the user that the operation is done for.
|
||||||
* @param packageName The package name of the app in question.
|
* @param packageName The package name of the app in question.
|
||||||
*/
|
*/
|
||||||
void reportChangeByPackageName(long changeId, in String packageName);
|
void reportChangeByPackageName(long changeId, in String packageName, int userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reports that a compatibility change is affecting an app process now.
|
* Reports that a compatibility change is affecting an app process now.
|
||||||
@@ -86,7 +87,7 @@ interface IPlatformCompat
|
|||||||
* be called when implementing functionality on behalf of the affected app.
|
* be called when implementing functionality on behalf of the affected app.
|
||||||
*
|
*
|
||||||
* <p>Same as {@link #isChangeEnabled(long, ApplicationInfo)}, except it receives a package name
|
* <p>Same as {@link #isChangeEnabled(long, ApplicationInfo)}, except it receives a package name
|
||||||
* instead of an {@link ApplicationInfo}
|
* and userId instead of an {@link ApplicationInfo}
|
||||||
* object, and finds an app info object based on the package name. Returns {@code true} if
|
* object, and finds an app info object based on the package name. Returns {@code true} if
|
||||||
* there is no installed package by that name.
|
* there is no installed package by that name.
|
||||||
*
|
*
|
||||||
@@ -100,9 +101,10 @@ interface IPlatformCompat
|
|||||||
*
|
*
|
||||||
* @param changeId The ID of the compatibility change in question.
|
* @param changeId The ID of the compatibility change in question.
|
||||||
* @param packageName The package name of the app in question.
|
* @param packageName The package name of the app in question.
|
||||||
|
* @param userId The ID of the user that the operation is done for.
|
||||||
* @return {@code true} if the change is enabled for the current app.
|
* @return {@code true} if the change is enabled for the current app.
|
||||||
*/
|
*/
|
||||||
boolean isChangeEnabledByPackageName(long changeId, in String packageName);
|
boolean isChangeEnabledByPackageName(long changeId, in String packageName, int userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Query if a given compatibility change is enabled for an app process. This method should
|
* Query if a given compatibility change is enabled for an app process. This method should
|
||||||
|
|||||||
@@ -33,9 +33,10 @@ interface IPlatformCompatNative
|
|||||||
* you do not need to call this API directly. The change will be reported for you.
|
* you do not need to call this API directly. The change will be reported for you.
|
||||||
*
|
*
|
||||||
* @param changeId The ID of the compatibility change taking effect.
|
* @param changeId The ID of the compatibility change taking effect.
|
||||||
|
* @param userId The ID of the user that the operation is done for.
|
||||||
* @param packageName The package name of the app in question.
|
* @param packageName The package name of the app in question.
|
||||||
*/
|
*/
|
||||||
void reportChangeByPackageName(long changeId, @utf8InCpp String packageName);
|
void reportChangeByPackageName(long changeId, @utf8InCpp String packageName, int userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reports that a compatibility change is affecting an app process now.
|
* Reports that a compatibility change is affecting an app process now.
|
||||||
@@ -64,9 +65,10 @@ interface IPlatformCompatNative
|
|||||||
*
|
*
|
||||||
* @param changeId The ID of the compatibility change in question.
|
* @param changeId The ID of the compatibility change in question.
|
||||||
* @param packageName The package name of the app in question.
|
* @param packageName The package name of the app in question.
|
||||||
|
* @param userId The ID of the user that the operation is done for.
|
||||||
* @return {@code true} if the change is enabled for the current app.
|
* @return {@code true} if the change is enabled for the current app.
|
||||||
*/
|
*/
|
||||||
boolean isChangeEnabledByPackageName(long changeId, @utf8InCpp String packageName);
|
boolean isChangeEnabledByPackageName(long changeId, @utf8InCpp String packageName, int userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Query if a given compatibility change is enabled for an app process. This method should
|
* Query if a given compatibility change is enabled for an app process. This method should
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ package com.android.server.compat;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Process;
|
import android.os.UserHandle;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.util.StatsLog;
|
import android.util.StatsLog;
|
||||||
|
|
||||||
@@ -54,8 +54,8 @@ public class PlatformCompat extends IPlatformCompat.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reportChangeByPackageName(long changeId, String packageName) {
|
public void reportChangeByPackageName(long changeId, String packageName, int userId) {
|
||||||
ApplicationInfo appInfo = getApplicationInfo(packageName);
|
ApplicationInfo appInfo = getApplicationInfo(packageName, userId);
|
||||||
if (appInfo == null) {
|
if (appInfo == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -80,8 +80,8 @@ public class PlatformCompat extends IPlatformCompat.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isChangeEnabledByPackageName(long changeId, String packageName) {
|
public boolean isChangeEnabledByPackageName(long changeId, String packageName, int userId) {
|
||||||
ApplicationInfo appInfo = getApplicationInfo(packageName);
|
ApplicationInfo appInfo = getApplicationInfo(packageName, userId);
|
||||||
if (appInfo == null) {
|
if (appInfo == null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -96,7 +96,8 @@ public class PlatformCompat extends IPlatformCompat.Stub {
|
|||||||
}
|
}
|
||||||
boolean enabled = true;
|
boolean enabled = true;
|
||||||
for (String packageName : packages) {
|
for (String packageName : packages) {
|
||||||
enabled = enabled && isChangeEnabledByPackageName(changeId, packageName);
|
enabled = enabled && isChangeEnabledByPackageName(changeId, packageName,
|
||||||
|
UserHandle.getUserId(uid));
|
||||||
}
|
}
|
||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
@@ -127,10 +128,9 @@ public class PlatformCompat extends IPlatformCompat.Stub {
|
|||||||
mChangeReporter.resetReportedChanges(appInfo.uid);
|
mChangeReporter.resetReportedChanges(appInfo.uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ApplicationInfo getApplicationInfo(String packageName) {
|
private ApplicationInfo getApplicationInfo(String packageName, int userId) {
|
||||||
try {
|
try {
|
||||||
return mContext.getPackageManager().getApplicationInfoAsUser(packageName, 0,
|
return mContext.getPackageManager().getApplicationInfoAsUser(packageName, 0, userId);
|
||||||
Process.myUid());
|
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
Slog.e(TAG, "No installed package " + packageName);
|
Slog.e(TAG, "No installed package " + packageName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ public class PlatformCompatNative extends IPlatformCompatNative.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reportChangeByPackageName(long changeId, String packageName) {
|
public void reportChangeByPackageName(long changeId, String packageName, int userId) {
|
||||||
mPlatformCompat.reportChangeByPackageName(changeId, packageName);
|
mPlatformCompat.reportChangeByPackageName(changeId, packageName, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -39,8 +39,8 @@ public class PlatformCompatNative extends IPlatformCompatNative.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isChangeEnabledByPackageName(long changeId, String packageName) {
|
public boolean isChangeEnabledByPackageName(long changeId, String packageName, int userId) {
|
||||||
return mPlatformCompat.isChangeEnabledByPackageName(changeId, packageName);
|
return mPlatformCompat.isChangeEnabledByPackageName(changeId, packageName, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user