summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeth Thibodeau <ethibodeau@google.com>2019-07-31 20:23:44 +0000
committerBeth Thibodeau <ethibodeau@google.com>2019-07-31 20:26:19 +0000
commit4c9726e0417521b20205165c8e81d24b3a95729c (patch)
treea1d82e151cbaea9f6e5380f81961ec12008e1acf
parent3c4a8e48d404649bd03ee8e6e377dcf9a65afee9 (diff)
downloadbase-4c9726e0417521b20205165c8e81d24b3a95729c.tar.gz
Revert "Stop timer when notification isn't visible"
This reverts commit 3c4a8e48d404649bd03ee8e6e377dcf9a65afee9. Reason for revert: NPE errors Fixes: b/138697134 Change-Id: Ic89eb58cd68485dcc5e7c5a3ef48d7ed79c303ca
-rw-r--r--core/java/com/android/internal/widget/MediaNotificationView.java47
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapper.java47
2 files changed, 8 insertions, 86 deletions
diff --git a/core/java/com/android/internal/widget/MediaNotificationView.java b/core/java/com/android/internal/widget/MediaNotificationView.java
index 0d87afa42e3e..e7d240a1035e 100644
--- a/core/java/com/android/internal/widget/MediaNotificationView.java
+++ b/core/java/com/android/internal/widget/MediaNotificationView.java
@@ -26,8 +26,6 @@ import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RemoteViews;
-import java.util.ArrayList;
-
/**
* A TextView that can float around an image on the end.
*
@@ -44,7 +42,6 @@ public class MediaNotificationView extends FrameLayout {
private View mMainColumn;
private View mMediaContent;
private int mImagePushIn;
- private ArrayList<VisibilityChangeListener> mListeners;
public MediaNotificationView(Context context) {
this(context, null);
@@ -171,48 +168,4 @@ public class MediaNotificationView extends FrameLayout {
mMainColumn = findViewById(com.android.internal.R.id.notification_main_column);
mMediaContent = findViewById(com.android.internal.R.id.notification_media_content);
}
-
- @Override
- public void onVisibilityAggregated(boolean isVisible) {
- super.onVisibilityAggregated(isVisible);
- for (int i = 0; i < mListeners.size(); i++) {
- mListeners.get(i).onAggregatedVisibilityChanged(isVisible);
- }
- }
-
- /**
- * Add a listener to receive updates on the visibility of this view
- *
- * @param listener The listener to add.
- */
- public void addVisibilityListener(VisibilityChangeListener listener) {
- if (mListeners == null) {
- mListeners = new ArrayList<>();
- }
- if (!mListeners.contains(listener)) {
- mListeners.add(listener);
- }
- }
-
- /**
- * Remove the specified listener
- *
- * @param listener The listener to remove.
- */
- public void removeVisibilityListener(VisibilityChangeListener listener) {
- if (mListeners != null) {
- mListeners.remove(listener);
- }
- }
-
- /**
- * Interface for receiving updates when the view's visibility changes
- */
- public interface VisibilityChangeListener {
- /**
- * Method called when the visibility of this view has changed
- * @param isVisible true if the view is now visible
- */
- void onAggregatedVisibilityChanged(boolean isVisible);
- }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapper.java
index 38f9bff2a63f..20e8b733ce6a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapper.java
@@ -39,7 +39,6 @@ import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.widget.MediaNotificationView;
import com.android.systemui.Dependency;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.TransformableView;
@@ -68,7 +67,6 @@ public class NotificationMediaTemplateViewWrapper extends NotificationTemplateVi
private View mSeekBarView;
private Context mContext;
private MetricsLogger mMetricsLogger;
- private boolean mIsViewVisible;
@VisibleForTesting
protected SeekBar.OnSeekBarChangeListener mSeekListener =
@@ -90,33 +88,11 @@ public class NotificationMediaTemplateViewWrapper extends NotificationTemplateVi
}
};
- MediaNotificationView.VisibilityChangeListener mVisibilityListener =
- new MediaNotificationView.VisibilityChangeListener() {
- @Override
- public void onAggregatedVisibilityChanged(boolean isVisible) {
- mIsViewVisible = isVisible;
- if (isVisible) {
- // Restart timer if we're currently playing and didn't already have one going
- PlaybackState state = mMediaController.getPlaybackState();
- if (state != null && state.getState() == PlaybackState.STATE_PLAYING
- && mSeekBarTimer == null && mSeekBarView != null
- && mSeekBarView.getVisibility() != View.GONE) {
- startTimer();
- }
- } else {
- clearTimer();
- }
- }
- };
-
private MediaController.Callback mMediaCallback = new MediaController.Callback() {
@Override
public void onSessionDestroyed() {
clearTimer();
mMediaController.unregisterCallback(this);
- if (mView instanceof MediaNotificationView) {
- ((MediaNotificationView) mView).removeVisibilityListener(mVisibilityListener);
- }
}
@Override
@@ -150,16 +126,10 @@ public class NotificationMediaTemplateViewWrapper extends NotificationTemplateVi
mContext = ctx;
mMediaManager = Dependency.get(NotificationMediaManager.class);
mMetricsLogger = Dependency.get(MetricsLogger.class);
-
- if (mView instanceof MediaNotificationView) {
- MediaNotificationView mediaView = (MediaNotificationView) mView;
- mediaView.addVisibilityListener(mVisibilityListener);
- }
}
private void resolveViews() {
mActions = mView.findViewById(com.android.internal.R.id.media_actions);
- mIsViewVisible = mView.isShown();
final MediaSession.Token token = mRow.getEntry().notification.getNotification().extras
.getParcelable(Notification.EXTRA_MEDIA_SESSION);
@@ -238,19 +208,18 @@ public class NotificationMediaTemplateViewWrapper extends NotificationTemplateVi
private void startTimer() {
clearTimer();
- if (mIsViewVisible) {
- mSeekBarTimer = new Timer(true /* isDaemon */);
- mSeekBarTimer.schedule(new TimerTask() {
- @Override
- public void run() {
- mHandler.post(mOnUpdateTimerTick);
- }
- }, 0, PROGRESS_UPDATE_INTERVAL);
- }
+ mSeekBarTimer = new Timer(true /* isDaemon */);
+ mSeekBarTimer.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ mHandler.post(mOnUpdateTimerTick);
+ }
+ }, 0, PROGRESS_UPDATE_INTERVAL);
}
private void clearTimer() {
if (mSeekBarTimer != null) {
+ // TODO: also trigger this when the notification panel is collapsed
mSeekBarTimer.cancel();
mSeekBarTimer.purge();
mSeekBarTimer = null;