0

Move Media Router java code to //components.

//chrome/android/features/media_router is moved wholesale,
with the following exceptions:

* integration tests move to //chrome/android/javatests as
  they depend on Chrome.
* ChromeMediaRouterClient is moved to //chrome/android/java as
  it's specific to Chrome.

The unit tests are now part of components_junit_tests instead of
the standalone media_router_junit_tests.

Bug: 1057100
Skip-Translation-Screenshots-Check: True
Change-Id: I4ee0ee59ec1622fc12983f2c5d6964ec52d4ab04
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2389021
Commit-Queue: Evan Stade <estade@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Becca Hughes <beccahughes@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Auto-Submit: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#805923}
This commit is contained in:
Evan Stade
2020-09-10 22:00:06 +00:00
committed by Commit Bot
parent e9883749dc
commit ff2cc1b110
195 changed files with 410 additions and 477 deletions
BUILD.gn
chrome
components
BUILD.gn
media_router
browser
android
BUILD.gnDEPSOWNERS
java
res
src
strings
android_chrome_media_router_strings.grd
translations
android_chrome_media_router_strings_af.xtbandroid_chrome_media_router_strings_am.xtbandroid_chrome_media_router_strings_ar.xtbandroid_chrome_media_router_strings_as.xtbandroid_chrome_media_router_strings_az.xtbandroid_chrome_media_router_strings_be.xtbandroid_chrome_media_router_strings_bg.xtbandroid_chrome_media_router_strings_bn.xtbandroid_chrome_media_router_strings_bs.xtbandroid_chrome_media_router_strings_ca.xtbandroid_chrome_media_router_strings_cs.xtbandroid_chrome_media_router_strings_da.xtbandroid_chrome_media_router_strings_de.xtbandroid_chrome_media_router_strings_el.xtbandroid_chrome_media_router_strings_en-GB.xtbandroid_chrome_media_router_strings_es-419.xtbandroid_chrome_media_router_strings_es.xtbandroid_chrome_media_router_strings_et.xtbandroid_chrome_media_router_strings_eu.xtbandroid_chrome_media_router_strings_fa.xtbandroid_chrome_media_router_strings_fi.xtbandroid_chrome_media_router_strings_fil.xtbandroid_chrome_media_router_strings_fr-CA.xtbandroid_chrome_media_router_strings_fr.xtbandroid_chrome_media_router_strings_gl.xtbandroid_chrome_media_router_strings_gu.xtbandroid_chrome_media_router_strings_hi.xtbandroid_chrome_media_router_strings_hr.xtbandroid_chrome_media_router_strings_hu.xtbandroid_chrome_media_router_strings_hy.xtbandroid_chrome_media_router_strings_id.xtbandroid_chrome_media_router_strings_is.xtbandroid_chrome_media_router_strings_it.xtbandroid_chrome_media_router_strings_iw.xtbandroid_chrome_media_router_strings_ja.xtbandroid_chrome_media_router_strings_ka.xtbandroid_chrome_media_router_strings_kk.xtbandroid_chrome_media_router_strings_km.xtbandroid_chrome_media_router_strings_kn.xtbandroid_chrome_media_router_strings_ko.xtbandroid_chrome_media_router_strings_ky.xtbandroid_chrome_media_router_strings_lo.xtbandroid_chrome_media_router_strings_lt.xtbandroid_chrome_media_router_strings_lv.xtbandroid_chrome_media_router_strings_mk.xtbandroid_chrome_media_router_strings_ml.xtbandroid_chrome_media_router_strings_mn.xtbandroid_chrome_media_router_strings_mr.xtbandroid_chrome_media_router_strings_ms.xtbandroid_chrome_media_router_strings_my.xtbandroid_chrome_media_router_strings_ne.xtbandroid_chrome_media_router_strings_nl.xtbandroid_chrome_media_router_strings_no.xtbandroid_chrome_media_router_strings_or.xtbandroid_chrome_media_router_strings_pa.xtbandroid_chrome_media_router_strings_pl.xtbandroid_chrome_media_router_strings_pt-BR.xtbandroid_chrome_media_router_strings_pt-PT.xtbandroid_chrome_media_router_strings_ro.xtbandroid_chrome_media_router_strings_ru.xtbandroid_chrome_media_router_strings_si.xtbandroid_chrome_media_router_strings_sk.xtbandroid_chrome_media_router_strings_sl.xtbandroid_chrome_media_router_strings_sq.xtbandroid_chrome_media_router_strings_sr-Latn.xtbandroid_chrome_media_router_strings_sr.xtbandroid_chrome_media_router_strings_sv.xtbandroid_chrome_media_router_strings_sw.xtbandroid_chrome_media_router_strings_ta.xtbandroid_chrome_media_router_strings_te.xtbandroid_chrome_media_router_strings_th.xtbandroid_chrome_media_router_strings_tr.xtbandroid_chrome_media_router_strings_uk.xtbandroid_chrome_media_router_strings_ur.xtbandroid_chrome_media_router_strings_uz.xtbandroid_chrome_media_router_strings_vi.xtbandroid_chrome_media_router_strings_zh-CN.xtbandroid_chrome_media_router_strings_zh-HK.xtbandroid_chrome_media_router_strings_zh-TW.xtbandroid_chrome_media_router_strings_zu.xtb
javatests
src
org
chromium
components
junit
testing/buildbot
tools/gritsettings

@ -392,7 +392,6 @@ group("gn_all") {
"//chrome/android:chrome_junit_tests",
"//chrome/android:chrome_public_apk",
"//chrome/android:chrome_public_test_apk",
"//chrome/android/features/media_router:media_router_junit_tests",
"//chrome/browser/android/examples/custom_tabs_client:custom_tabs_client_example_apk",
"//chrome/browser/android/examples/partner_browser_customizations_provider:partner_browser_customizations_example_apk",
"//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",

@ -192,6 +192,7 @@ android_resources("chrome_app_java_resources") {
"//components/browser_ui/widget/android:java_resources",
"//components/find_in_page/android:java_resources",
"//components/javascript_dialogs/android:java_resources",
"//components/media_router/browser/android:java_resources",
"//components/messages/android:java_resources",
"//components/omnibox/browser:java_resources",
"//components/page_info/android:java_resources",
@ -386,6 +387,7 @@ android_library("chrome_java") {
"//components/language/android:language_bridge_java",
"//components/location/android:location_java",
"//components/location/android:settings_java",
"//components/media_router/browser/android:java",
"//components/messages/android:java",
"//components/minidump_uploader:minidump_uploader_java",
"//components/module_installer/android:module_installer_java",
@ -600,7 +602,6 @@ java_group("chrome_all_java") {
deps = [
":chrome_java",
"//chrome/android/features/keyboard_accessory:internal_java",
"//chrome/android/features/media_router:java",
"//chrome/android/modules/extra_icu/provider:java",
"//chrome/browser/download/internal/android:java",
"//chrome/browser/password_check:internal_java",
@ -638,7 +639,6 @@ group("jni_headers") {
":chrome_jni_headers",
"//chrome/android/features/autofill_assistant:jni_headers",
"//chrome/android/features/keyboard_accessory:jni_headers",
"//chrome/android/features/media_router:jni_headers",
"//chrome/browser/download/android:jni_headers",
"//chrome/browser/enterprise/util:jni_headers",
"//chrome/browser/flags:jni_headers",
@ -653,6 +653,7 @@ group("jni_headers") {
"//chrome/browser/ui/messages/android:jni_headers",
"//chrome/browser/util:jni_headers",
"//chrome/browser/webauthn/android:jni_headers",
"//components/media_router/browser/android:jni_headers",
]
}
@ -900,7 +901,6 @@ android_library("chrome_test_util_java") {
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTestRule.java",
"javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsTestUtils.java",
"javatests/src/org/chromium/chrome/browser/directactions/FakeDirectActionReporter.java",
"javatests/src/org/chromium/chrome/browser/media/RouterTestUtils.java",
"javatests/src/org/chromium/chrome/browser/webapps/TestFetchStorageCallback.java",
"javatests/src/org/chromium/chrome/browser/webapps/WebappActivityTestRule.java",
]
@ -1057,6 +1057,8 @@ android_library("chrome_test_java") {
"//components/infobars/core:infobar_enums_java",
"//components/javascript_dialogs/android:java",
"//components/location/android:location_java",
"//components/media_router/browser/android:java",
"//components/media_router/browser/android:test_support_java",
"//components/messages/android:java",
"//components/messages/android:javatests",
"//components/metrics:metrics_java",
@ -2338,7 +2340,6 @@ chrome_test_apk_tmpl("chrome_public_test_apk") {
":chrome_test_java",
"//chrome/android/features/autofill_assistant:test_java",
"//chrome/android/features/keyboard_accessory:test_java",
"//chrome/android/features/media_router:test_java",
"//chrome/android/webapk/libs/runtime_library:runtime_library_javatests",
"//chrome/android/webapk/shell_apk:shell_apk_javatests",
"//chrome/browser/download/android:download_java_tests",
@ -3030,6 +3031,7 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/login/ChromeHttpAuthHandler.java",
"java/src/org/chromium/chrome/browser/media/MediaCaptureDevicesDispatcherAndroid.java",
"java/src/org/chromium/chrome/browser/media/PictureInPictureActivity.java",
"java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouterClient.java",
"java/src/org/chromium/chrome/browser/metrics/BackgroundTaskMemoryMetricsEmitter.java",
"java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java",
"java/src/org/chromium/chrome/browser/metrics/PageLoadMetrics.java",

@ -45,6 +45,7 @@ include_rules = [
"+components/infobars/android",
"+components/invalidation",
"+components/javascript_dialogs/android",
"+components/media_router/browser/android",
"+components/page_info/android/java",
"+components/permissions/android/nfc",
"+components/policy",
@ -172,4 +173,4 @@ specific_include_rules = {
"FeedSurfaceCoordinator\.java": [
"+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java",
],
}
}

@ -906,6 +906,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/media/PictureInPictureActivity.java",
"java/src/org/chromium/chrome/browser/media/PictureInPictureController.java",
"java/src/org/chromium/chrome/browser/media/remote/RecordCastAction.java",
"java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouterClient.java",
"java/src/org/chromium/chrome/browser/media/ui/ChromeMediaNotificationControllerDelegate.java",
"java/src/org/chromium/chrome/browser/media/ui/ChromeMediaNotificationManager.java",
"java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java",

@ -259,6 +259,8 @@ chrome_test_java_sources = [
"javatests/src/org/chromium/chrome/browser/locale/LocaleManagerTest.java",
"javatests/src/org/chromium/chrome/browser/login/ChromeHttpAuthHandlerTest.java",
"javatests/src/org/chromium/chrome/browser/media/MediaLauncherActivityTest.java",
"javatests/src/org/chromium/chrome/browser/media/router/MediaRouterIntegrationTest.java",
"javatests/src/org/chromium/chrome/browser/media/router/RouterTestUtils.java",
"javatests/src/org/chromium/chrome/browser/media/ui/AutoplayMutedNotificationTest.java",
"javatests/src/org/chromium/chrome/browser/media/ui/MediaSessionTest.java",
"javatests/src/org/chromium/chrome/browser/media/ui/PictureInPictureControllerTest.java",

@ -387,16 +387,6 @@
android:supportsPictureInPicture="true"
android:theme="@style/Theme.Chromium.Activity">
</activity> # DIFF-ANCHOR: d706d96e
<activity # DIFF-ANCHOR: 8d26d599
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
android:excludeFromRecents="true"
android:hardwareAccelerated="true"
android:label="Chrome.CafExpandedControllerActivity"
android:launchMode="singleTask"
android:name="org.chromium.chrome.browser.media.router.caf.remoting.CafExpandedControllerActivity"
android:noHistory="true"
android:theme="@style/Theme.Chromium.Activity">
</activity> # DIFF-ANCHOR: 8d26d599
<activity # DIFF-ANCHOR: 9023f153
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode|density"
android:exported="false"
@ -609,6 +599,16 @@
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter> # DIFF-ANCHOR: 9c5197e9
</activity> # DIFF-ANCHOR: aea75380
<activity # DIFF-ANCHOR: 1d9b4077
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
android:excludeFromRecents="true"
android:hardwareAccelerated="true"
android:label="Chrome.CafExpandedControllerActivity"
android:launchMode="singleTask"
android:name="org.chromium.components.media_router.caf.remoting.CafExpandedControllerActivity"
android:noHistory="true"
android:theme="@style/Theme.Chromium.Activity">
</activity> # DIFF-ANCHOR: 1d9b4077
<activity-alias # DIFF-ANCHOR: 9da0e5b6
android:exported="true"
android:name="com.google.android.apps.chrome.IntentDispatcher"

@ -360,16 +360,6 @@
android:supportsPictureInPicture="true"
android:theme="@style/Theme.Chromium.Activity">
</activity> # DIFF-ANCHOR: d706d96e
<activity # DIFF-ANCHOR: 8d26d599
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
android:excludeFromRecents="true"
android:hardwareAccelerated="true"
android:label="Chrome.CafExpandedControllerActivity"
android:launchMode="singleTask"
android:name="org.chromium.chrome.browser.media.router.caf.remoting.CafExpandedControllerActivity"
android:noHistory="true"
android:theme="@style/Theme.Chromium.Activity">
</activity> # DIFF-ANCHOR: 8d26d599
<activity # DIFF-ANCHOR: 9023f153
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode|density"
android:exported="false"
@ -582,6 +572,16 @@
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter> # DIFF-ANCHOR: 9c5197e9
</activity> # DIFF-ANCHOR: aea75380
<activity # DIFF-ANCHOR: 1d9b4077
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
android:excludeFromRecents="true"
android:hardwareAccelerated="true"
android:label="Chrome.CafExpandedControllerActivity"
android:launchMode="singleTask"
android:name="org.chromium.components.media_router.caf.remoting.CafExpandedControllerActivity"
android:noHistory="true"
android:theme="@style/Theme.Chromium.Activity">
</activity> # DIFF-ANCHOR: 1d9b4077
<activity-alias # DIFF-ANCHOR: 9da0e5b6
android:exported="true"
android:name="com.google.android.apps.chrome.IntentDispatcher"

@ -1,191 +0,0 @@
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//build/config/locales.gni")
import("//chrome/common/features.gni")
android_library("java") {
resources_package = "org.chromium.chrome.media.router"
deps = [
":java_resources",
"$google_play_services_package:google_play_services_base_java",
"$google_play_services_package:google_play_services_basement_java",
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//base:jni_java",
"//chrome/android:chrome_java",
"//chrome/browser/tab:java",
"//components/browser_ui/media/android:java",
# For WebContents.
"//content/public/android:content_java",
"//services/media_session/public/cpp/android:media_session_java",
"//third_party/android_deps:android_support_v7_appcompat_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_collection_collection_java",
"//third_party/android_deps:androidx_core_core_java",
"//third_party/android_deps:androidx_mediarouter_mediarouter_java",
"//third_party/android_media:android_media_java",
]
sources = [
"java/src/org/chromium/chrome/browser/media/router/BaseMediaRouteDialogManager.java",
"java/src/org/chromium/chrome/browser/media/router/BrowserMediaRouter.java",
"java/src/org/chromium/chrome/browser/media/router/BrowserMediaRouterDialogController.java",
"java/src/org/chromium/chrome/browser/media/router/CastRequestIdGenerator.java",
"java/src/org/chromium/chrome/browser/media/router/CastSessionUtil.java",
"java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouterClient.java",
"java/src/org/chromium/chrome/browser/media/router/ClientRecord.java",
"java/src/org/chromium/chrome/browser/media/router/DiscoveryCallback.java",
"java/src/org/chromium/chrome/browser/media/router/DiscoveryDelegate.java",
"java/src/org/chromium/chrome/browser/media/router/FlingingController.java",
"java/src/org/chromium/chrome/browser/media/router/FlingingControllerBridge.java",
"java/src/org/chromium/chrome/browser/media/router/MediaController.java",
"java/src/org/chromium/chrome/browser/media/router/MediaRoute.java",
"java/src/org/chromium/chrome/browser/media/router/MediaRouteChooserDialogManager.java",
"java/src/org/chromium/chrome/browser/media/router/MediaRouteControllerDialogManager.java",
"java/src/org/chromium/chrome/browser/media/router/MediaRouteDialogDelegate.java",
"java/src/org/chromium/chrome/browser/media/router/MediaRouteDialogManager.java",
"java/src/org/chromium/chrome/browser/media/router/MediaRouteManager.java",
"java/src/org/chromium/chrome/browser/media/router/MediaRouteProvider.java",
"java/src/org/chromium/chrome/browser/media/router/MediaRouterClient.java",
"java/src/org/chromium/chrome/browser/media/router/MediaSink.java",
"java/src/org/chromium/chrome/browser/media/router/MediaSource.java",
"java/src/org/chromium/chrome/browser/media/router/MediaStatusBridge.java",
"java/src/org/chromium/chrome/browser/media/router/MediaStatusObserver.java",
"java/src/org/chromium/chrome/browser/media/router/caf/BaseNotificationController.java",
"java/src/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CafNotificationController.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CastOptionsProvider.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CastUtils.java",
"java/src/org/chromium/chrome/browser/media/router/caf/CreateRouteRequestInfo.java",
"java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafExpandedControllerActivity.java",
"java/src/org/chromium/chrome/browser/media/router/caf/remoting/CafRemotingMediaRouteProvider.java",
"java/src/org/chromium/chrome/browser/media/router/caf/remoting/FlingingControllerAdapter.java",
"java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java",
"java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingNotificationController.java",
"java/src/org/chromium/chrome/browser/media/router/caf/remoting/RemotingSessionController.java",
"java/src/org/chromium/chrome/browser/media/router/caf/remoting/StreamPositionExtrapolator.java",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
}
generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/chrome/browser/media/router/BrowserMediaRouter.java",
"java/src/org/chromium/chrome/browser/media/router/BrowserMediaRouterDialogController.java",
"java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouterClient.java",
"java/src/org/chromium/chrome/browser/media/router/FlingingControllerBridge.java",
"java/src/org/chromium/chrome/browser/media/router/MediaStatusBridge.java",
]
}
android_library("test_java") {
testonly = true
sources = [
"javatests/src/org/chromium/chrome/browser/media/router/MediaRouterIntegrationTest.java",
"javatests/src/org/chromium/chrome/browser/media/router/MockMediaRouteProvider.java",
]
deps = [
":java",
"//base:base_java",
"//base:base_java_test_support",
"//chrome/android:chrome_java",
"//chrome/android:chrome_test_util_java",
"//chrome/browser/flags:java",
"//chrome/test/android:chrome_java_test_support",
"//content/public/android:content_java",
"//content/public/test/android:content_java_test_support",
"//net/android:net_java_test_support",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_test_runner_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/hamcrest:hamcrest_java",
"//third_party/junit",
"//ui/android:ui_java_test_support",
]
}
junit_binary("media_router_junit_tests") {
sources = [
"junit/src/org/chromium/chrome/browser/media/router/BrowserMediaRouterRouteTest.java",
"junit/src/org/chromium/chrome/browser/media/router/BrowserMediaRouterSinkObservationTest.java",
"junit/src/org/chromium/chrome/browser/media/router/BrowserMediaRouterTestBase.java",
"junit/src/org/chromium/chrome/browser/media/router/DiscoveryCallbackTest.java",
"junit/src/org/chromium/chrome/browser/media/router/JSONTestUtils.java",
"junit/src/org/chromium/chrome/browser/media/router/TestUtils.java",
"junit/src/org/chromium/chrome/browser/media/router/caf/BaseSessionControllerTest.java",
"junit/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProviderTest.java",
"junit/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProviderTest.java",
"junit/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandlerTest.java",
"junit/src/org/chromium/chrome/browser/media/router/caf/CastSessionControllerTest.java",
"junit/src/org/chromium/chrome/browser/media/router/caf/MediaRouterTestHelper.java",
"junit/src/org/chromium/chrome/browser/media/router/caf/ShadowCastContext.java",
"junit/src/org/chromium/chrome/browser/media/router/caf/ShadowCastMediaSource.java",
"junit/src/org/chromium/chrome/browser/media/router/caf/ShadowMediaRouter.java",
]
deps = [
":java",
"$google_play_services_package:google_play_services_basement_java",
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
"//content/public/android:content_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_mediarouter_mediarouter_java",
]
}
android_resources("java_resources") {
sources = [
"java/res/drawable-hdpi/cast_playing_square.png",
"java/res/drawable-hdpi/ic_cast_dark_off.png",
"java/res/drawable-hdpi/ic_cast_dark_on.png",
"java/res/drawable-hdpi/ic_notification_media_route.png",
"java/res/drawable-mdpi/cast_playing_square.png",
"java/res/drawable-mdpi/ic_cast_dark_off.png",
"java/res/drawable-mdpi/ic_cast_dark_on.png",
"java/res/drawable-mdpi/ic_notification_media_route.png",
"java/res/drawable-xhdpi/cast_playing_square.png",
"java/res/drawable-xhdpi/ic_cast_dark_off.png",
"java/res/drawable-xhdpi/ic_cast_dark_on.png",
"java/res/drawable-xhdpi/ic_notification_media_route.png",
"java/res/drawable-xxhdpi/cast_playing_square.png",
"java/res/drawable-xxhdpi/ic_cast_dark_off.png",
"java/res/drawable-xxhdpi/ic_cast_dark_on.png",
"java/res/drawable-xxhdpi/ic_notification_media_route.png",
"java/res/drawable-xxxhdpi/cast_playing_square.png",
"java/res/drawable-xxxhdpi/ic_notification_media_route.png",
"java/res/drawable/ic_cast_dark_chrome.xml",
"java/res/layout/caf_controller_media_route_button.xml",
"java/res/layout/expanded_cast_controller.xml",
"java/res/values-v17/styles.xml",
]
deps = [
":java_strings_grd",
"//chrome/android:chrome_app_java_resources",
"//third_party/android_media:android_media_resources",
]
create_srcjar = false
}
java_strings_grd("java_strings_grd") {
defines = chrome_grit_defines
grd_file = "java/strings/android_chrome_media_router_strings.grd"
outputs = [ "values/android_chrome_media_router_strings.xml" ] + process_file_template(
android_bundle_locales_as_resources,
[ "values-{{source_name_part}}/android_chrome_media_router_strings.xml" ])
}

@ -718,7 +718,7 @@ by a child template that "extends" this file.
</intent-filter>
</activity>
<activity android:name="org.chromium.chrome.browser.media.router.caf.remoting.CafExpandedControllerActivity"
<activity android:name="org.chromium.components.media_router.caf.remoting.CafExpandedControllerActivity"
android:theme="@style/Theme.Chromium.Activity"
android:label="Chrome.CafExpandedControllerActivity"
android:hardwareAccelerated="true"

@ -30,15 +30,9 @@
<item type="id" name="translate_infobar_target_spinner" />
<item type="id" name="subresource_filter_infobar_toggle" />
<!-- Cast notification -->
<item type="id" name="remote_notification" />
<!-- Media playback notification -->
<item type="id" name="media_playback_notification" />
<!-- Presentation API notification -->
<item type="id" name="presentation_notification" />
<!-- Sync UI constants -->
<item type="id" name="passphrase_type_list" />

@ -13,6 +13,7 @@ import org.chromium.chrome.browser.media.ui.ChromeMediaNotificationManager;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabUtils;
import org.chromium.components.browser_ui.media.MediaNotificationInfo;
import org.chromium.components.media_router.MediaRouterClient;
import org.chromium.content_public.browser.WebContents;
/** Provides Chrome-specific behavior for Media Router. */

@ -0,0 +1 @@
file://components/media_router/browser/android/OWNERS

@ -27,9 +27,10 @@ import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.Restriction;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.media.RouterTestUtils;
import org.chromium.chrome.test.ChromeActivityTestRule;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.components.media_router.BrowserMediaRouter;
import org.chromium.components.media_router.MockMediaRouteProvider;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.test.util.ClickUtils;
import org.chromium.content_public.browser.test.util.Criteria;

@ -0,0 +1 @@
file://components/media_router/browser/android/OWNERS

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media;
package org.chromium.chrome.browser.media.router;
import android.app.Dialog;
import android.view.View;
@ -23,44 +23,41 @@ import java.util.ArrayList;
import java.util.concurrent.Callable;
/**
* Test utils shared by MediaRouter and MediaRemote.
* Test utils for MediaRouter.
*/
public class RouterTestUtils {
private static final String TAG = "RouterTestUtils";
public static View waitForRouteButton(
final ChromeActivity activity, final String chromecastName,
int maxTimeoutMs, int intervalMs) {
public static View waitForRouteButton(final ChromeActivity activity,
final String chromecastName, int maxTimeoutMs, int intervalMs) {
return waitForView(new Callable<View>() {
@Override
public View call() {
Dialog mediaRouteListDialog = getDialog(activity);
if (mediaRouteListDialog == null) {
Log.w(TAG, "Cannot find device selection dialog");
return null;
}
View mediaRouteList =
mediaRouteListDialog.findViewById(R.id.mr_chooser_list);
if (mediaRouteList == null) {
Log.w(TAG, "Cannot find device list");
return null;
}
ArrayList<View> routesWanted = new ArrayList<View>();
mediaRouteList.findViewsWithText(routesWanted, chromecastName,
View.FIND_VIEWS_WITH_TEXT);
if (routesWanted.size() == 0) {
Log.w(TAG, "Cannot find wanted device");
return null;
}
Log.i(TAG, "Found wanted device");
return routesWanted.get(0);
@Override
public View call() {
Dialog mediaRouteListDialog = getDialog(activity);
if (mediaRouteListDialog == null) {
Log.w(TAG, "Cannot find device selection dialog");
return null;
}
}, maxTimeoutMs, intervalMs);
View mediaRouteList = mediaRouteListDialog.findViewById(R.id.mr_chooser_list);
if (mediaRouteList == null) {
Log.w(TAG, "Cannot find device list");
return null;
}
ArrayList<View> routesWanted = new ArrayList<View>();
mediaRouteList.findViewsWithText(
routesWanted, chromecastName, View.FIND_VIEWS_WITH_TEXT);
if (routesWanted.size() == 0) {
Log.w(TAG, "Cannot find wanted device");
return null;
}
Log.i(TAG, "Found wanted device");
return routesWanted.get(0);
}
}, maxTimeoutMs, intervalMs);
}
public static Dialog waitForDialog(
final ChromeActivity activity,
int maxTimeoutMs, int intervalMs) {
final ChromeActivity activity, int maxTimeoutMs, int intervalMs) {
try {
CriteriaHelper.pollUiThread(() -> {
try {
@ -79,7 +76,8 @@ public class RouterTestUtils {
FragmentManager fm = activity.getSupportFragmentManager();
if (fm == null) return null;
return ((DialogFragment) fm.findFragmentByTag(
"android.support.v7.mediarouter:MediaRouteChooserDialogFragment")).getDialog();
"android.support.v7.mediarouter:MediaRouteChooserDialogFragment"))
.getDialog();
}
public static View waitForView(

@ -162,6 +162,7 @@ include_rules = [
"+components/lookalikes/core",
"+components/login",
"+components/media_message_center",
"+components/media_router/browser",
"+components/messages/android",
"+components/metal_util",
"+components/metrics",

@ -6,8 +6,8 @@
#include "base/android/jni_string.h"
#include "base/time/time.h"
#include "chrome/android/features/media_router/jni_headers/FlingingControllerBridge_jni.h"
#include "chrome/android/features/media_router/jni_headers/MediaStatusBridge_jni.h"
#include "components/media_router/browser/android/jni_headers/FlingingControllerBridge_jni.h"
#include "components/media_router/browser/android/jni_headers/MediaStatusBridge_jni.h"
namespace media_router {

@ -5,7 +5,7 @@
#include "chrome/browser/media/android/router/chrome_media_router_client.h"
#include "base/android/jni_android.h"
#include "chrome/android/features/media_router/jni_headers/ChromeMediaRouterClient_jni.h"
#include "chrome/android/chrome_jni_headers/ChromeMediaRouterClient_jni.h"
namespace media_router {

@ -6,9 +6,9 @@
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "chrome/android/features/media_router/jni_headers/BrowserMediaRouter_jni.h"
#include "chrome/browser/media/android/remote/flinging_controller_bridge.h"
#include "chrome/browser/media/android/router/media_router_android.h"
#include "components/media_router/browser/android/jni_headers/BrowserMediaRouter_jni.h"
#include "content/public/browser/web_contents.h"
#include "media/base/media_controller.h"

@ -12,10 +12,10 @@
#include "base/bind.h"
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/android/features/media_router/jni_headers/BrowserMediaRouterDialogController_jni.h"
#include "chrome/browser/media/android/router/media_router_android.h"
#include "chrome/browser/media/router/media_router.h"
#include "chrome/browser/media/router/media_router_factory.h"
#include "components/media_router/browser/android/jni_headers/BrowserMediaRouterDialogController_jni.h"
#include "components/media_router/common/media_source.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"

@ -4124,7 +4124,6 @@ test("unit_tests") {
"//chrome:chrome_android_core",
"//chrome/android:app_hooks_java",
"//chrome/android:chrome_java",
"//chrome/android/features/media_router:java",
"//chrome/browser/optimization_guide/android:native_j_unittests_jni_headers",
"//chrome/browser/optimization_guide/android:native_java_unittests",
"//chrome/browser/password_check/android:unit_tests",

@ -773,6 +773,7 @@ if (is_android) {
"//components/browser_ui/widget/android:junit",
"//components/embedder_support/android:components_embedder_support_junit_tests",
"//components/gcm_driver/android:components_gcm_driver_junit_tests",
"//components/media_router/browser/android:junit",
"//components/permissions/android:components_permissions_junit_tests",
"//components/policy/android:components_policy_junit_tests",
"//components/prefs/android:junit",

@ -0,0 +1,173 @@
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//build/config/locales.gni")
android_library("java") {
resources_package = "org.chromium.components.media_router"
deps = [
":java_resources",
"$google_play_services_package:google_play_services_base_java",
"$google_play_services_package:google_play_services_basement_java",
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//base:jni_java",
"//components/browser_ui/media/android:java",
"//content/public/android:content_java",
"//services/media_session/public/cpp/android:media_session_java",
"//third_party/android_deps:android_support_v7_appcompat_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_collection_collection_java",
"//third_party/android_deps:androidx_core_core_java",
"//third_party/android_deps:androidx_mediarouter_mediarouter_java",
"//third_party/android_media:android_media_java",
]
sources = [
"java/src/org/chromium/components/media_router/BaseMediaRouteDialogManager.java",
"java/src/org/chromium/components/media_router/BrowserMediaRouter.java",
"java/src/org/chromium/components/media_router/BrowserMediaRouterDialogController.java",
"java/src/org/chromium/components/media_router/CastRequestIdGenerator.java",
"java/src/org/chromium/components/media_router/CastSessionUtil.java",
"java/src/org/chromium/components/media_router/ClientRecord.java",
"java/src/org/chromium/components/media_router/DiscoveryCallback.java",
"java/src/org/chromium/components/media_router/DiscoveryDelegate.java",
"java/src/org/chromium/components/media_router/FlingingController.java",
"java/src/org/chromium/components/media_router/FlingingControllerBridge.java",
"java/src/org/chromium/components/media_router/MediaController.java",
"java/src/org/chromium/components/media_router/MediaRoute.java",
"java/src/org/chromium/components/media_router/MediaRouteChooserDialogManager.java",
"java/src/org/chromium/components/media_router/MediaRouteControllerDialogManager.java",
"java/src/org/chromium/components/media_router/MediaRouteDialogDelegate.java",
"java/src/org/chromium/components/media_router/MediaRouteDialogManager.java",
"java/src/org/chromium/components/media_router/MediaRouteManager.java",
"java/src/org/chromium/components/media_router/MediaRouteProvider.java",
"java/src/org/chromium/components/media_router/MediaRouterClient.java",
"java/src/org/chromium/components/media_router/MediaSink.java",
"java/src/org/chromium/components/media_router/MediaSource.java",
"java/src/org/chromium/components/media_router/MediaStatusBridge.java",
"java/src/org/chromium/components/media_router/MediaStatusObserver.java",
"java/src/org/chromium/components/media_router/caf/BaseNotificationController.java",
"java/src/org/chromium/components/media_router/caf/BaseSessionController.java",
"java/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProvider.java",
"java/src/org/chromium/components/media_router/caf/CafMediaRouteProvider.java",
"java/src/org/chromium/components/media_router/caf/CafMessageHandler.java",
"java/src/org/chromium/components/media_router/caf/CafNotificationController.java",
"java/src/org/chromium/components/media_router/caf/CastMediaSource.java",
"java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java",
"java/src/org/chromium/components/media_router/caf/CastSessionController.java",
"java/src/org/chromium/components/media_router/caf/CastUtils.java",
"java/src/org/chromium/components/media_router/caf/CreateRouteRequestInfo.java",
"java/src/org/chromium/components/media_router/caf/remoting/CafExpandedControllerActivity.java",
"java/src/org/chromium/components/media_router/caf/remoting/CafRemotingMediaRouteProvider.java",
"java/src/org/chromium/components/media_router/caf/remoting/FlingingControllerAdapter.java",
"java/src/org/chromium/components/media_router/caf/remoting/RemotingMediaSource.java",
"java/src/org/chromium/components/media_router/caf/remoting/RemotingNotificationController.java",
"java/src/org/chromium/components/media_router/caf/remoting/RemotingSessionController.java",
"java/src/org/chromium/components/media_router/caf/remoting/StreamPositionExtrapolator.java",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
}
generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/components/media_router/BrowserMediaRouter.java",
"java/src/org/chromium/components/media_router/BrowserMediaRouterDialogController.java",
"java/src/org/chromium/components/media_router/FlingingControllerBridge.java",
"java/src/org/chromium/components/media_router/MediaStatusBridge.java",
]
}
android_library("test_support_java") {
testonly = true
sources = [ "javatests/src/org/chromium/components/media_router/MockMediaRouteProvider.java" ]
deps = [
":java",
"//base:base_java",
"//content/public/android:content_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
]
}
java_library("junit") {
# Skip platform checks since Robolectric depends on requires_android targets.
bypass_platform_checks = true
testonly = true
sources = [
"junit/src/org/chromium/components/media_router/BrowserMediaRouterRouteTest.java",
"junit/src/org/chromium/components/media_router/BrowserMediaRouterSinkObservationTest.java",
"junit/src/org/chromium/components/media_router/BrowserMediaRouterTestBase.java",
"junit/src/org/chromium/components/media_router/DiscoveryCallbackTest.java",
"junit/src/org/chromium/components/media_router/JSONTestUtils.java",
"junit/src/org/chromium/components/media_router/TestUtils.java",
"junit/src/org/chromium/components/media_router/caf/BaseSessionControllerTest.java",
"junit/src/org/chromium/components/media_router/caf/CafBaseMediaRouteProviderTest.java",
"junit/src/org/chromium/components/media_router/caf/CafMediaRouteProviderTest.java",
"junit/src/org/chromium/components/media_router/caf/CafMessageHandlerTest.java",
"junit/src/org/chromium/components/media_router/caf/CastSessionControllerTest.java",
"junit/src/org/chromium/components/media_router/caf/MediaRouterTestHelper.java",
"junit/src/org/chromium/components/media_router/caf/ShadowCastContext.java",
"junit/src/org/chromium/components/media_router/caf/ShadowCastMediaSource.java",
"junit/src/org/chromium/components/media_router/caf/ShadowMediaRouter.java",
]
deps = [
":java",
"$google_play_services_package:google_play_services_basement_java",
"$google_play_services_package:google_play_services_cast_framework_java",
"$google_play_services_package:google_play_services_cast_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
"//content/public/android:content_java",
"//third_party/android_deps:androidx_annotation_annotation_java",
"//third_party/android_deps:androidx_mediarouter_mediarouter_java",
"//third_party/android_deps:robolectric_all_java",
"//third_party/junit",
"//third_party/mockito:mockito_java",
]
}
android_resources("java_resources") {
sources = [
"java/res/drawable-hdpi/cast_playing_square.png",
"java/res/drawable-hdpi/ic_cast_dark_off.png",
"java/res/drawable-hdpi/ic_cast_dark_on.png",
"java/res/drawable-hdpi/ic_notification_media_route.png",
"java/res/drawable-mdpi/cast_playing_square.png",
"java/res/drawable-mdpi/ic_cast_dark_off.png",
"java/res/drawable-mdpi/ic_cast_dark_on.png",
"java/res/drawable-mdpi/ic_notification_media_route.png",
"java/res/drawable-xhdpi/cast_playing_square.png",
"java/res/drawable-xhdpi/ic_cast_dark_off.png",
"java/res/drawable-xhdpi/ic_cast_dark_on.png",
"java/res/drawable-xhdpi/ic_notification_media_route.png",
"java/res/drawable-xxhdpi/cast_playing_square.png",
"java/res/drawable-xxhdpi/ic_cast_dark_off.png",
"java/res/drawable-xxhdpi/ic_cast_dark_on.png",
"java/res/drawable-xxhdpi/ic_notification_media_route.png",
"java/res/drawable-xxxhdpi/cast_playing_square.png",
"java/res/drawable-xxxhdpi/ic_notification_media_route.png",
"java/res/drawable/ic_cast_dark_chrome.xml",
"java/res/layout/caf_controller_media_route_button.xml",
"java/res/layout/expanded_cast_controller.xml",
"java/res/values/ids.xml",
"java/res/values/styles.xml",
]
deps = [
":java_strings_grd",
"//third_party/android_media:android_media_resources",
]
create_srcjar = false
}
java_strings_grd("java_strings_grd") {
grd_file = "java/strings/android_chrome_media_router_strings.grd"
outputs = [ "values/android_chrome_media_router_strings.xml" ] + process_file_template(
android_bundle_locales_as_resources,
[ "values-{{source_name_part}}/android_chrome_media_router_strings.xml" ])
}

@ -1,6 +1,7 @@
include_rules = [
"+chrome/browser/tab/java",
"+base/android",
"+components/browser_ui/media/android",
"-content/public/android",
"+content/public/android/java/src/org/chromium/content_public",
"+services/media_session/public/cpp/android",
]

@ -1,5 +1,6 @@
# primary reviewer
# primary reviewers
zqzhang@chromium.org
tguilbert@chromium.org
# backup reviewers
mfoltz@chromium.org

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<resources>
<!-- RemotePlayback API notification -->
<item type="id" name="remote_notification" />
<!-- Presentation API notification -->
<item type="id" name="presentation_notification" />
</resources>

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import android.app.Activity;
import android.view.View;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import android.annotation.SuppressLint;
@ -20,8 +20,8 @@ import org.chromium.base.SysUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.chrome.browser.media.router.caf.CafMediaRouteProvider;
import org.chromium.chrome.browser.media.router.caf.remoting.CafRemotingMediaRouteProvider;
import org.chromium.components.media_router.caf.CafMediaRouteProvider;
import org.chromium.components.media_router.caf.remoting.CafRemotingMediaRouteProvider;
import org.chromium.content_public.browser.WebContents;
import java.util.ArrayList;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import androidx.mediarouter.app.MediaRouteChooserDialogFragment;
import androidx.mediarouter.app.MediaRouteControllerDialogFragment;
@ -11,8 +11,8 @@ import androidx.mediarouter.media.MediaRouteSelector;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.chrome.browser.media.router.caf.CastMediaSource;
import org.chromium.chrome.browser.media.router.caf.remoting.RemotingMediaSource;
import org.chromium.components.media_router.caf.CastMediaSource;
import org.chromium.components.media_router.caf.remoting.RemotingMediaSource;
/**
* Implements the JNI interface called from the C++ Media Router dialog controller implementation

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
/**
* Returns a request id in a range that is considered fairly unique. These request ids are used to

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import com.google.android.gms.cast.CastDevice;
import com.google.android.gms.cast.RemoteMediaPlayer;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import java.util.ArrayList;
import java.util.List;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import androidx.mediarouter.media.MediaRouteSelector;
import androidx.mediarouter.media.MediaRouter;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import java.util.List;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
/**
* Interface that groups all the necessary hooks to control media being flung to a Cast device,

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
/**
* Generic interface used to control the playback of media content.

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
/**
* Contains all the info about the media route created by any {@link MediaRouteProvider}.

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import android.content.Context;
import android.content.DialogInterface;
@ -19,8 +19,6 @@ import androidx.mediarouter.app.MediaRouteChooserDialogFragment;
import androidx.mediarouter.media.MediaRouteSelector;
import androidx.mediarouter.media.MediaRouter;
import org.chromium.chrome.media.router.R;
/**
* Manages the dialog responsible for selecting a {@link MediaSink}.
*/

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import android.content.Context;
import android.content.DialogInterface;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
/**
* An interface providing callbacks for {@link MediaRouteDialogManager}.

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import androidx.mediarouter.app.MediaRouteChooserDialog;
import androidx.mediarouter.app.MediaRouteControllerDialog;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import androidx.annotation.Nullable;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import androidx.annotation.Nullable;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import android.annotation.SuppressLint;
import android.content.Intent;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import androidx.annotation.Nullable;
import androidx.mediarouter.media.MediaRouter;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import androidx.mediarouter.media.MediaRouteSelector;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
import com.google.android.gms.cast.MediaInfo;
import com.google.android.gms.cast.MediaMetadata;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router;
package org.chromium.components.media_router;
/**
* Interface to subscribe to MediaStatus updates.

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import android.content.Intent;
@ -10,11 +10,11 @@ import com.google.android.gms.cast.CastDevice;
import com.google.android.gms.cast.MediaStatus;
import com.google.android.gms.cast.framework.media.RemoteMediaClient;
import org.chromium.chrome.browser.media.router.MediaRouterClient;
import org.chromium.chrome.media.router.R;
import org.chromium.components.browser_ui.media.MediaNotificationInfo;
import org.chromium.components.browser_ui.media.MediaNotificationListener;
import org.chromium.components.browser_ui.media.MediaNotificationManager;
import org.chromium.components.media_router.MediaRouterClient;
import org.chromium.components.media_router.R;
import org.chromium.services.media_session.MediaMetadata;
/** Base controller for updating media notification for Casting and MediaFling. */

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import androidx.annotation.Nullable;
@ -11,10 +11,10 @@ import com.google.android.gms.cast.framework.CastSession;
import com.google.android.gms.cast.framework.media.RemoteMediaClient;
import org.chromium.base.Log;
import org.chromium.chrome.browser.media.router.CastSessionUtil;
import org.chromium.chrome.browser.media.router.FlingingController;
import org.chromium.chrome.browser.media.router.MediaSink;
import org.chromium.chrome.browser.media.router.MediaSource;
import org.chromium.components.media_router.CastSessionUtil;
import org.chromium.components.media_router.FlingingController;
import org.chromium.components.media_router.MediaSink;
import org.chromium.components.media_router.MediaSource;
import java.util.ArrayList;
import java.util.List;
@ -215,5 +215,7 @@ public abstract class BaseSessionController {
}
}
private interface NotifyCallbackAction { void notify(Callback callback); }
private interface NotifyCallbackAction {
void notify(Callback callback);
}
}

@ -1,13 +1,13 @@
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import android.os.Handler;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.mediarouter.media.MediaRouteSelector;
import androidx.mediarouter.media.MediaRouter;
import androidx.mediarouter.media.MediaRouter.RouteInfo;
@ -16,14 +16,14 @@ import com.google.android.gms.cast.framework.CastSession;
import com.google.android.gms.cast.framework.SessionManagerListener;
import org.chromium.base.Log;
import org.chromium.chrome.browser.media.router.DiscoveryCallback;
import org.chromium.chrome.browser.media.router.DiscoveryDelegate;
import org.chromium.chrome.browser.media.router.FlingingController;
import org.chromium.chrome.browser.media.router.MediaRoute;
import org.chromium.chrome.browser.media.router.MediaRouteManager;
import org.chromium.chrome.browser.media.router.MediaRouteProvider;
import org.chromium.chrome.browser.media.router.MediaSink;
import org.chromium.chrome.browser.media.router.MediaSource;
import org.chromium.components.media_router.DiscoveryCallback;
import org.chromium.components.media_router.DiscoveryDelegate;
import org.chromium.components.media_router.FlingingController;
import org.chromium.components.media_router.MediaRoute;
import org.chromium.components.media_router.MediaRouteManager;
import org.chromium.components.media_router.MediaRouteProvider;
import org.chromium.components.media_router.MediaSink;
import org.chromium.components.media_router.MediaSource;
import java.util.ArrayList;
import java.util.Collections;
@ -45,7 +45,6 @@ public abstract class CafBaseMediaRouteProvider
protected final MediaRouteManager mManager;
protected final Map<String, DiscoveryCallback> mDiscoveryCallbacks =
new HashMap<String, DiscoveryCallback>();
@VisibleForTesting
protected final Map<String, MediaRoute> mRoutes = new HashMap<String, MediaRoute>();
protected Handler mHandler = new Handler();

@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import static org.chromium.chrome.browser.media.router.caf.CastUtils.isSameOrigin;
import static org.chromium.components.media_router.caf.CastUtils.isSameOrigin;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@ -14,13 +14,13 @@ import androidx.mediarouter.media.MediaRouter;
import com.google.android.gms.cast.framework.CastSession;
import org.chromium.base.Log;
import org.chromium.chrome.browser.media.router.BrowserMediaRouter;
import org.chromium.chrome.browser.media.router.ClientRecord;
import org.chromium.chrome.browser.media.router.MediaRoute;
import org.chromium.chrome.browser.media.router.MediaRouteManager;
import org.chromium.chrome.browser.media.router.MediaRouteProvider;
import org.chromium.chrome.browser.media.router.MediaSink;
import org.chromium.chrome.browser.media.router.MediaSource;
import org.chromium.components.media_router.BrowserMediaRouter;
import org.chromium.components.media_router.ClientRecord;
import org.chromium.components.media_router.MediaRoute;
import org.chromium.components.media_router.MediaRouteManager;
import org.chromium.components.media_router.MediaRouteProvider;
import org.chromium.components.media_router.MediaSink;
import org.chromium.components.media_router.MediaSource;
import java.util.HashMap;
import java.util.Map;

@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import static org.chromium.chrome.browser.media.router.caf.CastUtils.isSameOrigin;
import static org.chromium.components.media_router.caf.CastUtils.isSameOrigin;
import android.os.Handler;
import android.text.TextUtils;
@ -22,10 +22,10 @@ import org.json.JSONException;
import org.json.JSONObject;
import org.chromium.base.Log;
import org.chromium.chrome.browser.media.router.CastRequestIdGenerator;
import org.chromium.chrome.browser.media.router.CastSessionUtil;
import org.chromium.chrome.browser.media.router.ClientRecord;
import org.chromium.chrome.browser.media.router.MediaSink;
import org.chromium.components.media_router.CastRequestIdGenerator;
import org.chromium.components.media_router.CastSessionUtil;
import org.chromium.components.media_router.ClientRecord;
import org.chromium.components.media_router.MediaSink;
import java.io.IOException;
import java.util.ArrayDeque;

@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import android.content.Intent;
import org.chromium.chrome.media.router.R;
import org.chromium.components.browser_ui.media.MediaNotificationUma;
import org.chromium.components.media_router.R;
/** NotificationController implementation for presentation. */
public class CafNotificationController extends BaseNotificationController {

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import android.net.Uri;
@ -11,7 +11,7 @@ import androidx.mediarouter.media.MediaRouteSelector;
import com.google.android.gms.cast.CastMediaControlIntent;
import org.chromium.chrome.browser.media.router.MediaSource;
import org.chromium.components.media_router.MediaSource;
import java.util.Arrays;
import java.util.List;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import android.content.Context;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import com.google.android.gms.cast.framework.CastContext;
@ -24,8 +24,9 @@ public class CastUtils {
* @return True if originA and originB represent the same origin, false otherwise.
*/
public static final boolean isSameOrigin(String originA, String originB) {
if (originA == null || originA.isEmpty() || originB == null || originB.isEmpty())
if (originA == null || originA.isEmpty() || originB == null || originB.isEmpty()) {
return false;
}
return originA.equals(originB);
}
}

@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf;
package org.chromium.components.media_router.caf;
import androidx.mediarouter.media.MediaRouter;
import org.chromium.chrome.browser.media.router.MediaSink;
import org.chromium.chrome.browser.media.router.MediaSource;
import org.chromium.components.media_router.MediaSink;
import org.chromium.components.media_router.MediaSource;
/** The information of create route requests. */
public class CreateRouteRequestInfo {

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf.remoting;
package org.chromium.components.media_router.caf.remoting;
import android.graphics.Color;
import android.os.Bundle;
@ -17,9 +17,9 @@ import android.widget.TextView;
import androidx.fragment.app.FragmentActivity;
import androidx.mediarouter.app.MediaRouteButton;
import org.chromium.chrome.browser.media.router.caf.BaseSessionController;
import org.chromium.chrome.media.router.R;
import org.chromium.components.browser_ui.media.MediaNotificationUma;
import org.chromium.components.media_router.R;
import org.chromium.components.media_router.caf.BaseSessionController;
import org.chromium.third_party.android.media.MediaController;
/**

@ -2,19 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf.remoting;
package org.chromium.components.media_router.caf.remoting;
import androidx.annotation.Nullable;
import androidx.mediarouter.media.MediaRouter;
import org.chromium.base.Log;
import org.chromium.chrome.browser.media.router.BrowserMediaRouter;
import org.chromium.chrome.browser.media.router.FlingingController;
import org.chromium.chrome.browser.media.router.MediaRouteManager;
import org.chromium.chrome.browser.media.router.MediaRouteProvider;
import org.chromium.chrome.browser.media.router.MediaSource;
import org.chromium.chrome.browser.media.router.caf.BaseSessionController;
import org.chromium.chrome.browser.media.router.caf.CafBaseMediaRouteProvider;
import org.chromium.components.media_router.BrowserMediaRouter;
import org.chromium.components.media_router.FlingingController;
import org.chromium.components.media_router.MediaRouteManager;
import org.chromium.components.media_router.MediaRouteProvider;
import org.chromium.components.media_router.MediaSource;
import org.chromium.components.media_router.caf.BaseSessionController;
import org.chromium.components.media_router.caf.CafBaseMediaRouteProvider;
/** A {@link MediaRouteProvider} implementation for remoting, using Cast v3 API. */
public class CafRemotingMediaRouteProvider extends CafBaseMediaRouteProvider {

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf.remoting;
package org.chromium.components.media_router.caf.remoting;
import com.google.android.gms.cast.MediaInfo;
import com.google.android.gms.cast.MediaStatus;
@ -10,10 +10,10 @@ import com.google.android.gms.cast.framework.media.RemoteMediaClient;
import com.google.android.gms.common.api.Result;
import org.chromium.base.Log;
import org.chromium.chrome.browser.media.router.FlingingController;
import org.chromium.chrome.browser.media.router.MediaController;
import org.chromium.chrome.browser.media.router.MediaStatusBridge;
import org.chromium.chrome.browser.media.router.MediaStatusObserver;
import org.chromium.components.media_router.FlingingController;
import org.chromium.components.media_router.MediaController;
import org.chromium.components.media_router.MediaStatusBridge;
import org.chromium.components.media_router.MediaStatusObserver;
/** Adapter class for bridging {@link RemoteMediaClient} and {@link FlingController}. */
public class FlingingControllerAdapter implements FlingingController, MediaController {

@ -1,7 +1,7 @@
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf.remoting;
package org.chromium.components.media_router.caf.remoting;
import android.content.Context;
import android.content.pm.ApplicationInfo;
@ -16,7 +16,7 @@ import com.google.android.gms.cast.CastMediaControlIntent;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.chrome.browser.media.router.MediaSource;
import org.chromium.components.media_router.MediaSource;
import java.io.UnsupportedEncodingException;

@ -2,15 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf.remoting;
package org.chromium.components.media_router.caf.remoting;
import android.content.Intent;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.browser.media.router.caf.BaseNotificationController;
import org.chromium.chrome.browser.media.router.caf.BaseSessionController;
import org.chromium.chrome.media.router.R;
import org.chromium.components.browser_ui.media.MediaNotificationUma;
import org.chromium.components.media_router.R;
import org.chromium.components.media_router.caf.BaseNotificationController;
import org.chromium.components.media_router.caf.BaseSessionController;
/** NotificationController implementation for remoting. */
public class RemotingNotificationController extends BaseNotificationController {

@ -2,15 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf.remoting;
package org.chromium.components.media_router.caf.remoting;
import com.google.android.gms.cast.framework.CastSession;
import org.chromium.base.Log;
import org.chromium.chrome.browser.media.router.CastSessionUtil;
import org.chromium.chrome.browser.media.router.caf.BaseNotificationController;
import org.chromium.chrome.browser.media.router.caf.BaseSessionController;
import org.chromium.chrome.browser.media.router.caf.CafBaseMediaRouteProvider;
import org.chromium.components.media_router.CastSessionUtil;
import org.chromium.components.media_router.caf.BaseNotificationController;
import org.chromium.components.media_router.caf.BaseSessionController;
import org.chromium.components.media_router.caf.CafBaseMediaRouteProvider;
import java.lang.ref.WeakReference;

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.media.router.caf.remoting;
package org.chromium.components.media_router.caf.remoting;
/**
* Class for extrapolating current playback position. The class occasionally receives updated

Some files were not shown because too many files have changed in this diff Show More