summaryrefslogtreecommitdiffstats
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
parentfba541e7ca1ae088bf612d2d98fe4ce60b7c1e01 (diff)
downloadandroid_packages_apps_Gello-8706008824a86cd28f6911be26dde2602a4b4a6a.tar.gz
android_packages_apps_Gello-8706008824a86cd28f6911be26dde2602a4b4a6a.tar.bz2
android_packages_apps_Gello-8706008824a86cd28f6911be26dde2602a4b4a6a.zip
Transfer data from BP1 to BP2
Also move BP1 to provider package Change-Id: I082df8f675d32e2b9072914eab4ee1d50543e169
-rw-r--r--src/com/android/browser/BrowserSettings.java1
-rw-r--r--src/com/android/browser/Controller.java1
-rw-r--r--src/com/android/browser/InstantSearchEngine.java1
-rw-r--r--src/com/android/browser/provider/BrowserProvider.java (renamed from src/com/android/browser/BrowserProvider.java)16
-rw-r--r--src/com/android/browser/provider/BrowserProvider2.java76
-rw-r--r--tests/src/com/android/browser/BrowserProviderTests.java1
6 files changed, 88 insertions, 8 deletions
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 7d64cfc4..e6bd7595 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -17,6 +17,7 @@
package com.android.browser;
import com.android.browser.homepages.HomeProvider;
+import com.android.browser.provider.BrowserProvider;
import com.android.browser.search.SearchEngine;
import com.android.browser.search.SearchEngines;
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 2a7e8eba..06f00c7e 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -18,6 +18,7 @@ package com.android.browser;
import com.android.browser.IntentHandler.UrlData;
import com.android.browser.UI.DropdownChangeListener;
+import com.android.browser.provider.BrowserProvider;
import com.android.browser.search.SearchEngine;
import com.android.common.Search;
diff --git a/src/com/android/browser/InstantSearchEngine.java b/src/com/android/browser/InstantSearchEngine.java
index 6ff7db75..e2e9c8ae 100644
--- a/src/com/android/browser/InstantSearchEngine.java
+++ b/src/com/android/browser/InstantSearchEngine.java
@@ -18,6 +18,7 @@ package com.android.browser;
import com.android.browser.Controller;
import com.android.browser.R;
import com.android.browser.UI.DropdownChangeListener;
+import com.android.browser.provider.BrowserProvider;
import com.android.browser.search.SearchEngine;
import android.app.SearchManager;
diff --git a/src/com/android/browser/BrowserProvider.java b/src/com/android/browser/provider/BrowserProvider.java
index 6ebc2c26..b55b84a3 100644
--- a/src/com/android/browser/BrowserProvider.java
+++ b/src/com/android/browser/provider/BrowserProvider.java
@@ -14,8 +14,10 @@
* limitations under the License.
*/
-package com.android.browser;
+package com.android.browser.provider;
+import com.android.browser.BrowserSettings;
+import com.android.browser.R;
import com.android.browser.search.SearchEngine;
import android.app.SearchManager;
@@ -57,14 +59,14 @@ public class BrowserProvider extends ContentProvider {
private SQLiteOpenHelper mOpenHelper;
private BackupManager mBackupManager;
- private static final String sDatabaseName = "browser.db";
+ static final String sDatabaseName = "browser.db";
private static final String TAG = "BrowserProvider";
private static final String ORDER_BY = "visits DESC, date DESC";
private static final String PICASA_URL = "http://picasaweb.google.com/m/" +
"viewer?source=androidclient";
- private static final String[] TABLE_NAMES = new String[] {
+ static final String[] TABLE_NAMES = new String[] {
"bookmarks", "searches"
};
private static final String[] SUGGEST_PROJECTION = new String[] {
@@ -112,7 +114,7 @@ public class BrowserProvider extends ContentProvider {
// make sure that these match the index of TABLE_NAMES
- private static final int URI_MATCH_BOOKMARKS = 0;
+ static final int URI_MATCH_BOOKMARKS = 0;
private static final int URI_MATCH_SEARCHES = 1;
// (id % 10) should match the table name index
private static final int URI_MATCH_BOOKMARKS_ID = 10;
@@ -178,7 +180,7 @@ public class BrowserProvider extends ContentProvider {
// XXX: This is a major hack to remove our dependency on gsf constants and
// its content provider. http://b/issue?id=2425179
- static String getClientId(ContentResolver cr) {
+ public static String getClientId(ContentResolver cr) {
String ret = "android-google";
Cursor legacyClientIdCursor = null;
Cursor searchClientIdCursor = null;
@@ -244,7 +246,7 @@ public class BrowserProvider extends ContentProvider {
return sb;
}
- private static class DatabaseHelper extends SQLiteOpenHelper {
+ static class DatabaseHelper extends SQLiteOpenHelper {
private Context mContext;
public DatabaseHelper(Context context) {
@@ -838,7 +840,7 @@ public class BrowserProvider extends ContentProvider {
* by the SearchDialog when the BrowserActivity is in voice search mode.
* @param results Strings to display in the dropdown from the SearchDialog
*/
- /* package */ void setQueryResults(ArrayList<String> results) {
+ public /* package */ void setQueryResults(ArrayList<String> results) {
synchronized (mResultsCursorLock) {
if (results == null) {
mResultsCursor = null;
diff --git a/src/com/android/browser/provider/BrowserProvider2.java b/src/com/android/browser/provider/BrowserProvider2.java
index 7a6dfbb5..a8739caf 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) {
diff --git a/tests/src/com/android/browser/BrowserProviderTests.java b/tests/src/com/android/browser/BrowserProviderTests.java
index eb8ba803..c63cad17 100644
--- a/tests/src/com/android/browser/BrowserProviderTests.java
+++ b/tests/src/com/android/browser/BrowserProviderTests.java
@@ -16,6 +16,7 @@
package com.android.browser;
+import com.android.browser.provider.BrowserProvider;
import com.android.browser.provider.BrowserProvider2;
import com.android.browser.tests.utils.ProviderTestCase3;