diff options
author | George Mount <mount@google.com> | 2013-03-06 11:49:10 -0800 |
---|---|---|
committer | George Mount <mount@google.com> | 2013-03-06 15:41:07 -0800 |
commit | f73f725d0b5d771b77041349fbad6e9f02023f87 (patch) | |
tree | 829d7f9937efc7952abe605e5acdc7d354144a0e /src/com/android/photos/data/PhotoDatabase.java | |
parent | 1bf3f3238727cc73a156e3eb61a2d2343ac3bdc0 (diff) | |
download | android_packages_apps_Snap-f73f725d0b5d771b77041349fbad6e9f02023f87.tar.gz android_packages_apps_Snap-f73f725d0b5d771b77041349fbad6e9f02023f87.tar.bz2 android_packages_apps_Snap-f73f725d0b5d771b77041349fbad6e9f02023f87.zip |
Add required fields to PhotoProvider.
Change-Id: I1e830702412d4431ba3b01fe4945a4818385b6cd
Diffstat (limited to 'src/com/android/photos/data/PhotoDatabase.java')
-rw-r--r-- | src/com/android/photos/data/PhotoDatabase.java | 71 |
1 files changed, 64 insertions, 7 deletions
diff --git a/src/com/android/photos/data/PhotoDatabase.java b/src/com/android/photos/data/PhotoDatabase.java index 35de18540..8585edc04 100644 --- a/src/com/android/photos/data/PhotoDatabase.java +++ b/src/com/android/photos/data/PhotoDatabase.java @@ -19,10 +19,14 @@ import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; +import com.android.photos.data.PhotoProvider.Accounts; import com.android.photos.data.PhotoProvider.Albums; import com.android.photos.data.PhotoProvider.Metadata; import com.android.photos.data.PhotoProvider.Photos; +import java.util.ArrayList; +import java.util.List; + /** * Used in PhotoProvider to create and access the database containing * information about photo and video information stored on the server. @@ -36,22 +40,32 @@ public class PhotoDatabase extends SQLiteOpenHelper { private static final String[][] CREATE_PHOTO = { { Photos._ID, "INTEGER PRIMARY KEY AUTOINCREMENT" }, - { Photos.SERVER_ID, "INTEGER UNIQUE" }, + // Photos.ACCOUNT_ID is a foreign key to Accounts._ID + { Photos.ACCOUNT_ID, "INTEGER NOT NULL" }, { Photos.WIDTH, "INTEGER NOT NULL" }, { Photos.HEIGHT, "INTEGER NOT NULL" }, { Photos.DATE_TAKEN, "INTEGER NOT NULL" }, // Photos.ALBUM_ID is a foreign key to Albums._ID { Photos.ALBUM_ID, "INTEGER" }, { Photos.MIME_TYPE, "TEXT NOT NULL" }, + { Photos.TITLE, "TEXT" }, + { Photos.DATE_MODIFIED, "INTEGER" }, + { Photos.ROTATION, "INTEGER" }, }; private static final String[][] CREATE_ALBUM = { { Albums._ID, "INTEGER PRIMARY KEY AUTOINCREMENT" }, - // Albums.PARENT_ID is a foriegn key to Albums._ID + // Albums.ACCOUNT_ID is a foreign key to Accounts._ID + { Albums.ACCOUNT_ID, "INTEGER NOT NULL" }, + // Albums.PARENT_ID is a foreign key to Albums._ID { Albums.PARENT_ID, "INTEGER" }, { Albums.NAME, "Text NOT NULL" }, { Albums.VISIBILITY, "INTEGER NOT NULL" }, - { Albums.SERVER_ID, "INTEGER UNIQUE" }, + { Albums.LOCATION_STRING, "TEXT" }, + { Albums.TITLE, "TEXT" }, + { Albums.SUMMARY, "TEXT" }, + { Albums.DATE_PUBLISHED, "INTEGER" }, + { Albums.DATE_MODIFIED, "INTEGER" }, createUniqueConstraint(Albums.PARENT_ID, Albums.NAME), }; @@ -64,11 +78,17 @@ public class PhotoDatabase extends SQLiteOpenHelper { createUniqueConstraint(Metadata.PHOTO_ID, Metadata.KEY), }; + private static final String[][] CREATE_ACCOUNT = { + { Accounts._ID, "INTEGER PRIMARY KEY AUTOINCREMENT" }, + { Accounts.ACCOUNT_NAME, "TEXT NOT NULL" }, + }; + @Override public void onCreate(SQLiteDatabase db) { - createTable(db, Albums.TABLE, CREATE_ALBUM); - createTable(db, Photos.TABLE, CREATE_PHOTO); - createTable(db, Metadata.TABLE, CREATE_METADATA); + createTable(db, Accounts.TABLE, getAccountTableDefinition()); + createTable(db, Albums.TABLE, getAlbumTableDefinition()); + createTable(db, Photos.TABLE, getPhotoTableDefinition()); + createTable(db, Metadata.TABLE, getMetadataTableDefinition()); } public PhotoDatabase(Context context, String dbName) { @@ -79,7 +99,23 @@ public class PhotoDatabase extends SQLiteOpenHelper { public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } - protected static void createTable(SQLiteDatabase db, String table, String[][] columns) { + protected List<String[]> getAlbumTableDefinition() { + return tableCreationStrings(CREATE_ALBUM); + } + + protected List<String[]> getPhotoTableDefinition() { + return tableCreationStrings(CREATE_PHOTO); + } + + protected List<String[]> getMetadataTableDefinition() { + return tableCreationStrings(CREATE_METADATA); + } + + protected List<String[]> getAccountTableDefinition() { + return tableCreationStrings(CREATE_ACCOUNT); + } + + protected static void createTable(SQLiteDatabase db, String table, List<String[]> columns) { StringBuilder create = new StringBuilder(SQL_CREATE_TABLE); create.append(table).append('('); boolean first = true; @@ -107,4 +143,25 @@ public class PhotoDatabase extends SQLiteOpenHelper { "UNIQUE(", column1, ",", column2, ")" }; } + + protected static List<String[]> tableCreationStrings(String[][] createTable) { + ArrayList<String[]> create = new ArrayList<String[]>(createTable.length); + for (String[] line: createTable) { + create.add(line); + } + return create; + } + + protected static void addToTable(List<String[]> createTable, String[][] columns, String[][] constraints) { + if (columns != null) { + for (String[] column: columns) { + createTable.add(0, column); + } + } + if (constraints != null) { + for (String[] constraint: constraints) { + createTable.add(constraint); + } + } + } } |