Skip to content

Commit

Permalink
Android: Split out media router from chrome_java
Browse files Browse the repository at this point in the history
- Rename chrome/android/modules to chrome/android/features.
- Create a new media_router java target that includes everything under
  org.chromium.chrome.browser.media.router.*.
  - Move these new files into //chrome/android/features/media_router.
  - Creating separate strings and resources.
  - Add new TextAppearance (with existing values) for presubmit.
  - Split out media router's java tests and junit tests.
    - Add java tests to chrome_public_test_apk.
    - Add junit tests to buildbots.
  - Add media_router's java target to all apks.

Bug: 846440
Change-Id: I97b268da9184c3cea9315494112803c671f55b9a
Reviewed-on: https://chromium-review.googlesource.com/c/1481740
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Theresa <twellington@chromium.org>
Commit-Queue: Peter Wen <wnwen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#636024}
  • Loading branch information
Peter Wen authored and Commit Bot committed Feb 27, 2019
1 parent 68320b8 commit 9ca6f4d
Show file tree
Hide file tree
Showing 160 changed files with 673 additions and 215 deletions.
1 change: 1 addition & 0 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,7 @@ 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/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
"//content/shell/android:content_shell_test_apk",
"//third_party/custom_tabs_client:custom_tabs_client_example_apk",
Expand Down
10 changes: 7 additions & 3 deletions chrome/android/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ import("static_initializers.gni")
import("trichrome.gni")

if (modularize_ar) {
import("//chrome/android/modules/ar/ar_module_tmpl.gni")
import("//chrome/android/features/ar/ar_module_tmpl.gni")
}
if (modularize_vr) {
import("//chrome/android/modules/vr/vr_module_tmpl.gni")
import("//chrome/android/features/vr/vr_module_tmpl.gni")
}

manifest_package = "org.chromium.chrome"
Expand Down Expand Up @@ -119,7 +119,6 @@ android_resources("chrome_app_java_resources") {
"//third_party/android_deps:android_support_v7_appcompat_java",
"//third_party/android_deps:android_support_v7_gridlayout_java",
"//third_party/android_deps:android_support_v7_recyclerview_java",
"//third_party/android_media:android_media_resources",
]
custom_package = "org.chromium.chrome"
}
Expand Down Expand Up @@ -630,6 +629,7 @@ android_library("chrome_test_util_java") {
"//content/public/test/android:content_java_test_support",
"//net/android:net_java_test_support",
"//third_party/android_deps:android_support_v4_java",
"//third_party/android_media:android_media_resources",
"//third_party/android_support_test_runner:runner_java",
"//third_party/custom_tabs_client:custom_tabs_support_java",
"//third_party/espresso:espresso_all_java",
Expand Down Expand Up @@ -1350,6 +1350,7 @@ java_group("chrome_public_base_module_java") {
deps = [
":app_hooks_java",
":chrome_java",
"//chrome/android/features/media_router:java",
]
}

Expand Down Expand Up @@ -1526,6 +1527,7 @@ android_library("monochrome_java") {
"//android_webview/support_library:support_lib_glue_java",
"//base:base_java",
"//chrome/android:chrome_java",
"//chrome/android/features/media_router:java",
"//content/public/android:content_java",
]
java_files =
Expand Down Expand Up @@ -1624,6 +1626,7 @@ template("monochrome_public_apk_or_module_tmpl") {
"//base:base_java",
"//chrome/android:app_hooks_java",
"//chrome/android:chrome_java",
"//chrome/android/features/media_router:java",
]

add_unwind_tables_in_apk =
Expand Down Expand Up @@ -1769,6 +1772,7 @@ chrome_test_apk_tmpl("chrome_public_test_apk") {
deps = [
":chrome_test_apk_template_resources",
":chrome_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/profiling_host:profiling_host_javatests",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import("//build/config/android/rules.gni")
import("//build/config/locales.gni")
import("//chrome/android/modules/module_names_to_package_ids.gni")
import("//chrome/android/features/module_names_to_package_ids.gni")
import("//device/vr/buildflags/buildflags.gni")

assert(enable_arcore)
Expand All @@ -18,7 +18,7 @@ template("ar_module_tmpl") {
_manifest = "$target_gen_dir/$target_name/AndroidManifest.xml"
_manifest_target = "${target_name}__manifest"
jinja_template(_manifest_target) {
input = "//chrome/android/modules/ar/AndroidManifest.xml"
input = "//chrome/android/features/ar/AndroidManifest.xml"
output = _manifest
variables = [
"target_sdk_version=$android_sdk_version",
Expand Down
178 changes: 178 additions & 0 deletions chrome/android/features/media_router/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# 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("//chrome/common/features.gni")

android_library("java") {
deps = [
":media_router_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",
"//chrome/android:chrome_java",
"//services/media_session/public/cpp/android:media_session_java",
"//third_party/android_deps:android_support_compat_java",
"//third_party/android_deps:android_support_v7_appcompat_java",
"//third_party/android_deps:android_support_v7_mediarouter_java",
"//third_party/android_media:android_media_java",
]
java_files = [
"java/org/chromium/chrome/browser/media/router/BaseMediaRouteDialogManager.java",
"java/org/chromium/chrome/browser/media/router/CastRequestIdGenerator.java",
"java/org/chromium/chrome/browser/media/router/CastSessionUtil.java",
"java/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java",
"java/org/chromium/chrome/browser/media/router/ChromeMediaRouterDialogController.java",
"java/org/chromium/chrome/browser/media/router/ClientRecord.java",
"java/org/chromium/chrome/browser/media/router/DiscoveryCallback.java",
"java/org/chromium/chrome/browser/media/router/DiscoveryDelegate.java",
"java/org/chromium/chrome/browser/media/router/FlingingController.java",
"java/org/chromium/chrome/browser/media/router/FlingingControllerBridge.java",
"java/org/chromium/chrome/browser/media/router/MediaController.java",
"java/org/chromium/chrome/browser/media/router/MediaRoute.java",
"java/org/chromium/chrome/browser/media/router/MediaRouteChooserDialogManager.java",
"java/org/chromium/chrome/browser/media/router/MediaRouteControllerDialogManager.java",
"java/org/chromium/chrome/browser/media/router/MediaRouteDialogDelegate.java",
"java/org/chromium/chrome/browser/media/router/MediaRouteDialogManager.java",
"java/org/chromium/chrome/browser/media/router/MediaRouteManager.java",
"java/org/chromium/chrome/browser/media/router/MediaRouteProvider.java",
"java/org/chromium/chrome/browser/media/router/MediaSink.java",
"java/org/chromium/chrome/browser/media/router/MediaSource.java",
"java/org/chromium/chrome/browser/media/router/MediaStatusBridge.java",
"java/org/chromium/chrome/browser/media/router/MediaStatusObserver.java",
"java/org/chromium/chrome/browser/media/router/caf/BaseNotificationController.java",
"java/org/chromium/chrome/browser/media/router/caf/BaseSessionController.java",
"java/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java",
"java/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java",
"java/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java",
"java/org/chromium/chrome/browser/media/router/caf/CafNotificationController.java",
"java/org/chromium/chrome/browser/media/router/caf/CastMediaSource.java",
"java/org/chromium/chrome/browser/media/router/caf/CastOptionsProvider.java",
"java/org/chromium/chrome/browser/media/router/caf/CastSessionController.java",
"java/org/chromium/chrome/browser/media/router/caf/CastUtils.java",
"java/org/chromium/chrome/browser/media/router/caf/CreateRouteRequestInfo.java",
"java/org/chromium/chrome/browser/media/router/caf/remoting/CafExpandedControllerActivity.java",
"java/org/chromium/chrome/browser/media/router/caf/remoting/CafRemotingMediaRouteProvider.java",
"java/org/chromium/chrome/browser/media/router/caf/remoting/FlingingControllerAdapter.java",
"java/org/chromium/chrome/browser/media/router/caf/remoting/RemotingMediaSource.java",
"java/org/chromium/chrome/browser/media/router/caf/remoting/RemotingNotificationController.java",
"java/org/chromium/chrome/browser/media/router/caf/remoting/RemotingSessionController.java",
"java/org/chromium/chrome/browser/media/router/caf/remoting/StreamPositionExtrapolator.java",
]
}

android_library("test_java") {
testonly = true

java_files = [
"javatests/org/chromium/chrome/browser/media/router/MediaRouterIntegrationTest.java",
"javatests/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/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_support_test_runner:runner_java",
"//third_party/junit",
]
}

junit_binary("media_router_junit_tests") {
java_files = [
"junit/org/chromium/chrome/browser/media/router/ChromeMediaRouterRouteTest.java",
"junit/org/chromium/chrome/browser/media/router/ChromeMediaRouterSinkObservationTest.java",
"junit/org/chromium/chrome/browser/media/router/ChromeMediaRouterTestBase.java",
"junit/org/chromium/chrome/browser/media/router/DiscoveryCallbackTest.java",
"junit/org/chromium/chrome/browser/media/router/JSONTestUtils.java",
"junit/org/chromium/chrome/browser/media/router/TestUtils.java",
"junit/org/chromium/chrome/browser/media/router/caf/BaseSessionControllerTest.java",
"junit/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProviderTest.java",
"junit/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProviderTest.java",
"junit/org/chromium/chrome/browser/media/router/caf/CafMessageHandlerTest.java",
"junit/org/chromium/chrome/browser/media/router/caf/CastSessionControllerTest.java",
"junit/org/chromium/chrome/browser/media/router/caf/MediaRouterTestHelper.java",
"junit/org/chromium/chrome/browser/media/router/caf/ShadowCastContext.java",
"junit/org/chromium/chrome/browser/media/router/caf/ShadowCastMediaSource.java",
"junit/org/chromium/chrome/browser/media/router/caf/ShadowMediaRouter.java",
]

deps = [
":java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
"//chrome/android:chrome_junit_test_support",
]
}

# TODO(wnwen): Rename these to be more generic once https://crbug.com/935576 is fixed.
android_resources("media_router_resources") {
resource_dirs = [ "res" ]
deps = [
":media_router_strings_grd",
"//chrome/android:chrome_app_java_resources",
"//third_party/android_media:android_media_resources",
]
custom_package = "org.chromium.chrome.media.router"
}

java_strings_grd("media_router_strings_grd") {
defines = chrome_grit_defines
grd_file = "strings/android_chrome_media_router_strings.grd"
outputs = [
"values-am/android_chrome_media_router_strings.xml",
"values-ar/android_chrome_media_router_strings.xml",
"values-bg/android_chrome_media_router_strings.xml",
"values-ca/android_chrome_media_router_strings.xml",
"values-cs/android_chrome_media_router_strings.xml",
"values-da/android_chrome_media_router_strings.xml",
"values-de/android_chrome_media_router_strings.xml",
"values-el/android_chrome_media_router_strings.xml",
"values/android_chrome_media_router_strings.xml",
"values-en-rGB/android_chrome_media_router_strings.xml",
"values-es/android_chrome_media_router_strings.xml",
"values-es-rUS/android_chrome_media_router_strings.xml",
"values-fa/android_chrome_media_router_strings.xml",
"values-fi/android_chrome_media_router_strings.xml",
"values-tl/android_chrome_media_router_strings.xml",
"values-fr/android_chrome_media_router_strings.xml",
"values-hi/android_chrome_media_router_strings.xml",
"values-hr/android_chrome_media_router_strings.xml",
"values-hu/android_chrome_media_router_strings.xml",
"values-in/android_chrome_media_router_strings.xml",
"values-it/android_chrome_media_router_strings.xml",
"values-iw/android_chrome_media_router_strings.xml",
"values-ja/android_chrome_media_router_strings.xml",
"values-ko/android_chrome_media_router_strings.xml",
"values-lt/android_chrome_media_router_strings.xml",
"values-lv/android_chrome_media_router_strings.xml",
"values-nl/android_chrome_media_router_strings.xml",
"values-nb/android_chrome_media_router_strings.xml",
"values-pl/android_chrome_media_router_strings.xml",
"values-pt-rBR/android_chrome_media_router_strings.xml",
"values-pt-rPT/android_chrome_media_router_strings.xml",
"values-ro/android_chrome_media_router_strings.xml",
"values-ru/android_chrome_media_router_strings.xml",
"values-sk/android_chrome_media_router_strings.xml",
"values-sl/android_chrome_media_router_strings.xml",
"values-sr/android_chrome_media_router_strings.xml",
"values-sv/android_chrome_media_router_strings.xml",
"values-sw/android_chrome_media_router_strings.xml",
"values-th/android_chrome_media_router_strings.xml",
"values-tr/android_chrome_media_router_strings.xml",
"values-uk/android_chrome_media_router_strings.xml",
"values-vi/android_chrome_media_router_strings.xml",
"values-zh-rCN/android_chrome_media_router_strings.xml",
"values-zh-rTW/android_chrome_media_router_strings.xml",
]
}
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
* Shared code for {@link MediaRouteDialogManager} implementations.
*/
public abstract class BaseMediaRouteDialogManager implements MediaRouteDialogManager {

/**
* A helper class to handle the system visibility change caused by the dialog showing up.
* Call saveSystemVisibility() in onCreateDialog() of the DialogFragment and later
Expand All @@ -37,8 +36,8 @@ void saveSystemVisibility(Activity activity) {
// state so we can restore it.
FrameLayout decor = (FrameLayout) activity.getWindow().getDecorView();
mSystemVisibilityToRestore = decor.getSystemUiVisibility();
mWasFullscreenBeforeShowing = (
(mSystemVisibilityToRestore & View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) != 0);
mWasFullscreenBeforeShowing =
((mSystemVisibilityToRestore & View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) != 0);
}

void restoreSystemVisibility(Activity activity) {
Expand Down Expand Up @@ -71,19 +70,19 @@ public void openDialog() {

FragmentActivity currentActivity =
(FragmentActivity) ApplicationStatus.getLastTrackedFocusedActivity();
if (currentActivity == null) {
if (currentActivity == null) {
mDelegate.onDialogCancelled();
return;
}

FragmentManager fm = currentActivity.getSupportFragmentManager();
if (fm == null) {
if (fm == null) {
mDelegate.onDialogCancelled();
return;
}

mDialogFragment = openDialogInternal(fm);
if (mDialogFragment == null) {
if (mDialogFragment == null) {
mDelegate.onDialogCancelled();
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
*/
@JNINamespace("media_router")
public class ChromeMediaRouter implements MediaRouteManager {

private static final String TAG = "MediaRouter";
private static final int MIN_GOOGLE_PLAY_SERVICES_APK_VERSION = 12600000;

Expand Down Expand Up @@ -92,7 +91,7 @@ protected Map<String, MediaRouteProvider> getRouteIdsToProvidersForTest() {

@VisibleForTesting
protected Map<String, Map<MediaRouteProvider, List<MediaSink>>>
getSinksPerSourcePerProviderForTest() {
getSinksPerSourcePerProviderForTest() {
return mSinksPerSourcePerProvider;
}

Expand Down Expand Up @@ -152,9 +151,8 @@ public void onSinksReceived(
}

@Override
public void onRouteCreated(
String mediaRouteId, String mediaSinkId, int requestId, MediaRouteProvider provider,
boolean wasLaunched) {
public void onRouteCreated(String mediaRouteId, String mediaSinkId, int requestId,
MediaRouteProvider provider, boolean wasLaunched) {
mRouteIdsToProviders.put(mediaRouteId, provider);
if (mNativeMediaRouterAndroidBridge != 0) {
nativeOnRouteCreated(mNativeMediaRouterAndroidBridge, mediaRouteId, mediaSinkId,
Expand Down Expand Up @@ -275,18 +273,13 @@ public String getSinkName(String sourceUrn, int index) {
* @param requestId the id of the route creation request tracked by the native side.
*/
@CalledByNative
public void createRoute(
String sourceId,
String sinkId,
String presentationId,
String origin,
int tabId,
boolean isIncognito,
int requestId) {
public void createRoute(String sourceId, String sinkId, String presentationId, String origin,
int tabId, boolean isIncognito, int requestId) {
MediaRouteProvider provider = getProviderForSource(sourceId);
if (provider == null) {
onRouteRequestError("No provider supports createRoute with source: " + sourceId
+ " and sink: " + sinkId, requestId);
+ " and sink: " + sinkId,
requestId);
return;
}

Expand All @@ -306,11 +299,7 @@ public void createRoute(
*/
@CalledByNative
public void joinRoute(
String sourceId,
String presentationId,
String origin,
int tabId,
int requestId) {
String sourceId, String presentationId, String origin, int tabId, int requestId) {
MediaRouteProvider provider = getProviderForSource(sourceId);
if (provider == null) {
onRouteRequestError("Route not found.", requestId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
*/
@JNINamespace("media_router")
public class ChromeMediaRouterDialogController implements MediaRouteDialogDelegate {

private static final String MEDIA_ROUTE_CONTROLLER_DIALOG_FRAGMENT =
"android.support.v7.mediarouter:MediaRouteControllerDialogFragment";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
* An interface provided to DiscoveryCallback in order to receive sinks.
*/
public interface DiscoveryDelegate {

/**
* Called when a new information about sinks availability becomes known.
* @param sourceId The id of the source the sinks were found for.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
* Manages the dialog responsible for selecting a {@link MediaSink}.
*/
public class MediaRouteChooserDialogManager extends BaseMediaRouteDialogManager {

private static final String DIALOG_FRAGMENT_TAG =
"android.support.v7.mediarouter:MediaRouteChooserDialogFragment";

Expand Down
Loading

0 comments on commit 9ca6f4d

Please sign in to comment.