Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1599)

Unified Diff: chrome/browser/media/android/router/media_router_dialog_controller_android.h

Issue 1415103006: Non-Local Join for Media Router and Presentation API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Ready for Review Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698