Merge "Add additional logging for ongoing and foreground bubble types." into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-12 03:38:09 +00:00
committed by Android (Google) Code Review
5 changed files with 28 additions and 7 deletions

View File

@@ -5592,6 +5592,12 @@ message BubbleUIChanged {
// Whether the bubble is unread. If it is unread, a dot is shown in the bubble stack icon.
optional bool is_unread = 9;
// Whether the bubble is an on-going one.
optional bool is_ongoing = 10;
// Whether the bubble is produced by an app running in foreground.
optional bool is_foreground = 11;
}
/**

View File

@@ -585,23 +585,24 @@ public class BubbleController implements BubbleExpandedView.OnBubbleBlockedListe
private boolean shouldAutoExpand(NotificationEntry entry) {
Notification.BubbleMetadata metadata = entry.getBubbleMetadata();
return metadata != null && metadata.getAutoExpandBubble()
&& isForegroundApp(entry.notification.getPackageName());
&& isForegroundApp(mContext, entry.notification.getPackageName());
}
private void updateShowInShadeForSuppressNotification(NotificationEntry entry) {
boolean suppressNotification = entry.getBubbleMetadata() != null
&& entry.getBubbleMetadata().getSuppressNotification()
&& isForegroundApp(entry.notification.getPackageName());
&& isForegroundApp(mContext, entry.notification.getPackageName());
entry.setShowInShadeWhenBubble(!suppressNotification);
}
/**
* Return true if the applications with the package name is running in foreground.
*
* @param context application context.
* @param pkgName application package name.
*/
private boolean isForegroundApp(String pkgName) {
ActivityManager am = mContext.getSystemService(ActivityManager.class);
public static boolean isForegroundApp(Context context, String pkgName) {
ActivityManager am = context.getSystemService(ActivityManager.class);
List<RunningTaskInfo> tasks = am.getRunningTasks(1 /* maxNum */);
return !tasks.isEmpty() && pkgName.equals(tasks.get(0).topActivity.getPackageName());
}

View File

@@ -723,7 +723,9 @@ public class BubbleExpandedView extends LinearLayout implements View.OnClickList
action,
mStackView.getNormalizedXPosition(),
mStackView.getNormalizedYPosition(),
entry.showInShadeWhenBubble());
entry.showInShadeWhenBubble(),
entry.isForegroundService(),
BubbleController.isForegroundApp(mContext, notification.getPackageName()));
}
private int getDimenForPackageUser(int resId, String pkg, int userId) {

View File

@@ -1107,7 +1107,9 @@ public class BubbleStackView extends FrameLayout {
action,
getNormalizedXPosition(),
getNormalizedYPosition(),
false /* unread notification */);
false /* unread bubble */,
false /* on-going bubble */,
false /* foreground bubble */);
} else {
StatusBarNotification notification = bubble.entry.notification;
StatsLog.write(StatsLog.BUBBLE_UI_CHANGED,
@@ -1119,7 +1121,9 @@ public class BubbleStackView extends FrameLayout {
action,
getNormalizedXPosition(),
getNormalizedYPosition(),
bubble.entry.showInShadeWhenBubble());
bubble.entry.showInShadeWhenBubble(),
bubble.entry.isForegroundService(),
BubbleController.isForegroundApp(mContext, notification.getPackageName()));
}
}

View File

@@ -830,4 +830,12 @@ public final class NotificationEntry {
this.index = index;
}
}
/**
* Returns whether the notification is a foreground service. It shows that this is an ongoing
* bubble.
*/
public boolean isForegroundService() {
return (notification.getNotification().flags & Notification.FLAG_FOREGROUND_SERVICE) != 0;
}
}