Merge "Add start_time and end_time for PreviewPrograms"
diff --git a/src/com/android/providers/tv/TvProvider.java b/src/com/android/providers/tv/TvProvider.java
index c0e5fc5..fa1e820 100644
--- a/src/com/android/providers/tv/TvProvider.java
+++ b/src/com/android/providers/tv/TvProvider.java
@@ -89,7 +89,7 @@
     private static final boolean DEBUG = false;
     private static final String TAG = "TvProvider";
 
-    static final int DATABASE_VERSION = 37;
+    static final int DATABASE_VERSION = 38;
     static final String SHARED_PREF_BLOCKED_PACKAGES_KEY = "blocked_packages";
     static final String CHANNELS_TABLE = "channels";
     static final String PROGRAMS_TABLE = "programs";
@@ -502,6 +502,10 @@
                 PreviewPrograms.COLUMN_CONTENT_ID);
         sPreviewProgramProjectionMap.put(PreviewPrograms.COLUMN_SPLIT_ID,
                 PreviewPrograms.COLUMN_SPLIT_ID);
+        sPreviewProgramProjectionMap.put(PreviewPrograms.COLUMN_START_TIME_UTC_MILLIS,
+                PreviewPrograms.COLUMN_START_TIME_UTC_MILLIS);
+        sPreviewProgramProjectionMap.put(PreviewPrograms.COLUMN_END_TIME_UTC_MILLIS,
+                PreviewPrograms.COLUMN_END_TIME_UTC_MILLIS);
 
         sWatchNextProgramProjectionMap.clear();
         sWatchNextProgramProjectionMap.put(WatchNextPrograms._ID, WatchNextPrograms._ID);
@@ -602,6 +606,10 @@
                 WatchNextPrograms.COLUMN_LAST_ENGAGEMENT_TIME_UTC_MILLIS);
         sWatchNextProgramProjectionMap.put(WatchNextPrograms.COLUMN_SPLIT_ID,
                 WatchNextPrograms.COLUMN_SPLIT_ID);
+        sWatchNextProgramProjectionMap.put(WatchNextPrograms.COLUMN_START_TIME_UTC_MILLIS,
+                PreviewPrograms.COLUMN_START_TIME_UTC_MILLIS);
+        sWatchNextProgramProjectionMap.put(WatchNextPrograms.COLUMN_END_TIME_UTC_MILLIS,
+                PreviewPrograms.COLUMN_END_TIME_UTC_MILLIS);
     }
 
     // Mapping from broadcast genre to canonical genre.
@@ -708,6 +716,8 @@
             + PreviewPrograms.COLUMN_BROWSABLE + " INTEGER NOT NULL DEFAULT 1,"
             + PreviewPrograms.COLUMN_CONTENT_ID + " TEXT,"
             + PreviewPrograms.COLUMN_SPLIT_ID + " TEXT,"
+            + PreviewPrograms.COLUMN_START_TIME_UTC_MILLIS + " INTEGER,"
+            + PreviewPrograms.COLUMN_END_TIME_UTC_MILLIS + " INTEGER,"
             + "FOREIGN KEY("
                     + PreviewPrograms.COLUMN_CHANNEL_ID + "," + PreviewPrograms.COLUMN_PACKAGE_NAME
                     + ") REFERENCES " + CHANNELS_TABLE + "("
@@ -770,7 +780,9 @@
             + WatchNextPrograms.COLUMN_BROWSABLE + " INTEGER NOT NULL DEFAULT 1,"
             + WatchNextPrograms.COLUMN_CONTENT_ID + " TEXT,"
             + WatchNextPrograms.COLUMN_LAST_ENGAGEMENT_TIME_UTC_MILLIS + " INTEGER,"
-            + WatchNextPrograms.COLUMN_SPLIT_ID + " TEXT"
+            + WatchNextPrograms.COLUMN_SPLIT_ID + " TEXT,"
+            + WatchNextPrograms.COLUMN_START_TIME_UTC_MILLIS + " INTEGER,"
+            + WatchNextPrograms.COLUMN_END_TIME_UTC_MILLIS + " INTEGER"
             + ");";
     private static final String CREATE_WATCH_NEXT_PROGRAMS_PACKAGE_NAME_INDEX_SQL =
             "CREATE INDEX watch_next_programs_package_name_index ON " + WATCH_NEXT_PROGRAMS_TABLE
@@ -1081,6 +1093,28 @@
                 db.execSQL("ALTER TABLE " + CHANNELS_TABLE + " ADD "
                            + Channels.COLUMN_BROADCAST_GENRE + " TEXT;");
             }
+            if (oldVersion <= 37) {
+                if (!getColumnNames(db, PREVIEW_PROGRAMS_TABLE)
+                        .contains(PreviewPrograms.COLUMN_START_TIME_UTC_MILLIS)) {
+                    db.execSQL("ALTER TABLE " + PREVIEW_PROGRAMS_TABLE + " ADD "
+                            + PreviewPrograms.COLUMN_START_TIME_UTC_MILLIS + " INTEGER;");
+                }
+                if (!getColumnNames(db, PREVIEW_PROGRAMS_TABLE)
+                        .contains(PreviewPrograms.COLUMN_END_TIME_UTC_MILLIS)) {
+                    db.execSQL("ALTER TABLE " + PREVIEW_PROGRAMS_TABLE + " ADD "
+                            + PreviewPrograms.COLUMN_END_TIME_UTC_MILLIS + " INTEGER;");
+                }
+                if (!getColumnNames(db, WATCH_NEXT_PROGRAMS_TABLE)
+                        .contains(WatchNextPrograms.COLUMN_START_TIME_UTC_MILLIS)) {
+                    db.execSQL("ALTER TABLE " + WATCH_NEXT_PROGRAMS_TABLE + " ADD "
+                            + WatchNextPrograms.COLUMN_START_TIME_UTC_MILLIS + " INTEGER;");
+                }
+                if (!getColumnNames(db, WATCH_NEXT_PROGRAMS_TABLE)
+                        .contains(WatchNextPrograms.COLUMN_END_TIME_UTC_MILLIS)) {
+                    db.execSQL("ALTER TABLE " + WATCH_NEXT_PROGRAMS_TABLE + " ADD "
+                            + WatchNextPrograms.COLUMN_END_TIME_UTC_MILLIS + " INTEGER;");
+                }
+            }
             Log.i(TAG, "Upgrading from version " + oldVersion + " to " + newVersion + " is done.");
         }