Chromium Code Reviews| Index: chrome/browser/media/android/router/media_router_dialog_controller_android.h |
| diff --git a/chrome/browser/media/android/router/media_router_dialog_controller_android.h b/chrome/browser/media/android/router/media_router_dialog_controller_android.h |
| index cbd5928ad93966e06c240297012dd53ff9544eea..fe26b4acdd213aa80b662c095f0143355261dc4f 100644 |
| --- a/chrome/browser/media/android/router/media_router_dialog_controller_android.h |
| +++ b/chrome/browser/media/android/router/media_router_dialog_controller_android.h |
| @@ -19,8 +19,7 @@ namespace media_router { |
| // Android implementation of the MediaRouterDialogController. |
| class MediaRouterDialogControllerAndroid |
| : public content::WebContentsUserData<MediaRouterDialogControllerAndroid>, |
| - public MediaRouterDialogController, |
| - public MediaRoutesObserver { |
| + public MediaRouterDialogController { |
| public: |
| ~MediaRouterDialogControllerAndroid() override; |
| @@ -52,11 +51,33 @@ class MediaRouterDialogControllerAndroid |
| void CloseMediaRouterDialog() override; |
| bool IsShowingMediaRouterDialog() const override; |
| - // MediaRoutesObserver: |
| - void OnRoutesUpdated(const std::vector<MediaRoute>& routes) override; |
| + class UIMediaRoutesObserver : public MediaRoutesObserver { |
| + public: |
| + using RoutesUpdatedCallback = |
| + base::Callback<void(const std::vector<MediaRoute>&, |
| + const std::vector<MediaRoute::Id>&)>; |
| + UIMediaRoutesObserver(MediaRouter* router, const MediaSource::Id source_id, |
| + const RoutesUpdatedCallback& callback); |
| + ~UIMediaRoutesObserver() override; |
| + |
| + // MediaRoutesObserver |
| + void OnRoutesUpdated( |
| + const std::vector<MediaRoute>& routes, |
| + const std::vector<MediaRoute::Id>& joinable_route_ids) override; |
| + |
| + private: |
| + // Callback to the owning MediaRouterUI instance. |
|
whywhat
2015/11/26 14:43:04
We don't have MediaRouterUI on Android.
matt.boetger
2015/12/01 01:26:55
Reverting.
|
| + RoutesUpdatedCallback callback_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(UIMediaRoutesObserver); |
| + }; |
| void CancelPresentationRequest(); |
| + void OnRoutesUpdated( |
| + const std::vector<MediaRoute>& routes, |
| + const std::vector<MediaRoute::Id>& joinable_route_ids); |
| + |
| base::android::ScopedJavaGlobalRef<jobject> java_dialog_controller_; |
| // Null if no routes or more than one route exist. If there's only one route, |
| @@ -64,6 +85,12 @@ class MediaRouterDialogControllerAndroid |
| // vs. the route chooser one. |
| scoped_ptr<MediaRoute> single_existing_route_; |
| + // The routes_observer_ only needs to be active when the dialog is open. |
| + scoped_ptr<MediaRoutesObserver> routes_observer_; |
| + |
| + // Pointer to the MediaRouter for this instance's BrowserContext. |
| + MediaRouter* router_; |
|
imcheng
2015/11/26 00:49:45
MediaRouter* const router_;
matt.boetger
2015/12/01 01:26:55
Reverting.
|
| + |
| DISALLOW_COPY_AND_ASSIGN(MediaRouterDialogControllerAndroid); |
| }; |