summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/provider/BrowserProvider2.java
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2011-05-18 13:07:57 -0700
committerJohn Reck <jreck@google.com>2011-05-18 14:22:05 -0700
commit8706008824a86cd28f6911be26dde2602a4b4a6a (patch)
treeb532a65d41cef4dfeb0932b27f17b41648a599f8 /src/com/android/browser/provider/BrowserProvider2.java
parentfba541e7ca1ae088bf612d2d98fe4ce60b7c1e01 (diff)
downloadpackages_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.java76
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) {