diff options
author | Sungsoo Lim <sungsoo@google.com> | 2014-08-13 23:10:27 +0900 |
---|---|---|
committer | Sungsoo Lim <sungsoo@google.com> | 2014-08-14 12:41:01 +0900 |
commit | 66deb422aaf1bc5400bdcefac78d3e2c6c4f3189 (patch) | |
tree | a3422094107813fd54830de59f08244ae9bc040a | |
parent | 2f1a3b6808ac14bc024deca6139d72a648f8b43a (diff) | |
download | android_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.java | 14 |
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 |