From 2b9b2510dc0a6893a7e4a30723a2f0f1b0e88288 Mon Sep 17 00:00:00 2001 From: olly Date: Thu, 29 Mar 2018 05:20:58 -0700 Subject: [PATCH] Fix Javadoc generation + Javadoc ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=190916130 --- javadoc_combined.gradle | 32 ++++++++++--------- javadoc_library.gradle | 9 +++--- javadoc_util.gradle | 31 ++++++++++++++++++ .../exoplayer2/offline/DownloadManager.java | 6 ++-- .../ui/PlayerNotificationManager.java | 11 +++---- 5 files changed, 59 insertions(+), 30 deletions(-) create mode 100644 javadoc_util.gradle diff --git a/javadoc_combined.gradle b/javadoc_combined.gradle index 7e27f41c5e..901dc91544 100644 --- a/javadoc_combined.gradle +++ b/javadoc_combined.gradle @@ -11,6 +11,8 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +apply from: "${rootDir}/javadoc_util.gradle" + class CombinedJavadocPlugin implements Plugin { static final String TASK_NAME = "generateCombinedJavadoc" @@ -20,29 +22,35 @@ class CombinedJavadocPlugin implements Plugin { project.gradle.projectsEvaluated { Set libraryModules = getLibraryModules(project) if (!libraryModules.isEmpty()) { - String sdkDirectory = getSdkDirectory(libraryModules) project.task(TASK_NAME, type: Javadoc) { description = "Generates combined Javadoc." title = "ExoPlayer library" source = libraryModules.generateJavadoc.source - classpath = project.files(libraryModules.generateJavadoc.classpath) + classpath = project.files([]) destinationDir = project.file("$project.buildDir/docs/javadoc") options { - links "http://docs.oracle.com/javase/7/docs/api/" - linksOffline "https://developer.android.com/reference", - "${sdkDirectory}/docs/reference" + links "https://docs.oracle.com/javase/7/docs/api/", + "https://developer.android.com/reference" encoding = "UTF-8" } exclude "**/BuildConfig.java" exclude "**/R.java" - doLast { + doFirst { libraryModules.each { libraryModule -> - project.copy { - from "${libraryModule.projectDir}/src/main/javadoc" - into "${project.buildDir}/docs/javadoc" + libraryModule.android.libraryVariants.all { variant -> + def name = variant.buildType.name + if (name.equals("release")) { + classpath += + libraryModule.project.files( + variant.javaCompile.classpath.files, + libraryModule.project.android.getBootClasspath()) + } } } } + doLast { + project.javadocFixLinks() + } } } } @@ -56,12 +64,6 @@ class CombinedJavadocPlugin implements Plugin { } } - // Returns the Android SDK directory given a set of Android library modules. - private String getSdkDirectory(Set libraryModules) { - // We can retrieve the Android SDK directory from any module. - return libraryModules.iterator().next().android.sdkDirectory - } - } apply plugin: CombinedJavadocPlugin diff --git a/javadoc_library.gradle b/javadoc_library.gradle index f90131cc98..59c1e16515 100644 --- a/javadoc_library.gradle +++ b/javadoc_library.gradle @@ -11,6 +11,8 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +apply from: "${rootDir}/javadoc_util.gradle" + android.libraryVariants.all { variant -> def name = variant.buildType.name if (!name.equals("release")) { @@ -23,7 +25,7 @@ android.libraryVariants.all { variant -> options { links "http://docs.oracle.com/javase/7/docs/api/" linksOffline "https://developer.android.com/reference", - "${android.sdkDirectory}/docs/reference" + "${android.sdkDirectory}/docs/reference" encoding = "UTF-8" } exclude "**/BuildConfig.java" @@ -35,10 +37,7 @@ android.libraryVariants.all { variant -> project.android.getBootClasspath()) } doLast { - copy { - from "src/main/javadoc" - into "$buildDir/docs/javadoc" - } + project.javadocFixLinks() } } } diff --git a/javadoc_util.gradle b/javadoc_util.gradle new file mode 100644 index 0000000000..5e32e2dfc5 --- /dev/null +++ b/javadoc_util.gradle @@ -0,0 +1,31 @@ +// Copyright (C) 2018 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +ext.javadocFixLinks = { + // Fix external Android links to target the top frame. + def androidRoot = "https://developer.android.com/reference/" + def androidLink = "Transition diagram: * *
-     *                    -> canceled
-     * queued <-> started -> ended
-     *                    -> error
+     *                    -> canceled
+     * queued <-> started -> ended
+     *                    -> error
      * 
*/ @Retention(RetentionPolicy.SOURCE) diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java index abdf6c7934..fd33fb8d21 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java @@ -498,8 +498,8 @@ public class PlayerNotificationManager { } /** - * Sets whether the notification should be colorized (whether the notification color should be - * applied). + * Sets whether the notification should be colorized. When set, the color set with {@link + * setColor(int)} will be used as the background color for the notification. * *

See {@link NotificationCompat.Builder#setColorized(boolean)}. * @@ -527,14 +527,11 @@ public class PlayerNotificationManager { } /** - * Sets the color of the notification as a color value like for instance solid {@link - * Color#BLACK)}. When set to {@link Color#TRANSPARENT} and a large icon is provided the - * notification is colored with a color taken from the palette if the icon (when a media session - * token is provided). + * Sets the accent color of the notification. * *

See {@link NotificationCompat.Builder#setColor(int)}. * - * @param color The color. + * @param color The color, in ARGB integer form like the constants in {@link Color}. */ public final void setColor(int color) { if (this.color != color) {