diff options
author | Beth Thibodeau <ethibodeau@google.com> | 2019-07-31 20:23:44 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-08-01 00:18:57 +0000 |
commit | 6ec7dd25a25c527c933fbeacd1897fa53a485cf0 (patch) | |
tree | 80aa2a92e45d3012db83d280317a3d6af68243fc | |
parent | 1e8ff85be96097ed93d6250d0bb5b2262a664f8b (diff) | |
download | base-6ec7dd25a25c527c933fbeacd1897fa53a485cf0.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
(cherry picked from commit 4c9726e0417521b20205165c8e81d24b3a95729c)
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; |