Merge "leanback: remove deprecated app.MediaControllerGlue" into oc-mr1-dev
diff --git a/buildSrc/src/main/java/android/support/LibraryVersions.java b/buildSrc/src/main/java/android/support/LibraryVersions.java
index b641ce2..dbc9da6 100644
--- a/buildSrc/src/main/java/android/support/LibraryVersions.java
+++ b/buildSrc/src/main/java/android/support/LibraryVersions.java
@@ -48,7 +48,7 @@
/**
* Version code for Lifecycle libs that are required by the support library
*/
- public static final Version LIFECYCLES_CORE = new Version("1.0.0");
+ public static final Version LIFECYCLES_CORE = new Version("1.0.1");
/**
* Version code for Lifecycle runtime libs that are required by the support library
diff --git a/v17/leanback/api/current.txt b/v17/leanback/api/current.txt
index 05fcdb3..00e764b 100644
--- a/v17/leanback/api/current.txt
+++ b/v17/leanback/api/current.txt
@@ -1136,7 +1136,7 @@
method public void play();
}
- public abstract class MediaControllerGlue extends android.support.v17.leanback.media.PlaybackControlGlue {
+ public abstract deprecated class MediaControllerGlue extends android.support.v17.leanback.media.PlaybackControlGlue {
ctor public MediaControllerGlue(android.content.Context, int[], int[]);
method public void attachToMediaController(android.support.v4.media.session.MediaControllerCompat);
method public void detach();
@@ -1294,7 +1294,6 @@
method protected java.util.List<android.support.v17.leanback.media.PlaybackGlue.PlayerCallback> getPlayerCallbacks();
method public boolean isPlaying();
method public boolean isPrepared();
- method public deprecated boolean isReadyForPlayback();
method public void next();
method protected void onAttachedToHost(android.support.v17.leanback.media.PlaybackGlueHost);
method protected void onDetachedFromHost();
@@ -1308,7 +1307,6 @@
method public void previous();
method public void removePlayerCallback(android.support.v17.leanback.media.PlaybackGlue.PlayerCallback);
method public final void setHost(android.support.v17.leanback.media.PlaybackGlueHost);
- method public deprecated void setPlayerCallback(android.support.v17.leanback.media.PlaybackGlue.PlayerCallback);
}
public static abstract class PlaybackGlue.PlayerCallback {
@@ -1316,7 +1314,6 @@
method public void onPlayCompleted(android.support.v17.leanback.media.PlaybackGlue);
method public void onPlayStateChanged(android.support.v17.leanback.media.PlaybackGlue);
method public void onPreparedStateChanged(android.support.v17.leanback.media.PlaybackGlue);
- method public deprecated void onReadyForPlayback();
}
public abstract class PlaybackGlueHost {
diff --git a/v17/leanback/src/android/support/v17/leanback/app/package-info.java b/v17/leanback/src/android/support/v17/leanback/app/package-info.java
index 852a007..f82570e 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/package-info.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/package-info.java
@@ -13,8 +13,7 @@
*/
/**
- * <p>Support classes providing high level Leanback user interface building blocks:
- * fragments and helpers.</p>
+ * <p>Support classes providing high level Leanback user interface building blocks.</p>
* <p>
* Leanback fragments are available both as platform fragments (subclassed from
* {@link android.app.Fragment android.app.Fragment}) and as support fragments (subclassed from
@@ -22,29 +21,37 @@
* commonly used leanback fragments are described here.
* </p>
* <p>
- * A {@link android.support.v17.leanback.app.BrowseFragment} includes an optional “fastlane”
+ * A {@link android.support.v17.leanback.app.BrowseFragment} by default operates in the "row" mode.
+ * It includes an optional “fastlane”
* navigation side panel and a list of rows, with one-to-one correspondance between each header
* in the fastlane and a row. The application supplies the
* {@link android.support.v17.leanback.widget.ObjectAdapter} containing the list of
* rows and a {@link android.support.v17.leanback.widget.PresenterSelector} of row presenters.
* </p>
* <p>
+ * A {@link android.support.v17.leanback.app.BrowseFragment} also works in a "page" mode when
+ * each row of fastlane is mapped to a fragment that the app registers in
+ * {@link android.support.v17.leanback.app.BrowseFragment#getMainFragmentRegistry()}.
+ * </p>
+ * <p>
* A {@link android.support.v17.leanback.app.DetailsFragment} will typically consist of a large
* overview of an item at the top,
* some actions that a user can perform, and possibly rows of additional or related items.
* The content for this fragment is specified in the same way as for the BrowseFragment, with the
* convention that the first element in the ObjectAdapter corresponds to the overview row.
* The {@link android.support.v17.leanback.widget.DetailsOverviewRow} and
- * {@link android.support.v17.leanback.widget.DetailsOverviewRowPresenter} provide a default template
- * for this row.
+ * {@link android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter} provide a
+ * default template for this row.
* </p>
* <p>
- * A {@link android.support.v17.leanback.app.PlaybackOverlayFragment} implements standard playback
- * transport controls with a Leanback
- * look and feel. It is recommended to use an instance of the
- * {@link android.support.v17.leanback.app.PlaybackControlGlue} with the
- * PlaybackOverlayFragment. This helper implements a standard behavior for user interaction with
- * the most commonly used controls such as fast forward and rewind.
+ * A {@link android.support.v17.leanback.app.PlaybackFragment} or its subclass
+ * {@link android.support.v17.leanback.app.VideoFragment} hosts
+ * {@link android.support.v17.leanback.media.PlaybackTransportControlGlue}
+ * or {@link android.support.v17.leanback.media.PlaybackBannerControlGlue} with a Leanback
+ * look and feel. It is recommended to use an instance of
+ * {@link android.support.v17.leanback.media.PlaybackTransportControlGlue}.
+ * This helper implements a standard behavior for user interaction with
+ * the most commonly used controls as well as video scrubbing.
* </p>
* <p>
* A {@link android.support.v17.leanback.app.SearchFragment} allows the developer to accept a query
diff --git a/v17/leanback/src/android/support/v17/leanback/media/MediaControllerGlue.java b/v17/leanback/src/android/support/v17/leanback/media/MediaControllerGlue.java
index 730bf3a..b8e9b74 100644
--- a/v17/leanback/src/android/support/v17/leanback/media/MediaControllerGlue.java
+++ b/v17/leanback/src/android/support/v17/leanback/media/MediaControllerGlue.java
@@ -28,7 +28,10 @@
/**
* A helper class for implementing a glue layer for {@link MediaControllerCompat}.
+ * @deprecated Use {@link MediaControllerAdapter} with {@link PlaybackTransportControlGlue} or
+ * {@link PlaybackBannerControlGlue}.
*/
+@Deprecated
public abstract class MediaControllerGlue extends PlaybackControlGlue {
static final String TAG = "MediaControllerGlue";
static final boolean DEBUG = false;
diff --git a/v17/leanback/src/android/support/v17/leanback/media/MediaPlayerGlue.java b/v17/leanback/src/android/support/v17/leanback/media/MediaPlayerGlue.java
index 3a274b1..73bca97 100644
--- a/v17/leanback/src/android/support/v17/leanback/media/MediaPlayerGlue.java
+++ b/v17/leanback/src/android/support/v17/leanback/media/MediaPlayerGlue.java
@@ -22,6 +22,7 @@
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Handler;
+import android.support.annotation.RestrictTo;
import android.support.v17.leanback.widget.Action;
import android.support.v17.leanback.widget.ArrayObjectAdapter;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
@@ -50,7 +51,11 @@
* </ul>
*
* @hide
+ * @deprecated Use {@link MediaPlayerAdapter} with {@link PlaybackTransportControlGlue} or
+ * {@link PlaybackBannerControlGlue}.
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+@Deprecated
public class MediaPlayerGlue extends PlaybackControlGlue implements
OnItemViewSelectedListener {
@@ -485,11 +490,6 @@
}
@Override
- public boolean isReadyForPlayback() {
- return mInitialized;
- }
-
- @Override
public boolean isPrepared() {
return mInitialized;
}
diff --git a/v17/leanback/src/android/support/v17/leanback/media/PlaybackGlue.java b/v17/leanback/src/android/support/v17/leanback/media/PlaybackGlue.java
index 020f660..7c59573 100644
--- a/v17/leanback/src/android/support/v17/leanback/media/PlaybackGlue.java
+++ b/v17/leanback/src/android/support/v17/leanback/media/PlaybackGlue.java
@@ -49,21 +49,10 @@
*/
public abstract static class PlayerCallback {
/**
- * This method is fired when media is ready for playback {@link #isPrepared()}.
- * @deprecated use {@link #onPreparedStateChanged(PlaybackGlue)}.
- */
- @Deprecated
- public void onReadyForPlayback() {
- }
-
- /**
* Event for {@link #isPrepared()} changed.
* @param glue The PlaybackGlue that has changed {@link #isPrepared()}.
*/
public void onPreparedStateChanged(PlaybackGlue glue) {
- if (glue.isPrepared()) {
- onReadyForPlayback();
- }
}
/**
@@ -98,41 +87,12 @@
}
/**
- * Returns true when the media player is ready to start media playback. Subclasses must
- * implement this method correctly. When returning false, app may listen to
- * {@link PlayerCallback#onReadyForPlayback()} event.
- *
- * @see PlayerCallback#onReadyForPlayback()
- * @deprecated Use isPrepared() instead.
- */
- @Deprecated
- public boolean isReadyForPlayback() {
- return true;
- }
-
- /**
* Returns true when the media player is prepared to start media playback. When returning false,
* app may listen to {@link PlayerCallback#onPreparedStateChanged(PlaybackGlue)} event.
* @return True if prepared, false otherwise.
*/
public boolean isPrepared() {
- return isReadyForPlayback();
- }
-
- /**
- * Sets the {@link PlayerCallback} callback. It will reset the existing callbacks.
- * In most cases you would call {@link #addPlayerCallback(PlayerCallback)}.
- * @deprecated Use {@link #addPlayerCallback(PlayerCallback)}.
- */
- @Deprecated
- public void setPlayerCallback(PlayerCallback playerCallback) {
- if (playerCallback == null) {
- if (mPlayerCallbacks != null) {
- mPlayerCallbacks.clear();
- }
- } else {
- addPlayerCallback(playerCallback);
- }
+ return true;
}
/**
diff --git a/v17/leanback/src/android/support/v17/leanback/package-info.java b/v17/leanback/src/android/support/v17/leanback/package-info.java
index aa64827..5259f63 100644
--- a/v17/leanback/src/android/support/v17/leanback/package-info.java
+++ b/v17/leanback/src/android/support/v17/leanback/package-info.java
@@ -41,19 +41,20 @@
* <p>
* Leanback contains a mixture of higher level building blocks such as Fragments in the
* {@link android.support.v17.leanback.app} package. Notable examples are the
- * {@link android.support.v17.leanback.app.BrowseFragment} and the
+ * {@link android.support.v17.leanback.app.BrowseFragment},
+ * {@link android.support.v17.leanback.app.DetailsFragment},
+ * {@link android.support.v17.leanback.app.PlaybackFragment} and the
* {@link android.support.v17.leanback.app.GuidedStepFragment}. Helper classes are also provided
* that work with the leanback fragments, for example the
- * {@link android.support.v17.leanback.app.PlaybackControlGlue}.
+ * {@link android.support.v17.leanback.media.PlaybackTransportControlGlue} and
+ * {@link android.support.v17.leanback.app.PlaybackFragmentGlueHost}.
* </p>
* <p>
* Many lower level building blocks are also provided in the {@link android.support.v17.leanback.widget} package.
* These allow applications to easily incorporate Leanback look and feel while allowing for a
* high degree of customization. Primary examples include the UI widget
* {@link android.support.v17.leanback.widget.HorizontalGridView} and
- * {@link android.support.v17.leanback.widget.VerticalGridView}. Helper classes also exist at this level
- * which do not depend on the leanback fragments, for example the
- * {@link android.support.v17.leanback.widget.TitleHelper}.
+ * {@link android.support.v17.leanback.widget.VerticalGridView}.
*/
package android.support.v17.leanback;
\ No newline at end of file
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/media/MediaPlayerGlueTest.java b/v17/leanback/tests/java/android/support/v17/leanback/media/MediaPlayerGlueTest.java
index b154635..afcb1bc 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/media/MediaPlayerGlueTest.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/media/MediaPlayerGlueTest.java
@@ -62,12 +62,13 @@
glue.setHost(host);
glue.setMode(MediaPlayerGlue.REPEAT_ALL);
final boolean[] ready = new boolean[] {false};
- glue.setPlayerCallback(new PlaybackGlue.PlayerCallback() {
+ glue.addPlayerCallback(new PlaybackGlue.PlayerCallback() {
@Override
- public void onReadyForPlayback() {
- glue.play();
- ready[0] = true;
-
+ public void onPreparedStateChanged(PlaybackGlue glue) {
+ if (glue.isPrepared()) {
+ glue.play();
+ ready[0] = true;
+ }
}
});
InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {