diff options
author | Leon Scroggins <scroggo@google.com> | 2010-09-28 20:09:25 -0400 |
---|---|---|
committer | Leon Scroggins <scroggo@google.com> | 2010-09-28 20:10:24 -0400 |
commit | 25230d7c576c18f40a0feeb7ef8b4a57e2e6240d (patch) | |
tree | 3fb0581c96b588d068c386815627f8130f815af9 | |
parent | 97779579a8512fcd34cd6528ca0918aa0756056b (diff) | |
download | packages_apps_browser-25230d7c576c18f40a0feeb7ef8b4a57e2e6240d.zip packages_apps_browser-25230d7c576c18f40a0feeb7ef8b4a57e2e6240d.tar.gz packages_apps_browser-25230d7c576c18f40a0feeb7ef8b4a57e2e6240d.tar.bz2 |
Use the Bookmarks Bar as the base folder.
Use the bookmarks bar as the base folder for adding bookmarks.
Change-Id: I7f3dfaf0784529ff03b6153937a43eaf7c5ac044
-rw-r--r-- | src/com/android/browser/AddBookmarkPage.java | 48 | ||||
-rw-r--r-- | src/com/android/browser/provider/BrowserProvider2.java | 2 |
2 files changed, 46 insertions, 4 deletions
diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java index 2a252a7..77f8ea8 100644 --- a/src/com/android/browser/AddBookmarkPage.java +++ b/src/com/android/browser/AddBookmarkPage.java @@ -16,6 +16,8 @@ package com.android.browser; +import com.android.browser.provider.BrowserProvider2; + import android.app.Activity; import android.app.LoaderManager; import android.content.ContentResolver; @@ -24,6 +26,7 @@ import android.content.Context; import android.content.CursorLoader; import android.content.Intent; import android.content.Loader; +import android.content.SharedPreferences; import android.content.res.Resources; import android.database.Cursor; import android.graphics.Bitmap; @@ -32,7 +35,9 @@ import android.net.WebAddress; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.preference.PreferenceManager; import android.provider.BrowserContract; +import android.text.TextUtils; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; @@ -208,7 +213,7 @@ public class AddBookmarkPage extends Activity BrowserContract.Bookmarks.TITLE); int parentIndex = cursor.getColumnIndexOrThrow( BrowserContract.Bookmarks.PARENT); - while (parent != 0) { + while (parent != BrowserProvider2.FIXED_ID_BOOKMARKS_BAR) { // First, find the folder corresponding to the current // folder if (!cursor.moveToFirst()) { @@ -306,7 +311,10 @@ public class AddBookmarkPage extends Activity url = mOriginalUrl = mMap.getString("url"); mTouchIconUrl = mMap.getString("touch_icon_url"); mThumbnail = (Bitmap) mMap.getParcelable("thumbnail"); - mCurrentFolder = mMap.getLong(BrowserContract.Bookmarks.PARENT); + mCurrentFolder = mMap.getLong(BrowserContract.Bookmarks.PARENT, -1); + } + if (mCurrentFolder == -1) { + mCurrentFolder = getBookmarksBarId(this); } mTitle = (EditText) findViewById(R.id.title); @@ -342,7 +350,7 @@ public class AddBookmarkPage extends Activity list.setAdapter(mAdapter); list.setOnItemClickListener(this); LoaderManager manager = getLoaderManager(); - if (mCurrentFolder != 0) { + if (mCurrentFolder != BrowserProvider2.FIXED_ID_BOOKMARKS_BAR) { // Find all the folders manager.initLoader(LOADER_ID_ALL_FOLDERS, null, this); } @@ -354,6 +362,40 @@ public class AddBookmarkPage extends Activity } } + // FIXME: Use a CursorLoader + private long getBookmarksBarId(Context context) { + SharedPreferences prefs + = PreferenceManager.getDefaultSharedPreferences(context); + String accountName = + prefs.getString(BrowserBookmarksPage.PREF_ACCOUNT_NAME, null); + String accountType = + prefs.getString(BrowserBookmarksPage.PREF_ACCOUNT_TYPE, null); + if (TextUtils.isEmpty(accountName) || TextUtils.isEmpty(accountType)) { + return BrowserProvider2.FIXED_ID_BOOKMARKS_BAR; + } + Cursor cursor = null; + try { + cursor = context.getContentResolver().query( + BrowserContract.Bookmarks.CONTENT_URI, + new String[] { BrowserContract.Bookmarks._ID }, + BrowserContract.ChromeSyncColumns.SERVER_UNIQUE + "=? AND " + + BrowserContract.Bookmarks.ACCOUNT_NAME + "=? AND " + + BrowserContract.Bookmarks.ACCOUNT_TYPE + "=?", + new String[] { + BrowserContract.ChromeSyncColumns + .FOLDER_NAME_BOOKMARKS_BAR, + accountName, + accountType }, + null); + if (cursor != null && cursor.moveToFirst()) { + return cursor.getLong(0); + } + } finally { + if (cursor != null) cursor.close(); + } + return BrowserProvider2.FIXED_ID_BOOKMARKS_BAR; + } + @Override public boolean dispatchKeyEvent (KeyEvent event) { if (mFolderSelector.getVisibility() == View.VISIBLE diff --git a/src/com/android/browser/provider/BrowserProvider2.java b/src/com/android/browser/provider/BrowserProvider2.java index 973f229..e0520eb 100644 --- a/src/com/android/browser/provider/BrowserProvider2.java +++ b/src/com/android/browser/provider/BrowserProvider2.java @@ -89,7 +89,7 @@ public class BrowserProvider2 extends SQLiteContentProvider { static final long FIXED_ID_CHROME_ROOT = 1; static final long FIXED_ID_BOOKMARKS = 2; - static final long FIXED_ID_BOOKMARKS_BAR = 3; + public static final long FIXED_ID_BOOKMARKS_BAR = 3; static final long FIXED_ID_OTHER_BOOKMARKS = 4; static final String DEFAULT_BOOKMARKS_SORT_ORDER = "position ASC, _id ASC"; |