Auto expand bubbles when foreground with the flag set
- Tests if you're not foreground that it's not auto expanded
- Tests if you are foreground it does expand
Test: atest BubbleControllerTest
Bug: 123542531
Change-Id: I016a39236f1d1ac83518f6cc57099c4e5bc83686
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
index 4a2731e..0b12ea5 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
@@ -26,6 +26,7 @@
import static java.lang.annotation.RetentionPolicy.SOURCE;
import android.annotation.Nullable;
+import android.app.ActivityManager;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ActivityTaskManager;
import android.app.IActivityTaskManager;
@@ -64,6 +65,7 @@
import com.android.systemui.statusbar.policy.ConfigurationController;
import java.lang.annotation.Retention;
+import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -340,6 +342,9 @@
// It's new
mStackView.addBubble(notif);
}
+ if (shouldAutoExpand(notif)) {
+ mStackView.setExpandedBubble(notif);
+ }
updateVisibility();
}
@@ -522,6 +527,23 @@
|| autoBubbleAll;
}
+ private boolean shouldAutoExpand(NotificationEntry entry) {
+ Notification.BubbleMetadata metadata = entry.getBubbleMetadata();
+ return metadata != null && metadata.getAutoExpandBubble()
+ && isForegroundApp(entry.notification.getPackageName());
+ }
+
+ /**
+ * Return true if the applications with the package name is running in foreground.
+ *
+ * @param pkgName application package name.
+ */
+ private boolean isForegroundApp(String pkgName) {
+ ActivityManager am = mContext.getSystemService(ActivityManager.class);
+ List<RunningTaskInfo> tasks = am.getRunningTasks(1 /* maxNum */);
+ return !tasks.isEmpty() && pkgName.equals(tasks.get(0).topActivity.getPackageName());
+ }
+
/**
* This task stack listener is responsible for responding to tasks moved to the front
* which are on the default (main) display. When this happens, expanded bubbles must be