aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSudheer Shanka <sudheersai@google.com>2023-03-23 00:55:59 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-03-23 00:55:59 +0000
commit2e5f9bb466e73f4c9ce70fdd6dc67f3f9c70a5ec (patch)
treeb50e75b49c07640e9ee21ee090d46fa6711e91ba
parent1fe4b3c2d06454507b785011ad2d0bb0d3296610 (diff)
parent25f2d269e38d88e4543bd75e02e127ba0a0d6a49 (diff)
downloadDialer-2e5f9bb466e73f4c9ce70fdd6dc67f3f9c70a5ec.tar.gz
Apply delivery group policies to CLOSE_SYSTEM_DIALOG broadcast. am: f1e0587df8 am: 25f2d269e3
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Dialer/+/22109992 Change-Id: Icab132efc6d6f77af483cda73b5185f44aba8e01 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--java/com/android/dialer/app/calllog/MissedCallNotifier.java12
-rw-r--r--java/com/android/incallui/NotificationBroadcastReceiver.java17
2 files changed, 27 insertions, 2 deletions
diff --git a/java/com/android/dialer/app/calllog/MissedCallNotifier.java b/java/com/android/dialer/app/calllog/MissedCallNotifier.java
index f2d2af834..64536c8b0 100644
--- a/java/com/android/dialer/app/calllog/MissedCallNotifier.java
+++ b/java/com/android/dialer/app/calllog/MissedCallNotifier.java
@@ -17,6 +17,7 @@ package com.android.dialer.app.calllog;
import static com.android.dialer.app.DevicePolicyResources.NOTIFICATION_MISSED_WORK_CALL_TITLE;
+import android.app.BroadcastOptions;
import android.app.Notification;
import android.app.Notification.Builder;
import android.app.PendingIntent;
@@ -27,6 +28,7 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.Icon;
import android.net.Uri;
+import android.os.Bundle;
import android.provider.CallLog.Calls;
import android.service.notification.StatusBarNotification;
import android.support.annotation.NonNull;
@@ -44,6 +46,7 @@ import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import android.util.ArraySet;
+
import com.android.contacts.common.ContactsUtils;
import com.android.dialer.app.MainComponent;
import com.android.dialer.app.R;
@@ -68,6 +71,7 @@ import com.android.dialer.precall.PreCall;
import com.android.dialer.theme.base.ThemeComponent;
import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.IntentUtil;
+
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -500,6 +504,12 @@ public class MissedCallNotifier implements Worker<Pair<Integer, String>, Void> {
/** Closes open system dialogs and the notification shade. */
private void closeSystemDialogs(Context context) {
- context.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
+ final Intent intent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)
+ .addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+ final Bundle options = BroadcastOptions.makeBasic()
+ .setDeliveryGroupPolicy(BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT)
+ .setDeferralPolicy(BroadcastOptions.DEFERRAL_POLICY_UNTIL_ACTIVE)
+ .toBundle();
+ context.sendBroadcast(intent, null /* receiverPermission */, options);
}
}
diff --git a/java/com/android/incallui/NotificationBroadcastReceiver.java b/java/com/android/incallui/NotificationBroadcastReceiver.java
index 241d8ed48..91421ea1b 100644
--- a/java/com/android/incallui/NotificationBroadcastReceiver.java
+++ b/java/com/android/incallui/NotificationBroadcastReceiver.java
@@ -16,14 +16,17 @@
package com.android.incallui;
+import android.app.BroadcastOptions;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build.VERSION_CODES;
+import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.telecom.CallAudioState;
import android.telecom.VideoProfile;
+
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.logging.DialerImpression;
@@ -32,6 +35,7 @@ import com.android.incallui.call.CallList;
import com.android.incallui.call.DialerCall;
import com.android.incallui.call.TelecomAdapter;
import com.android.incallui.speakeasy.SpeakEasyCallManager;
+
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
@@ -97,7 +101,7 @@ public class NotificationBroadcastReceiver extends BroadcastReceiver {
} else if (action.equals(ACTION_DECLINE_VIDEO_UPGRADE_REQUEST)) {
declineUpgradeRequest();
} else if (action.equals(ACTION_PULL_EXTERNAL_CALL)) {
- context.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
+ closeSystemDialogs(context);
int notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1);
InCallPresenter.getInstance().getExternalCallNotifier().pullExternalCall(notificationId);
} else if (action.equals(ACTION_TURN_ON_SPEAKER)) {
@@ -220,4 +224,15 @@ public class NotificationBroadcastReceiver extends BroadcastReceiver {
}
}
}
+
+ /** Closes open system dialogs and the notification shade. */
+ private void closeSystemDialogs(Context context) {
+ final Intent intent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)
+ .addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+ final Bundle options = BroadcastOptions.makeBasic()
+ .setDeliveryGroupPolicy(BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT)
+ .setDeferralPolicy(BroadcastOptions.DEFERRAL_POLICY_UNTIL_ACTIVE)
+ .toBundle();
+ context.sendBroadcast(intent, null /* receiverPermission */, options);
+ }
}