summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSungsoo Lim <sungsoo@google.com>2014-08-13 23:10:27 +0900
committerSungsoo Lim <sungsoo@google.com>2014-08-14 12:41:01 +0900
commit66deb422aaf1bc5400bdcefac78d3e2c6c4f3189 (patch)
treea3422094107813fd54830de59f08244ae9bc040a
parent2f1a3b6808ac14bc024deca6139d72a648f8b43a (diff)
downloadandroid_packages_providers_TvProvider-66deb422aaf1bc5400bdcefac78d3e2c6c4f3189.tar.gz
android_packages_providers_TvProvider-66deb422aaf1bc5400bdcefac78d3e2c6c4f3189.tar.bz2
android_packages_providers_TvProvider-66deb422aaf1bc5400bdcefac78d3e2c6c4f3189.zip
Notify the insertion of watched programs when they are consolidated
TvProvider does not allow to query for a watched program whose COLUMN_CONSOLIDATED is 0. Therefore, if notifyChange() is called when it is inserted, ContentObserver can't get the information of the watched program since at that time COLUMN_CONSOLIDATED is 0. This CL postpones to call notifyChange till COLUMN_CONSOLIDATED becomes 1. Bug: 16966390 Change-Id: Ia39efe7d7698b0da3670f5fa72441b42116da2a7
-rw-r--r--src/com/android/providers/tv/TvProvider.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/com/android/providers/tv/TvProvider.java b/src/com/android/providers/tv/TvProvider.java
index 234a58f..41963ee 100644
--- a/src/com/android/providers/tv/TvProvider.java
+++ b/src/com/android/providers/tv/TvProvider.java
@@ -530,9 +530,7 @@ public class TvProvider extends ContentProvider {
mLogHandler.removeMessages(WatchLogHandler.MSG_TRY_CONSOLIDATE_ALL);
mLogHandler.sendEmptyMessageDelayed(WatchLogHandler.MSG_TRY_CONSOLIDATE_ALL,
MAX_PROGRAM_DATA_DELAY_IN_MILLIS);
- Uri watchedProgramUri = TvContract.buildWatchedProgramUri(rowId);
- notifyChange(watchedProgramUri);
- return watchedProgramUri;
+ return TvContract.buildWatchedProgramUri(rowId);
}
throw new SQLException("Failed to insert row into " + uri);
} else if (watchStartTime == null && watchEndTime != null) {
@@ -1054,9 +1052,15 @@ public class TvProvider extends ContentProvider {
values.put(WatchedPrograms.COLUMN_WATCH_END_TIME_UTC_MILLIS,
String.valueOf(needsToSplit ? endTime : watchEndTime));
values.put(WATCHED_PROGRAMS_COLUMN_CONSOLIDATED, "1");
+ db.update(WATCHED_PROGRAMS_TABLE, values,
+ WatchedPrograms._ID + "=" + String.valueOf(id), null);
+ // Treat the watched program is inserted when WATCHED_PROGRAMS_COLUMN_CONSOLIDATED
+ // becomes 1.
+ notifyChange(TvContract.buildWatchedProgramUri(id));
+ } else {
+ db.update(WATCHED_PROGRAMS_TABLE, values,
+ WatchedPrograms._ID + "=" + String.valueOf(id), null);
}
- db.update(WATCHED_PROGRAMS_TABLE, values,
- WatchedPrograms._ID + "=" + String.valueOf(id), null);
int count = dryRun ? 0 : 1;
if (needsToSplit) {
// This means that the program ended before the user stops watching the current