Merge "Revert "Revert "Cherrypicking flags and override methods for all..."" am: 5c35d3bce6
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1845059 Change-Id: I90e8a4d567fe2de9ab765806fc7bd3aba4fe0845
This commit is contained in:
commit
c8c3e89dce
@ -10687,6 +10687,8 @@ package android.content {
|
|||||||
field public static final String PERFORMANCE_HINT_SERVICE = "performance_hint";
|
field public static final String PERFORMANCE_HINT_SERVICE = "performance_hint";
|
||||||
field public static final String POWER_SERVICE = "power";
|
field public static final String POWER_SERVICE = "power";
|
||||||
field public static final String PRINT_SERVICE = "print";
|
field public static final String PRINT_SERVICE = "print";
|
||||||
|
field public static final int RECEIVER_EXPORTED = 2; // 0x2
|
||||||
|
field public static final int RECEIVER_NOT_EXPORTED = 4; // 0x4
|
||||||
field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1
|
field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1
|
||||||
field public static final String RESTRICTIONS_SERVICE = "restrictions";
|
field public static final String RESTRICTIONS_SERVICE = "restrictions";
|
||||||
field public static final String ROLE_SERVICE = "role";
|
field public static final String ROLE_SERVICE = "role";
|
||||||
|
@ -2340,6 +2340,7 @@ package android.content {
|
|||||||
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 @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.content.Intent registerReceiverForAllUsers(@Nullable android.content.BroadcastReceiver, @NonNull android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler);
|
method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.content.Intent registerReceiverForAllUsers(@Nullable android.content.BroadcastReceiver, @NonNull android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler);
|
||||||
|
method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.content.Intent registerReceiverForAllUsers(@Nullable android.content.BroadcastReceiver, @NonNull android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler, int);
|
||||||
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);
|
||||||
method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public abstract void sendBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String, @Nullable android.os.Bundle);
|
method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public abstract void sendBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String, @Nullable android.os.Bundle);
|
||||||
method public abstract void sendOrderedBroadcast(@NonNull android.content.Intent, @Nullable String, @Nullable android.os.Bundle, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
|
method public abstract void sendOrderedBroadcast(@NonNull android.content.Intent, @Nullable String, @Nullable android.os.Bundle, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
|
||||||
|
@ -1738,6 +1738,13 @@ class ContextImpl extends Context {
|
|||||||
filter, broadcastPermission, scheduler);
|
filter, broadcastPermission, scheduler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Intent registerReceiverForAllUsers(BroadcastReceiver receiver,
|
||||||
|
IntentFilter filter, String broadcastPermission, Handler scheduler, int flags) {
|
||||||
|
return registerReceiverAsUser(receiver, UserHandle.ALL,
|
||||||
|
filter, broadcastPermission, scheduler, flags);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
|
public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
|
||||||
IntentFilter filter, String broadcastPermission, Handler scheduler) {
|
IntentFilter filter, String broadcastPermission, Handler scheduler) {
|
||||||
@ -1745,6 +1752,13 @@ class ContextImpl extends Context {
|
|||||||
filter, broadcastPermission, scheduler, getOuterContext(), 0);
|
filter, broadcastPermission, scheduler, getOuterContext(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
|
||||||
|
IntentFilter filter, String broadcastPermission, Handler scheduler, int flags) {
|
||||||
|
return registerReceiverInternal(receiver, user.getIdentifier(),
|
||||||
|
filter, broadcastPermission, scheduler, getOuterContext(), flags);
|
||||||
|
}
|
||||||
|
|
||||||
private Intent registerReceiverInternal(BroadcastReceiver receiver, int userId,
|
private Intent registerReceiverInternal(BroadcastReceiver receiver, int userId,
|
||||||
IntentFilter filter, String broadcastPermission,
|
IntentFilter filter, String broadcastPermission,
|
||||||
Handler scheduler, Context context, int flags) {
|
Handler scheduler, Context context, int flags) {
|
||||||
|
@ -534,8 +534,8 @@ public abstract class Context {
|
|||||||
| Context.BIND_NOT_PERCEPTIBLE | Context.BIND_NOT_VISIBLE;
|
| Context.BIND_NOT_PERCEPTIBLE | Context.BIND_NOT_VISIBLE;
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@IntDef(flag = true, prefix = { "RECEIVER_VISIBLE_" }, value = {
|
@IntDef(flag = true, prefix = { "RECEIVER_VISIBLE" }, value = {
|
||||||
RECEIVER_VISIBLE_TO_INSTANT_APPS
|
RECEIVER_VISIBLE_TO_INSTANT_APPS, RECEIVER_EXPORTED, RECEIVER_NOT_EXPORTED
|
||||||
})
|
})
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface RegisterReceiverFlags {}
|
public @interface RegisterReceiverFlags {}
|
||||||
@ -545,6 +545,18 @@ public abstract class Context {
|
|||||||
*/
|
*/
|
||||||
public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 0x1;
|
public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 0x1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flag for {@link #registerReceiver}: The receiver can receive broadcasts from other Apps.
|
||||||
|
* Has the same behavior as marking a statically registered receiver with "exported=true"
|
||||||
|
*/
|
||||||
|
public static final int RECEIVER_EXPORTED = 0x2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flag for {@link #registerReceiver}: The receiver cannot receive broadcasts from other Apps.
|
||||||
|
* Has the same behavior as marking a statically registered receiver with "exported=false"
|
||||||
|
*/
|
||||||
|
public static final int RECEIVER_NOT_EXPORTED = 0x4;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an AssetManager instance for the application's package.
|
* Returns an AssetManager instance for the application's package.
|
||||||
* <p>
|
* <p>
|
||||||
@ -2989,8 +3001,12 @@ public abstract class Context {
|
|||||||
*
|
*
|
||||||
* @param receiver The BroadcastReceiver to handle the broadcast.
|
* @param receiver The BroadcastReceiver to handle the broadcast.
|
||||||
* @param filter Selects the Intent broadcasts to be received.
|
* @param filter Selects the Intent broadcasts to be received.
|
||||||
* @param flags Additional options for the receiver. May be 0 or
|
* @param flags Additional options for the receiver. As of
|
||||||
* {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS}.
|
* {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or
|
||||||
|
* {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being registered
|
||||||
|
* for protected broadcasts, and may additionally specify
|
||||||
|
* {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS} if {@link #RECEIVER_EXPORTED} is
|
||||||
|
* specified.
|
||||||
*
|
*
|
||||||
* @return The first sticky intent found that matches <var>filter</var>,
|
* @return The first sticky intent found that matches <var>filter</var>,
|
||||||
* or null if there are none.
|
* or null if there are none.
|
||||||
@ -3062,8 +3078,12 @@ public abstract class Context {
|
|||||||
* no permission is required.
|
* no permission is required.
|
||||||
* @param scheduler Handler identifying the thread that will receive
|
* @param scheduler Handler identifying the thread that will receive
|
||||||
* the Intent. If null, the main thread of the process will be used.
|
* the Intent. If null, the main thread of the process will be used.
|
||||||
* @param flags Additional options for the receiver. May be 0 or
|
* @param flags Additional options for the receiver. As of
|
||||||
* {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS}.
|
* {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or
|
||||||
|
* {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being registered
|
||||||
|
* for protected broadcasts, and may additionally specify
|
||||||
|
* {@link #RECEIVER_VISIBLE_TO_INSTANT_APPS} if {@link #RECEIVER_EXPORTED} is
|
||||||
|
* specified.
|
||||||
*
|
*
|
||||||
* @return The first sticky intent found that matches <var>filter</var>,
|
* @return The first sticky intent found that matches <var>filter</var>,
|
||||||
* or null if there are none.
|
* or null if there are none.
|
||||||
@ -3109,6 +3129,42 @@ public abstract class Context {
|
|||||||
throw new RuntimeException("Not implemented. Must override in a subclass.");
|
throw new RuntimeException("Not implemented. Must override in a subclass.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int)}
|
||||||
|
* but this receiver will receive broadcasts that are sent to all users. The receiver can
|
||||||
|
* use {@link BroadcastReceiver#getSendingUser} to determine on which user the broadcast
|
||||||
|
* was sent.
|
||||||
|
*
|
||||||
|
* @param receiver The BroadcastReceiver to handle the broadcast.
|
||||||
|
* @param filter Selects the Intent broadcasts to be received.
|
||||||
|
* @param broadcastPermission String naming a permissions that a
|
||||||
|
* broadcaster must hold in order to send an Intent to you. If {@code null},
|
||||||
|
* no permission is required.
|
||||||
|
* @param scheduler Handler identifying the thread that will receive
|
||||||
|
* the Intent. If {@code null}, the main thread of the process will be used.
|
||||||
|
* @param flags Additional options for the receiver. As of
|
||||||
|
* {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or
|
||||||
|
* {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being
|
||||||
|
* registered for protected broadcasts
|
||||||
|
*
|
||||||
|
* @return The first sticky intent found that matches <var>filter</var>,
|
||||||
|
* or {@code null} if there are none.
|
||||||
|
*
|
||||||
|
* @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int)
|
||||||
|
* @see #sendBroadcast
|
||||||
|
* @see #unregisterReceiver
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@SuppressLint("IntentBuilderName")
|
||||||
|
@Nullable
|
||||||
|
@RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL)
|
||||||
|
@SystemApi
|
||||||
|
public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver,
|
||||||
|
@NonNull IntentFilter filter, @Nullable String broadcastPermission,
|
||||||
|
@Nullable Handler scheduler, @RegisterReceiverFlags int flags) {
|
||||||
|
throw new RuntimeException("Not implemented. Must override in a subclass.");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @hide
|
* @hide
|
||||||
* Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler)
|
* Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler)
|
||||||
@ -3139,6 +3195,41 @@ public abstract class Context {
|
|||||||
UserHandle user, IntentFilter filter, @Nullable String broadcastPermission,
|
UserHandle user, IntentFilter filter, @Nullable String broadcastPermission,
|
||||||
@Nullable Handler scheduler);
|
@Nullable Handler scheduler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hide
|
||||||
|
* Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int)
|
||||||
|
* but for a specific user. This receiver will receiver broadcasts that
|
||||||
|
* are sent to the requested user.
|
||||||
|
*
|
||||||
|
* @param receiver The BroadcastReceiver to handle the broadcast.
|
||||||
|
* @param user UserHandle to send the intent to.
|
||||||
|
* @param filter Selects the Intent broadcasts to be received.
|
||||||
|
* @param broadcastPermission String naming a permissions that a
|
||||||
|
* broadcaster must hold in order to send an Intent to you. If null,
|
||||||
|
* no permission is required.
|
||||||
|
* @param scheduler Handler identifying the thread that will receive
|
||||||
|
* the Intent. If null, the main thread of the process will be used.
|
||||||
|
* @param flags Additional options for the receiver. As of
|
||||||
|
* {@link android.os.Build.VERSION_CODES#TIRAMISU}, either {@link #RECEIVER_EXPORTED} or
|
||||||
|
* {@link #RECEIVER_NOT_EXPORTED} must be specified if the receiver isn't being
|
||||||
|
* registered for protected broadcasts
|
||||||
|
*
|
||||||
|
* @return The first sticky intent found that matches <var>filter</var>,
|
||||||
|
* or null if there are none.
|
||||||
|
*
|
||||||
|
* @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler, int)
|
||||||
|
* @see #sendBroadcast
|
||||||
|
* @see #unregisterReceiver
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("HiddenAbstractMethod")
|
||||||
|
@SuppressLint("IntentBuilderName")
|
||||||
|
@Nullable
|
||||||
|
@RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL)
|
||||||
|
@UnsupportedAppUsage
|
||||||
|
public abstract Intent registerReceiverAsUser(BroadcastReceiver receiver,
|
||||||
|
UserHandle user, IntentFilter filter, @Nullable String broadcastPermission,
|
||||||
|
@Nullable Handler scheduler, @RegisterReceiverFlags int flags);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unregister a previously registered BroadcastReceiver. <em>All</em>
|
* Unregister a previously registered BroadcastReceiver. <em>All</em>
|
||||||
* filters that have been registered for this BroadcastReceiver will be
|
* filters that have been registered for this BroadcastReceiver will be
|
||||||
|
@ -754,16 +754,36 @@ public class ContextWrapper extends Context {
|
|||||||
scheduler);
|
scheduler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver,
|
||||||
|
@NonNull IntentFilter filter, @Nullable String broadcastPermission,
|
||||||
|
@Nullable Handler scheduler, int flags) {
|
||||||
|
return mBase.registerReceiverForAllUsers(receiver, filter, broadcastPermission,
|
||||||
|
scheduler, flags);
|
||||||
|
}
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@Override
|
@Override
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
public Intent registerReceiverAsUser(
|
public Intent registerReceiverAsUser(@Nullable BroadcastReceiver receiver, UserHandle user,
|
||||||
BroadcastReceiver receiver, UserHandle user, IntentFilter filter,
|
IntentFilter filter, @Nullable String broadcastPermission,
|
||||||
String broadcastPermission, Handler scheduler) {
|
@Nullable Handler scheduler) {
|
||||||
return mBase.registerReceiverAsUser(receiver, user, filter, broadcastPermission,
|
return mBase.registerReceiverAsUser(receiver, user, filter, broadcastPermission,
|
||||||
scheduler);
|
scheduler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
@Override
|
||||||
|
@UnsupportedAppUsage
|
||||||
|
public Intent registerReceiverAsUser(@Nullable BroadcastReceiver receiver, UserHandle user,
|
||||||
|
IntentFilter filter, @Nullable String broadcastPermission,
|
||||||
|
@Nullable Handler scheduler, int flags) {
|
||||||
|
return mBase.registerReceiverAsUser(receiver, user, filter, broadcastPermission,
|
||||||
|
scheduler, flags);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void unregisterReceiver(BroadcastReceiver receiver) {
|
public void unregisterReceiver(BroadcastReceiver receiver) {
|
||||||
mBase.unregisterReceiver(receiver);
|
mBase.unregisterReceiver(receiver);
|
||||||
|
@ -571,6 +571,14 @@ public class MockContext extends Context {
|
|||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
@Override
|
||||||
|
@SystemApi
|
||||||
|
public Intent registerReceiverForAllUsers(BroadcastReceiver receiver,
|
||||||
|
IntentFilter filter, String broadcastPermission, Handler scheduler, int flags) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@Override
|
@Override
|
||||||
public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
|
public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
|
||||||
@ -578,6 +586,13 @@ public class MockContext extends Context {
|
|||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
@Override
|
||||||
|
public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
|
||||||
|
IntentFilter filter, String broadcastPermission, Handler scheduler, int flags) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void unregisterReceiver(BroadcastReceiver receiver) {
|
public void unregisterReceiver(BroadcastReceiver receiver) {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user