summaryrefslogtreecommitdiff
path: root/src/com/android
diff options
context:
space:
mode:
authorConrad Chen <conradchen@google.com>2017-03-16 11:36:38 -0700
committerConrad Chen <conradchen@google.com>2017-03-16 11:36:38 -0700
commit04ead87a191cd99ad1eb88979831e8079cbe3b9e (patch)
tree716976097afe00662bec419a1c25ed3bf66d4ce5 /src/com/android
parent951023db70f8aaedd13db700e03a9f8cfc8a9dd7 (diff)
downloadTvProvider-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.java16
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;
}