diff options
author | Conrad Chen <conradchen@google.com> | 2017-03-16 11:36:38 -0700 |
---|---|---|
committer | Conrad Chen <conradchen@google.com> | 2017-03-16 11:36:38 -0700 |
commit | 04ead87a191cd99ad1eb88979831e8079cbe3b9e (patch) | |
tree | 716976097afe00662bec419a1c25ed3bf66d4ce5 /src/com/android | |
parent | 951023db70f8aaedd13db700e03a9f8cfc8a9dd7 (diff) | |
download | TvProvider-04ead87a191cd99ad1eb88979831e8079cbe3b9e.tar.gz |
Block modifying types of channels
The type of channels should not be changed once it's set.
Blocks this column from being modified.
Test: cts-tradefed run cts -m CtsTvTestCases
Change-Id: I089ca51a4861fdb0b72b1a0efdb18f6f469c87cc
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/providers/tv/TvProvider.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/com/android/providers/tv/TvProvider.java b/src/com/android/providers/tv/TvProvider.java index b6b660d..842244c 100644 --- a/src/com/android/providers/tv/TvProvider.java +++ b/src/com/android/providers/tv/TvProvider.java @@ -1421,6 +1421,11 @@ public class TvProvider extends ContentProvider { boolean containUnmodifiableColumn = false; if (params.getTables().equals(CHANNELS_TABLE)) { filterContentValues(values, sChannelProjectionMap); + containUnmodifiableColumn = disallowModifyChannelType(values, params); + if (containUnmodifiableColumn && Channels.CONTENT_URI.equals(uri)) { + Log.i(TAG, "Updating failed. Attempt to change unmodifiable column for channels."); + return 0; + } blockIllegalAccessToChannelsSystemColumns(values); } else if (params.getTables().equals(PROGRAMS_TABLE)) { filterContentValues(values, sProgramProjectionMap); @@ -1806,9 +1811,18 @@ public class TvProvider extends ContentProvider { } } + private boolean disallowModifyChannelType(ContentValues values, SqlParams params) { + if (values.containsKey(Channels.COLUMN_TYPE)) { + params.appendWhere(Channels.COLUMN_TYPE + "=?", + values.getAsString(Channels.COLUMN_TYPE)); + return true; + } + return false; + } + private boolean disallowModifyChannelId(ContentValues values, SqlParams params) { if (values.containsKey(PreviewPrograms.COLUMN_CHANNEL_ID)) { - params.appendWhere(Programs.COLUMN_CHANNEL_ID + "=?", + params.appendWhere(PreviewPrograms.COLUMN_CHANNEL_ID + "=?", values.getAsString(PreviewPrograms.COLUMN_CHANNEL_ID)); return true; } |