summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java40
1 files changed, 25 insertions, 15 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
index 8ed69d8fb982..db5329a8f952 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
@@ -36,6 +36,7 @@ import android.media.session.MediaSession;
import android.media.session.MediaSessionManager;
import android.media.session.PlaybackState;
import android.os.AsyncTask;
+import android.os.SystemProperties;
import android.os.Trace;
import android.os.UserHandle;
import android.provider.DeviceConfig;
@@ -90,7 +91,8 @@ import dagger.Lazy;
public class NotificationMediaManager implements Dumpable {
private static final String TAG = "NotificationMediaManager";
public static final boolean DEBUG_MEDIA = false;
- private static final long PAUSED_MEDIA_TIMEOUT = TimeUnit.MINUTES.toMillis(10);
+ private static final long PAUSED_MEDIA_TIMEOUT = SystemProperties
+ .getLong("debug.sysui.media_timeout", TimeUnit.MINUTES.toMillis(10));
private final StatusBarStateController mStatusBarStateController
= Dependency.get(StatusBarStateController.class);
@@ -163,6 +165,9 @@ public class NotificationMediaManager implements Dumpable {
Log.v(TAG, "DEBUG_MEDIA: onPlaybackStateChanged: " + state);
}
if (mMediaTimeoutCancellation != null) {
+ if (DEBUG_MEDIA) {
+ Log.v(TAG, "DEBUG_MEDIA: media timeout cancelled");
+ }
mMediaTimeoutCancellation.run();
mMediaTimeoutCancellation = null;
}
@@ -182,8 +187,16 @@ public class NotificationMediaManager implements Dumpable {
}
if (entry != null) {
if (!isPlayingState(state.getState())) {
+ if (DEBUG_MEDIA) {
+ Log.v(TAG, "DEBUG_MEDIA: schedule timeout for "
+ + mMediaNotificationKey);
+ }
mMediaTimeoutCancellation = mMainExecutor.executeDelayed(() -> {
synchronized (mEntryManager) {
+ if (DEBUG_MEDIA) {
+ Log.v(TAG, "DEBUG_MEDIA: execute timeout for "
+ + mMediaNotificationKey);
+ }
if (mMediaNotificationKey == null) {
return;
}
@@ -375,21 +388,18 @@ public class NotificationMediaManager implements Dumpable {
UserHandle.USER_ALL);
for (MediaController aController : sessions) {
- if (PlaybackState.STATE_PLAYING ==
- getMediaControllerPlaybackState(aController)) {
- // now to see if we have one like this
- final String pkg = aController.getPackageName();
-
- for (NotificationEntry entry : allNotifications) {
- if (entry.getSbn().getPackageName().equals(pkg)) {
- if (DEBUG_MEDIA) {
- Log.v(TAG, "DEBUG_MEDIA: found controller matching "
- + entry.getSbn().getKey());
- }
- controller = aController;
- mediaNotification = entry;
- break;
+ // now to see if we have one like this
+ final String pkg = aController.getPackageName();
+
+ for (NotificationEntry entry : allNotifications) {
+ if (entry.getSbn().getPackageName().equals(pkg)) {
+ if (DEBUG_MEDIA) {
+ Log.v(TAG, "DEBUG_MEDIA: found controller matching "
+ + entry.getSbn().getKey());
}
+ controller = aController;
+ mediaNotification = entry;
+ break;
}
}
}