Loading core/java/android/app/BroadcastOptions.java +52 −14 Original line number Diff line number Diff line Loading @@ -37,8 +37,6 @@ import android.os.PowerExemptionManager; import android.os.PowerExemptionManager.ReasonCode; import android.os.PowerExemptionManager.TempAllowListType; import com.android.internal.util.Preconditions; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Objects; Loading @@ -61,7 +59,8 @@ public class BroadcastOptions extends ComponentOptions { private long mRequireCompatChangeId = CHANGE_INVALID; private long mIdForResponseEvent; private @DeliveryGroupPolicy int mDeliveryGroupPolicy; private @Nullable String mDeliveryGroupMatchingKey; private @Nullable String mDeliveryGroupMatchingNamespaceFragment; private @Nullable String mDeliveryGroupMatchingKeyFragment; private @Nullable BundleMerger mDeliveryGroupExtrasMerger; private @Nullable IntentFilter mDeliveryGroupMatchingFilter; private @DeferralPolicy int mDeferralPolicy; Loading Loading @@ -209,7 +208,13 @@ public class BroadcastOptions extends ComponentOptions { "android:broadcast.deliveryGroupPolicy"; /** * Corresponds to {@link #setDeliveryGroupMatchingKey(String, String)}. * Corresponds to namespace fragment of {@link #setDeliveryGroupMatchingKey(String, String)}. */ private static final String KEY_DELIVERY_GROUP_NAMESPACE = "android:broadcast.deliveryGroupMatchingNamespace"; /** * Corresponds to key fragment of {@link #setDeliveryGroupMatchingKey(String, String)}. */ private static final String KEY_DELIVERY_GROUP_KEY = "android:broadcast.deliveryGroupMatchingKey"; Loading Loading @@ -350,7 +355,8 @@ public class BroadcastOptions extends ComponentOptions { mIdForResponseEvent = opts.getLong(KEY_ID_FOR_RESPONSE_EVENT); mDeliveryGroupPolicy = opts.getInt(KEY_DELIVERY_GROUP_POLICY, DELIVERY_GROUP_POLICY_ALL); mDeliveryGroupMatchingKey = opts.getString(KEY_DELIVERY_GROUP_KEY); mDeliveryGroupMatchingNamespaceFragment = opts.getString(KEY_DELIVERY_GROUP_NAMESPACE); mDeliveryGroupMatchingKeyFragment = opts.getString(KEY_DELIVERY_GROUP_KEY); mDeliveryGroupExtrasMerger = opts.getParcelable(KEY_DELIVERY_GROUP_EXTRAS_MERGER, BundleMerger.class); mDeliveryGroupMatchingFilter = opts.getParcelable(KEY_DELIVERY_GROUP_MATCHING_FILTER, Loading Loading @@ -864,11 +870,8 @@ public class BroadcastOptions extends ComponentOptions { @NonNull public BroadcastOptions setDeliveryGroupMatchingKey(@NonNull String namespace, @NonNull String key) { Preconditions.checkArgument(!namespace.contains(":"), "namespace should not contain ':'"); Preconditions.checkArgument(!key.contains(":"), "key should not contain ':'"); mDeliveryGroupMatchingKey = namespace + ":" + key; mDeliveryGroupMatchingNamespaceFragment = Objects.requireNonNull(namespace); mDeliveryGroupMatchingKeyFragment = Objects.requireNonNull(key); return this; } Loading @@ -881,7 +884,38 @@ public class BroadcastOptions extends ComponentOptions { */ @Nullable public String getDeliveryGroupMatchingKey() { return mDeliveryGroupMatchingKey; if (mDeliveryGroupMatchingNamespaceFragment == null || mDeliveryGroupMatchingKeyFragment == null) { return null; } return String.join(":", mDeliveryGroupMatchingNamespaceFragment, mDeliveryGroupMatchingKeyFragment); } /** * Return the namespace fragment that is used to identify the delivery group that this * broadcast belongs to. * * @return the delivery group namespace fragment that was previously set using * {@link #setDeliveryGroupMatchingKey(String, String)}. * @hide */ @Nullable public String getDeliveryGroupMatchingNamespaceFragment() { return mDeliveryGroupMatchingNamespaceFragment; } /** * Return the key fragment that is used to identify the delivery group that this * broadcast belongs to. * * @return the delivery group key fragment that was previously set using * {@link #setDeliveryGroupMatchingKey(String, String)}. * @hide */ @Nullable public String getDeliveryGroupMatchingKeyFragment() { return mDeliveryGroupMatchingKeyFragment; } /** Loading @@ -889,7 +923,8 @@ public class BroadcastOptions extends ComponentOptions { * {@link #setDeliveryGroupMatchingKey(String, String)}. */ public void clearDeliveryGroupMatchingKey() { mDeliveryGroupMatchingKey = null; mDeliveryGroupMatchingNamespaceFragment = null; mDeliveryGroupMatchingKeyFragment = null; } /** Loading Loading @@ -1101,8 +1136,11 @@ public class BroadcastOptions extends ComponentOptions { if (mDeliveryGroupPolicy != DELIVERY_GROUP_POLICY_ALL) { b.putInt(KEY_DELIVERY_GROUP_POLICY, mDeliveryGroupPolicy); } if (mDeliveryGroupMatchingKey != null) { b.putString(KEY_DELIVERY_GROUP_KEY, mDeliveryGroupMatchingKey); if (mDeliveryGroupMatchingNamespaceFragment != null) { b.putString(KEY_DELIVERY_GROUP_NAMESPACE, mDeliveryGroupMatchingNamespaceFragment); } if (mDeliveryGroupMatchingKeyFragment != null) { b.putString(KEY_DELIVERY_GROUP_KEY, mDeliveryGroupMatchingKeyFragment); } if (mDeliveryGroupPolicy == DELIVERY_GROUP_POLICY_MERGED) { if (mDeliveryGroupExtrasMerger != null) { Loading Loading
core/java/android/app/BroadcastOptions.java +52 −14 Original line number Diff line number Diff line Loading @@ -37,8 +37,6 @@ import android.os.PowerExemptionManager; import android.os.PowerExemptionManager.ReasonCode; import android.os.PowerExemptionManager.TempAllowListType; import com.android.internal.util.Preconditions; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Objects; Loading @@ -61,7 +59,8 @@ public class BroadcastOptions extends ComponentOptions { private long mRequireCompatChangeId = CHANGE_INVALID; private long mIdForResponseEvent; private @DeliveryGroupPolicy int mDeliveryGroupPolicy; private @Nullable String mDeliveryGroupMatchingKey; private @Nullable String mDeliveryGroupMatchingNamespaceFragment; private @Nullable String mDeliveryGroupMatchingKeyFragment; private @Nullable BundleMerger mDeliveryGroupExtrasMerger; private @Nullable IntentFilter mDeliveryGroupMatchingFilter; private @DeferralPolicy int mDeferralPolicy; Loading Loading @@ -209,7 +208,13 @@ public class BroadcastOptions extends ComponentOptions { "android:broadcast.deliveryGroupPolicy"; /** * Corresponds to {@link #setDeliveryGroupMatchingKey(String, String)}. * Corresponds to namespace fragment of {@link #setDeliveryGroupMatchingKey(String, String)}. */ private static final String KEY_DELIVERY_GROUP_NAMESPACE = "android:broadcast.deliveryGroupMatchingNamespace"; /** * Corresponds to key fragment of {@link #setDeliveryGroupMatchingKey(String, String)}. */ private static final String KEY_DELIVERY_GROUP_KEY = "android:broadcast.deliveryGroupMatchingKey"; Loading Loading @@ -350,7 +355,8 @@ public class BroadcastOptions extends ComponentOptions { mIdForResponseEvent = opts.getLong(KEY_ID_FOR_RESPONSE_EVENT); mDeliveryGroupPolicy = opts.getInt(KEY_DELIVERY_GROUP_POLICY, DELIVERY_GROUP_POLICY_ALL); mDeliveryGroupMatchingKey = opts.getString(KEY_DELIVERY_GROUP_KEY); mDeliveryGroupMatchingNamespaceFragment = opts.getString(KEY_DELIVERY_GROUP_NAMESPACE); mDeliveryGroupMatchingKeyFragment = opts.getString(KEY_DELIVERY_GROUP_KEY); mDeliveryGroupExtrasMerger = opts.getParcelable(KEY_DELIVERY_GROUP_EXTRAS_MERGER, BundleMerger.class); mDeliveryGroupMatchingFilter = opts.getParcelable(KEY_DELIVERY_GROUP_MATCHING_FILTER, Loading Loading @@ -864,11 +870,8 @@ public class BroadcastOptions extends ComponentOptions { @NonNull public BroadcastOptions setDeliveryGroupMatchingKey(@NonNull String namespace, @NonNull String key) { Preconditions.checkArgument(!namespace.contains(":"), "namespace should not contain ':'"); Preconditions.checkArgument(!key.contains(":"), "key should not contain ':'"); mDeliveryGroupMatchingKey = namespace + ":" + key; mDeliveryGroupMatchingNamespaceFragment = Objects.requireNonNull(namespace); mDeliveryGroupMatchingKeyFragment = Objects.requireNonNull(key); return this; } Loading @@ -881,7 +884,38 @@ public class BroadcastOptions extends ComponentOptions { */ @Nullable public String getDeliveryGroupMatchingKey() { return mDeliveryGroupMatchingKey; if (mDeliveryGroupMatchingNamespaceFragment == null || mDeliveryGroupMatchingKeyFragment == null) { return null; } return String.join(":", mDeliveryGroupMatchingNamespaceFragment, mDeliveryGroupMatchingKeyFragment); } /** * Return the namespace fragment that is used to identify the delivery group that this * broadcast belongs to. * * @return the delivery group namespace fragment that was previously set using * {@link #setDeliveryGroupMatchingKey(String, String)}. * @hide */ @Nullable public String getDeliveryGroupMatchingNamespaceFragment() { return mDeliveryGroupMatchingNamespaceFragment; } /** * Return the key fragment that is used to identify the delivery group that this * broadcast belongs to. * * @return the delivery group key fragment that was previously set using * {@link #setDeliveryGroupMatchingKey(String, String)}. * @hide */ @Nullable public String getDeliveryGroupMatchingKeyFragment() { return mDeliveryGroupMatchingKeyFragment; } /** Loading @@ -889,7 +923,8 @@ public class BroadcastOptions extends ComponentOptions { * {@link #setDeliveryGroupMatchingKey(String, String)}. */ public void clearDeliveryGroupMatchingKey() { mDeliveryGroupMatchingKey = null; mDeliveryGroupMatchingNamespaceFragment = null; mDeliveryGroupMatchingKeyFragment = null; } /** Loading Loading @@ -1101,8 +1136,11 @@ public class BroadcastOptions extends ComponentOptions { if (mDeliveryGroupPolicy != DELIVERY_GROUP_POLICY_ALL) { b.putInt(KEY_DELIVERY_GROUP_POLICY, mDeliveryGroupPolicy); } if (mDeliveryGroupMatchingKey != null) { b.putString(KEY_DELIVERY_GROUP_KEY, mDeliveryGroupMatchingKey); if (mDeliveryGroupMatchingNamespaceFragment != null) { b.putString(KEY_DELIVERY_GROUP_NAMESPACE, mDeliveryGroupMatchingNamespaceFragment); } if (mDeliveryGroupMatchingKeyFragment != null) { b.putString(KEY_DELIVERY_GROUP_KEY, mDeliveryGroupMatchingKeyFragment); } if (mDeliveryGroupPolicy == DELIVERY_GROUP_POLICY_MERGED) { if (mDeliveryGroupExtrasMerger != null) { Loading