diff options
author | John Reck <jreck@google.com> | 2011-05-18 13:07:57 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2011-05-18 14:22:05 -0700 |
commit | 8706008824a86cd28f6911be26dde2602a4b4a6a (patch) | |
tree | b532a65d41cef4dfeb0932b27f17b41648a599f8 /src/com/android/browser/provider/BrowserProvider2.java | |
parent | fba541e7ca1ae088bf612d2d98fe4ce60b7c1e01 (diff) | |
download | packages_apps_Browser-8706008824a86cd28f6911be26dde2602a4b4a6a.zip packages_apps_Browser-8706008824a86cd28f6911be26dde2602a4b4a6a.tar.gz packages_apps_Browser-8706008824a86cd28f6911be26dde2602a4b4a6a.tar.bz2 |
Transfer data from BP1 to BP2
Also move BP1 to provider package
Change-Id: I082df8f675d32e2b9072914eab4ee1d50543e169
Diffstat (limited to 'src/com/android/browser/provider/BrowserProvider2.java')
-rw-r--r-- | src/com/android/browser/provider/BrowserProvider2.java | 76 |
1 files changed, 75 insertions, 1 deletions
diff --git a/src/com/android/browser/provider/BrowserProvider2.java b/src/com/android/browser/provider/BrowserProvider2.java index 7a6dfbb..a8739ca 100644 --- a/src/com/android/browser/provider/BrowserProvider2.java +++ b/src/com/android/browser/provider/BrowserProvider2.java @@ -64,6 +64,7 @@ import android.provider.SyncStateContract; import android.text.TextUtils; import java.io.ByteArrayOutputStream; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; @@ -398,7 +399,80 @@ public class BrowserProvider2 extends SQLiteContentProvider { mSyncHelper.createDatabase(db); - createDefaultBookmarks(db); + if (!importFromBrowserProvider(db)) { + createDefaultBookmarks(db); + } + } + + boolean importFromBrowserProvider(SQLiteDatabase db) { + Context context = getContext(); + File oldDbFile = context.getDatabasePath(BrowserProvider.sDatabaseName); + if (oldDbFile.exists()) { + BrowserProvider.DatabaseHelper helper = + new BrowserProvider.DatabaseHelper(context); + SQLiteDatabase oldDb = helper.getWritableDatabase(); + Cursor c = null; + try { + String table = BrowserProvider.TABLE_NAMES[BrowserProvider.URI_MATCH_BOOKMARKS]; + // Import bookmarks + c = oldDb.query(table, + new String[] { + BookmarkColumns.URL, // 0 + BookmarkColumns.TITLE, // 1 + BookmarkColumns.FAVICON, // 2 + BookmarkColumns.TOUCH_ICON, // 3 + }, BookmarkColumns.BOOKMARK + "!=0", null, + null, null, null); + if (c != null) { + while (c.moveToNext()) { + ContentValues values = new ContentValues(); + values.put(Bookmarks.URL, c.getString(0)); + values.put(Bookmarks.TITLE, c.getString(1)); + values.put(Bookmarks.POSITION, 0); + values.put(Bookmarks.PARENT, FIXED_ID_ROOT); + ContentValues imageValues = new ContentValues(); + imageValues.put(Images.URL, c.getString(0)); + imageValues.put(Images.FAVICON, c.getBlob(2)); + imageValues.put(Images.TOUCH_ICON, c.getBlob(3)); + db.insertOrThrow(TABLE_IMAGES, Images.THUMBNAIL, imageValues); + db.insertOrThrow(TABLE_BOOKMARKS, Bookmarks.DIRTY, values); + } + c.close(); + } + // Import history + c = oldDb.query(table, + new String[] { + BookmarkColumns.URL, // 0 + BookmarkColumns.TITLE, // 1 + BookmarkColumns.VISITS, // 2 + BookmarkColumns.DATE, // 3 + BookmarkColumns.CREATED, // 4 + }, null, null, null, null, null); + if (c != null) { + while (c.moveToNext()) { + ContentValues values = new ContentValues(); + values.put(History.URL, c.getString(0)); + values.put(History.TITLE, c.getString(1)); + values.put(History.VISITS, c.getInt(2)); + values.put(History.DATE_LAST_VISITED, c.getLong(3)); + values.put(History.DATE_CREATED, c.getLong(4)); + db.insertOrThrow(TABLE_HISTORY, History.FAVICON, values); + } + c.close(); + } + // Wipe the old DB, in case the delete fails. + oldDb.delete(table, null, null); + } finally { + if (c != null) c.close(); + oldDb.close(); + helper.close(); + } + if (!oldDbFile.delete()) { + oldDbFile.deleteOnExit(); + } + return true; + } + return false; } void createAccountsView(SQLiteDatabase db) { |