| OLD | NEW | 
|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 package org.chromium.chrome.browser.media.remote; | 5 package org.chromium.chrome.browser.media.remote; | 
| 6 | 6 | 
| 7 import android.content.Context; | 7 import android.content.Context; | 
| 8 import android.content.Intent; | 8 import android.content.Intent; | 
| 9 import android.graphics.Bitmap; | 9 import android.graphics.Bitmap; | 
| 10 import android.media.AudioManager; | 10 import android.media.AudioManager; | 
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 75     /** | 75     /** | 
| 76      * Sets the poster bitmap to display on the TransportControl. | 76      * Sets the poster bitmap to display on the TransportControl. | 
| 77      */ | 77      */ | 
| 78     public final void setPosterBitmap(Bitmap posterBitmap) { | 78     public final void setPosterBitmap(Bitmap posterBitmap) { | 
| 79         if (mPosterBitmap == posterBitmap | 79         if (mPosterBitmap == posterBitmap | 
| 80                 || (mPosterBitmap != null && mPosterBitmap.sameAs(posterBitmap))
     ) { | 80                 || (mPosterBitmap != null && mPosterBitmap.sameAs(posterBitmap))
     ) { | 
| 81             return; | 81             return; | 
| 82         } | 82         } | 
| 83         mPosterBitmap = posterBitmap; | 83         mPosterBitmap = posterBitmap; | 
| 84         if (mNotificationBuilder == null || mMediaRouteController == null) retur
     n; | 84         if (mNotificationBuilder == null || mMediaRouteController == null) retur
     n; | 
| 85         mNotificationBuilder.setImage(mMediaRouteController.getPoster()); | 85         mNotificationBuilder.setLargeIcon(mMediaRouteController.getPoster()); | 
| 86         updateNotification(); | 86         updateNotification(); | 
| 87     } | 87     } | 
| 88 | 88 | 
| 89     public void hide() { | 89     public void hide() { | 
| 90         mIsShowing = false; | 90         mIsShowing = false; | 
| 91         MediaNotificationManager.hide(Tab.INVALID_TAB_ID, R.id.remote_notificati
     on); | 91         MediaNotificationManager.hide(Tab.INVALID_TAB_ID, R.id.remote_notificati
     on); | 
| 92         mAudioManager.abandonAudioFocus(this); | 92         mAudioManager.abandonAudioFocus(this); | 
| 93         mMediaRouteController.removeUiListener(this); | 93         mMediaRouteController.removeUiListener(this); | 
| 94     } | 94     } | 
| 95 | 95 | 
| 96     public void show(PlayerState initialState) { | 96     public void show(PlayerState initialState) { | 
| 97         mMediaRouteController.addUiListener(this); | 97         mMediaRouteController.addUiListener(this); | 
| 98         // TODO(aberent): investigate why this is necessary, and whether we are 
     handling | 98         // TODO(aberent): investigate why this is necessary, and whether we are 
     handling | 
| 99         // it correctly. Also add code to restore it when Chrome is resumed. | 99         // it correctly. Also add code to restore it when Chrome is resumed. | 
| 100         mAudioManager.requestAudioFocus(this, AudioManager.USE_DEFAULT_STREAM_TY
     PE, | 100         mAudioManager.requestAudioFocus(this, AudioManager.USE_DEFAULT_STREAM_TY
     PE, | 
| 101                 AudioManager.AUDIOFOCUS_GAIN); | 101                 AudioManager.AUDIOFOCUS_GAIN); | 
| 102         Intent contentIntent = new Intent(mContext, ExpandedControllerActivity.c
     lass); | 102         Intent contentIntent = new Intent(mContext, ExpandedControllerActivity.c
     lass); | 
| 103         mNotificationBuilder = new MediaNotificationInfo.Builder() | 103         mNotificationBuilder = new MediaNotificationInfo.Builder() | 
| 104                 .setPaused(false) | 104                 .setPaused(false) | 
| 105                 .setPrivate(false) | 105                 .setPrivate(false) | 
| 106                 .setIcon(R.drawable.ic_notification_media_route) | 106                 .setIcon(R.drawable.ic_notification_media_route) | 
| 107                 .setContentIntent(contentIntent) | 107                 .setContentIntent(contentIntent) | 
| 108                 .setImage(mMediaRouteController.getPoster()) | 108                 .setLargeIcon(mMediaRouteController.getPoster()) | 
| 109                 .setId(R.id.remote_notification) | 109                 .setId(R.id.remote_notification) | 
| 110                 .setListener(this); | 110                 .setListener(this); | 
| 111         mState = initialState; | 111         mState = initialState; | 
| 112         updateNotification(); | 112         updateNotification(); | 
| 113         mIsShowing = true; | 113         mIsShowing = true; | 
| 114     } | 114     } | 
| 115 | 115 | 
| 116     public void setRouteController(MediaRouteController controller) { | 116     public void setRouteController(MediaRouteController controller) { | 
| 117         mMediaRouteController = controller; | 117         mMediaRouteController = controller; | 
| 118     } | 118     } | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
| 129             MediaNotificationManager.show(mContext, mNotificationBuilder.build()
     ); | 129             MediaNotificationManager.show(mContext, mNotificationBuilder.build()
     ); | 
| 130         } else { | 130         } else { | 
| 131             hide(); | 131             hide(); | 
| 132         } | 132         } | 
| 133     } | 133     } | 
| 134 | 134 | 
| 135     // TODO(aberent) at the moment this is only called from a test, but it shoul
     d be called if the | 135     // TODO(aberent) at the moment this is only called from a test, but it shoul
     d be called if the | 
| 136     // poster changes. | 136     // poster changes. | 
| 137     public void onPosterBitmapChanged() { | 137     public void onPosterBitmapChanged() { | 
| 138         if (mNotificationBuilder == null || mMediaRouteController == null) retur
     n; | 138         if (mNotificationBuilder == null || mMediaRouteController == null) retur
     n; | 
| 139         mNotificationBuilder.setImage(mMediaRouteController.getPoster()); | 139         mNotificationBuilder.setLargeIcon(mMediaRouteController.getPoster()); | 
| 140         updateNotification(); | 140         updateNotification(); | 
| 141     } | 141     } | 
| 142 | 142 | 
| 143     // MediaRouteController.UiListener implementation. | 143     // MediaRouteController.UiListener implementation. | 
| 144     @Override | 144     @Override | 
| 145     public void onPlaybackStateChanged(PlayerState newState) { | 145     public void onPlaybackStateChanged(PlayerState newState) { | 
| 146         mState = newState; | 146         mState = newState; | 
| 147         updateNotification(); | 147         updateNotification(); | 
| 148     } | 148     } | 
| 149 | 149 | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 203     @VisibleForTesting | 203     @VisibleForTesting | 
| 204     static CastNotificationControl getForTests() { | 204     static CastNotificationControl getForTests() { | 
| 205         return sInstance; | 205         return sInstance; | 
| 206     } | 206     } | 
| 207 | 207 | 
| 208     @VisibleForTesting | 208     @VisibleForTesting | 
| 209     boolean isShowingForTests() { | 209     boolean isShowingForTests() { | 
| 210         return mIsShowing; | 210         return mIsShowing; | 
| 211     } | 211     } | 
| 212 } | 212 } | 
| OLD | NEW | 
|---|