Merge "Cleanup support-compat jellybean-mr1 classes" into oc-dev
diff --git a/api/current.txt b/api/current.txt
index 0427daf..b88fab4 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -1180,6 +1180,7 @@
method public java.lang.String getType();
method public boolean isBrowsable();
method public boolean isLive();
+ method public boolean isTransient();
}
public static abstract class BasePreviewProgram.Builder<T extends android.support.media.tv.BasePreviewProgram.Builder> extends android.support.media.tv.BaseProgram.Builder {
@@ -1207,6 +1208,7 @@
method public T setReviewRatingStyle(java.lang.String);
method public T setStartingPrice(java.lang.String);
method public T setThumbnailAspectRatio(java.lang.String);
+ method public T setTransient(boolean);
method public T setType(java.lang.String);
}
@@ -1290,7 +1292,9 @@
method public java.lang.String getType();
method public java.lang.String getVideoFormat();
method public boolean isBrowsable();
+ method public boolean isLocked();
method public boolean isSearchable();
+ method public boolean isTransient();
method public android.content.ContentValues toContentValues();
}
@@ -1319,6 +1323,7 @@
method public android.support.media.tv.Channel.Builder setSearchable(boolean);
method public android.support.media.tv.Channel.Builder setServiceId(int);
method public android.support.media.tv.Channel.Builder setServiceType(java.lang.String);
+ method public android.support.media.tv.Channel.Builder setTransient(boolean);
method public android.support.media.tv.Channel.Builder setTransportStreamId(int);
method public android.support.media.tv.Channel.Builder setType(java.lang.String);
method public android.support.media.tv.Channel.Builder setVideoFormat(java.lang.String);
@@ -1427,6 +1432,7 @@
field public static final java.lang.String COLUMN_REVIEW_RATING_STYLE = "review_rating_style";
field public static final java.lang.String COLUMN_STARTING_PRICE = "starting_price";
field public static final java.lang.String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
+ field public static final java.lang.String COLUMN_TRANSIENT = "transient";
field public static final java.lang.String COLUMN_TYPE = "type";
field public static final java.lang.String INTERACTION_TYPE_FANS = "INTERACTION_TYPE_FANS";
field public static final java.lang.String INTERACTION_TYPE_FOLLOWERS = "INTERACTION_TYPE_FOLLOWERS";
@@ -1498,11 +1504,13 @@
field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG3 = "internal_provider_flag3";
field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_FLAG4 = "internal_provider_flag4";
field public static final java.lang.String COLUMN_INTERNAL_PROVIDER_ID = "internal_provider_id";
+ field public static final java.lang.String COLUMN_LOCKED = "locked";
field public static final java.lang.String COLUMN_NETWORK_AFFILIATION = "network_affiliation";
field public static final java.lang.String COLUMN_ORIGINAL_NETWORK_ID = "original_network_id";
field public static final java.lang.String COLUMN_SEARCHABLE = "searchable";
field public static final java.lang.String COLUMN_SERVICE_ID = "service_id";
field public static final java.lang.String COLUMN_SERVICE_TYPE = "service_type";
+ field public static final java.lang.String COLUMN_TRANSIENT = "transient";
field public static final java.lang.String COLUMN_TRANSPORT_STREAM_ID = "transport_stream_id";
field public static final java.lang.String COLUMN_TYPE = "type";
field public static final java.lang.String COLUMN_VERSION_NUMBER = "version_number";
diff --git a/tv-provider/src/android/support/media/tv/BasePreviewProgram.java b/tv-provider/src/android/support/media/tv/BasePreviewProgram.java
index 79d24ec..e11a193 100644
--- a/tv-provider/src/android/support/media/tv/BasePreviewProgram.java
+++ b/tv-provider/src/android/support/media/tv/BasePreviewProgram.java
@@ -156,9 +156,7 @@
/**
* @return The value of {@link BasePreviewProgramColumns#COLUMN_TRANSIENT} for the program.
- * @hide
*/
- @RestrictTo(LIBRARY_GROUP)
public boolean isTransient() {
return mTransient == IS_TRANSIENT;
}
@@ -722,9 +720,7 @@
* @param transientValue The value of {@link BasePreviewProgramColumns#COLUMN_TRANSIENT} for
* the program.
* @return This Builder object to allow for chaining of calls to builder methods.
- * @hide
*/
- @RestrictTo(LIBRARY_GROUP)
public T setTransient(boolean transientValue) {
mTransient = transientValue ? IS_TRANSIENT : 0;
return (T) this;
diff --git a/tv-provider/src/android/support/media/tv/Channel.java b/tv-provider/src/android/support/media/tv/Channel.java
index 7e68755..7290f61 100644
--- a/tv-provider/src/android/support/media/tv/Channel.java
+++ b/tv-provider/src/android/support/media/tv/Channel.java
@@ -77,6 +77,7 @@
private static final int IS_TRANSIENT = 1;
private static final int IS_BROWSABLE = 1;
private static final int IS_SYSTEM_APPROVED = 1;
+ private static final int IS_LOCKED = 1;
private final long mId;
private final String mPackageName;
@@ -105,6 +106,7 @@
private final int mTransient;
private final int mBrowsable;
private final int mSystemApproved;
+ private final int mLocked;
private Channel(Builder builder) {
mId = builder.mId;
@@ -134,6 +136,7 @@
mTransient = builder.mTransient;
mBrowsable = builder.mBrowsable;
mSystemApproved = builder.mSystemApproved;
+ mLocked = builder.mLocked;
}
/**
@@ -316,9 +319,7 @@
/**
* @return The value of {@link Channels#COLUMN_TRANSIENT} for the channel.
- * @hide
*/
- @RestrictTo(LIBRARY_GROUP)
public boolean isTransient() {
return mTransient == IS_TRANSIENT;
}
@@ -339,6 +340,13 @@
return mSystemApproved == IS_SYSTEM_APPROVED;
}
+ /**
+ * @return The value of {@link Channels#COLUMN_LOCKED} for the channel.
+ */
+ public boolean isLocked() {
+ return mLocked == IS_LOCKED;
+ }
+
@Override
public String toString() {
return "Channel{"
@@ -464,6 +472,7 @@
if (includeProtectedFields) {
values.put(Channels.COLUMN_BROWSABLE, mBrowsable);
+ values.put(Channels.COLUMN_LOCKED, mLocked);
if (BuildCompat.isAtLeastO()) {
values.put(Channels.COLUMN_SYSTEM_APPROVED, mSystemApproved);
}
@@ -543,6 +552,10 @@
&& !cursor.isNull(index)) {
builder.setBrowsable(cursor.getInt(index) == IS_BROWSABLE);
}
+ if ((index = cursor.getColumnIndex(Channels.COLUMN_LOCKED)) >= 0
+ && !cursor.isNull(index)) {
+ builder.setLocked(cursor.getInt(index) == IS_LOCKED);
+ }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if ((index = cursor.getColumnIndex(Channels.COLUMN_APP_LINK_COLOR)) >= 0
&& !cursor.isNull(index)) {
@@ -612,6 +625,7 @@
Channels.COLUMN_TYPE,
Channels.COLUMN_VIDEO_FORMAT,
Channels.COLUMN_BROWSABLE,
+ Channels.COLUMN_LOCKED,
};
String[] marshmallowColumns = new String[] {
Channels.COLUMN_APP_LINK_COLOR,
@@ -668,6 +682,7 @@
private int mTransient;
private int mBrowsable;
private int mSystemApproved;
+ private int mLocked;
public Builder() {
}
@@ -700,6 +715,7 @@
mTransient = other.mTransient;
mBrowsable = other.mBrowsable;
mSystemApproved = other.mSystemApproved;
+ mLocked = other.mLocked;
}
/**
@@ -1006,9 +1022,7 @@
*
* @param value The value of {@link Channels#COLUMN_TRANSIENT} for the channel.
* @return This Builder object to allow for chaining of calls to builder methods.
- * @hide
*/
- @RestrictTo(LIBRARY_GROUP)
public Builder setTransient(boolean value) {
mTransient = value ? IS_TRANSIENT : 0;
return this;
@@ -1041,6 +1055,19 @@
}
/**
+ * Sets whether this channel is locked or not.
+ *
+ * @param value The value of {@link Channels#COLUMN_LOCKED} for the channel.
+ * @return This Builder object to allow for chaining of calls to builder methods.
+ * @hide
+ */
+ @RestrictTo(LIBRARY_GROUP)
+ public Builder setLocked(boolean value) {
+ mLocked = value ? IS_LOCKED : 0;
+ return this;
+ }
+
+ /**
* Takes the values of the Builder object and creates a Channel object.
* @return Channel object with values from the Builder.
*/
diff --git a/tv-provider/src/android/support/media/tv/TvContractCompat.java b/tv-provider/src/android/support/media/tv/TvContractCompat.java
index 1f826e5..b3daa49 100644
--- a/tv-provider/src/android/support/media/tv/TvContractCompat.java
+++ b/tv-provider/src/android/support/media/tv/TvContractCompat.java
@@ -1286,9 +1286,7 @@
*
* <p>Type: INTEGER (boolean)
* @see Channels#COLUMN_TRANSIENT
- * @hide
*/
- @RestrictTo(LIBRARY_GROUP)
String COLUMN_TRANSIENT = "transient";
/**
@@ -1937,10 +1935,11 @@
* channel is not locked thus the user is not prompted to enter passcode If not specified,
* this value is set to 0 (not locked) by default.
*
+ * <p>This column can only be set by applications having proper system permission to
+ * modify parental control settings.
+ *
* <p>Type: INTEGER (boolean)
- * @hide
*/
- @RestrictTo(LIBRARY_GROUP)
public static final String COLUMN_LOCKED = "locked";
/**
@@ -2130,9 +2129,8 @@
*
* <p>Type: INTEGER (boolean)
* @see PreviewPrograms#COLUMN_TRANSIENT
- * @hide
+ * @see WatchNextPrograms#COLUMN_TRANSIENT
*/
- @RestrictTo(LIBRARY_GROUP)
public static final String COLUMN_TRANSIENT = "transient";
/**
diff --git a/tv-provider/tests/src/android/support/media/tv/ChannelTest.java b/tv-provider/tests/src/android/support/media/tv/ChannelTest.java
index cf085b1..69201ad 100644
--- a/tv-provider/tests/src/android/support/media/tv/ChannelTest.java
+++ b/tv-provider/tests/src/android/support/media/tv/ChannelTest.java
@@ -138,6 +138,7 @@
.setInternalProviderFlag4(0x1)
.setTransient(true)
.setBrowsable(true)
+ .setLocked(true)
.setSystemApproved(true)
.build();
}
@@ -173,6 +174,7 @@
// When we insert a channel using toContentValues() to the system, we drop some
// protected fields since they only can be modified by system apps.
assertEquals(channelA.isBrowsable(), channelB.isBrowsable());
+ assertEquals(channelA.isLocked(), channelB.isLocked());
if (BuildCompat.isAtLeastO()) {
assertEquals(channelA.isSystemApproved(), channelB.isSystemApproved());
}