Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cddbca44 authored by Hui Yu's avatar Hui Yu Committed by Automerger Merge Worker
Browse files

Merge "FGS PendingIntent also use BroadcastOptions' temp allowlist duration."...

Merge "FGS PendingIntent also use BroadcastOptions' temp allowlist duration." into sc-dev am: 5d5661a5 am: bab1f928

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15338525

Change-Id: Ic5c7ca7527ef433d2728cc3e9755f7a542bbd032
parents 8d763151 bab1f928
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NA
import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.ActivityOptions;
import android.app.BroadcastOptions;
import android.app.PendingIntent;
import android.content.IIntentReceiver;
import android.content.IIntentSender;
@@ -408,6 +409,18 @@ public final class PendingIntentRecord extends IIntentSender.Stub {
                }
                controller.mAmInternal.tempAllowlistForPendingIntent(callingPid, callingUid,
                        uid, duration.duration, duration.type, duration.reasonCode, tag.toString());
            } else if (key.type == ActivityManager.INTENT_SENDER_FOREGROUND_SERVICE
                    && options != null) {
                // If this is a getForegroundService() type pending intent, use its BroadcastOptions
                // temp allowlist duration as its pending intent temp allowlist duration.
                BroadcastOptions brOptions = new BroadcastOptions(options);
                if (brOptions.getTemporaryAppAllowlistDuration() > 0) {
                    controller.mAmInternal.tempAllowlistForPendingIntent(callingPid, callingUid,
                            uid, brOptions.getTemporaryAppAllowlistDuration(),
                            brOptions.getTemporaryAppAllowlistType(),
                            brOptions.getTemporaryAppAllowlistReasonCode(),
                            brOptions.getTemporaryAppAllowlistReason());
                }
            }

            boolean sendFinish = finishedReceiver != null;