Merge "Add Context.createContextAsUser()"
This commit is contained in:
@@ -1366,8 +1366,9 @@ package android.content {
|
|||||||
|
|
||||||
public abstract class Context {
|
public abstract class Context {
|
||||||
method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public boolean bindServiceAsUser(@RequiresPermission android.content.Intent, android.content.ServiceConnection, int, android.os.UserHandle);
|
method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public boolean bindServiceAsUser(@RequiresPermission android.content.Intent, android.content.ServiceConnection, int, android.os.UserHandle);
|
||||||
|
method @NonNull public android.content.Context createContextAsUser(@NonNull android.os.UserHandle);
|
||||||
method public abstract android.content.Context createCredentialProtectedStorageContext();
|
method public abstract android.content.Context createCredentialProtectedStorageContext();
|
||||||
method public android.content.Context createPackageContextAsUser(String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
|
method @NonNull public android.content.Context createPackageContextAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
|
||||||
method @Nullable public abstract java.io.File getPreloadsFileCache();
|
method @Nullable public abstract java.io.File getPreloadsFileCache();
|
||||||
method public abstract boolean isCredentialProtectedStorage();
|
method public abstract boolean isCredentialProtectedStorage();
|
||||||
method public abstract void sendBroadcast(android.content.Intent, @Nullable String, @Nullable android.os.Bundle);
|
method public abstract void sendBroadcast(android.content.Intent, @Nullable String, @Nullable android.os.Bundle);
|
||||||
|
|||||||
@@ -640,7 +640,8 @@ package android.content {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public abstract class Context {
|
public abstract class Context {
|
||||||
method public android.content.Context createPackageContextAsUser(String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
|
method @NonNull public android.content.Context createContextAsUser(@NonNull android.os.UserHandle);
|
||||||
|
method @NonNull public android.content.Context createPackageContextAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
|
||||||
method public abstract android.view.Display getDisplay();
|
method public abstract android.view.Display getDisplay();
|
||||||
method public abstract int getDisplayId();
|
method public abstract int getDisplayId();
|
||||||
method public android.os.UserHandle getUser();
|
method public android.os.UserHandle getUser();
|
||||||
|
|||||||
@@ -2223,6 +2223,15 @@ class ContextImpl extends Context {
|
|||||||
"Application package " + packageName + " not found");
|
"Application package " + packageName + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Context createContextAsUser(UserHandle user) {
|
||||||
|
try {
|
||||||
|
return createPackageContextAsUser(getPackageName(), mFlags, user);
|
||||||
|
} catch (NameNotFoundException e) {
|
||||||
|
throw new IllegalStateException("Own package not found: package=" + getPackageName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Context createContextForSplit(String splitName) throws NameNotFoundException {
|
public Context createContextForSplit(String splitName) throws NameNotFoundException {
|
||||||
if (!mPackageInfo.getApplicationInfo().requestsIsolatedSplitLoading()) {
|
if (!mPackageInfo.getApplicationInfo().requestsIsolatedSplitLoading()) {
|
||||||
|
|||||||
@@ -5256,8 +5256,9 @@ public abstract class Context {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@TestApi
|
@TestApi
|
||||||
|
@NonNull
|
||||||
public Context createPackageContextAsUser(
|
public Context createPackageContextAsUser(
|
||||||
String packageName, @CreatePackageOptions int flags, UserHandle user)
|
@NonNull String packageName, @CreatePackageOptions int flags, @NonNull UserHandle user)
|
||||||
throws PackageManager.NameNotFoundException {
|
throws PackageManager.NameNotFoundException {
|
||||||
if (Build.IS_ENG) {
|
if (Build.IS_ENG) {
|
||||||
throw new IllegalStateException("createPackageContextAsUser not overridden!");
|
throw new IllegalStateException("createPackageContextAsUser not overridden!");
|
||||||
@@ -5265,6 +5266,23 @@ public abstract class Context {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Similar to {@link #createPackageContext(String, int)}, but for the own package with a
|
||||||
|
* different {@link UserHandle}. For example, {@link #getContentResolver()}
|
||||||
|
* will open any {@link Uri} as the given user.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SystemApi
|
||||||
|
@TestApi
|
||||||
|
@NonNull
|
||||||
|
public Context createContextAsUser(@NonNull UserHandle user) {
|
||||||
|
if (Build.IS_ENG) {
|
||||||
|
throw new IllegalStateException("createContextAsUser not overridden!");
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a context given an {@link android.content.pm.ApplicationInfo}.
|
* Creates a context given an {@link android.content.pm.ApplicationInfo}.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -896,6 +896,12 @@ public class ContextWrapper extends Context {
|
|||||||
return mBase.createPackageContextAsUser(packageName, flags, user);
|
return mBase.createPackageContextAsUser(packageName, flags, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
@Override
|
||||||
|
public Context createContextAsUser(UserHandle user) {
|
||||||
|
return mBase.createContextAsUser(user);
|
||||||
|
}
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@Override
|
@Override
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
|
|||||||
@@ -763,6 +763,12 @@ public class MockContext extends Context {
|
|||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** {@hide} */
|
||||||
|
@Override
|
||||||
|
public Context createContextAsUser(UserHandle user) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
/** {@hide} */
|
/** {@hide} */
|
||||||
@Override
|
@Override
|
||||||
public int getUserId() {
|
public int getUserId() {
|
||||||
|
|||||||
Reference in New Issue
Block a user