summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLeon Scroggins <scroggo@google.com>2011-01-14 06:03:42 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-14 06:03:42 -0800
commitf18338a08c89467ef27e1fe3a9ac7130839b475d (patch)
treeed035262ae08c6c3cc6c2cc4033016042aee5bd2 /src
parent937a54efbd2bd200c34e7c7a6d2a741a7bbc8446 (diff)
parent75630678154c89662b7f8e5fb19d0b77a2d7abb8 (diff)
downloadpackages_apps_browser-f18338a08c89467ef27e1fe3a9ac7130839b475d.zip
packages_apps_browser-f18338a08c89467ef27e1fe3a9ac7130839b475d.tar.gz
packages_apps_browser-f18338a08c89467ef27e1fe3a9ac7130839b475d.tar.bz2
Merge "Show a remove button for existing bookmarks." into honeycomb
Diffstat (limited to 'src')
-rw-r--r--src/com/android/browser/AddBookmarkPage.java32
-rw-r--r--src/com/android/browser/BookmarkUtils.java42
-rw-r--r--src/com/android/browser/BrowserBookmarksPage.java21
3 files changed, 75 insertions, 20 deletions
diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
index 5a55f67..a93a518 100644
--- a/src/com/android/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -115,6 +115,8 @@ public class AddBookmarkPage extends Activity
private long mRootFolder;
private TextView mTopLevelLabel;
private Drawable mHeaderIcon;
+ private View mRemoveLink;
+ private View mFakeTitleHolder;
private static class Folder {
String Name;
long Id;
@@ -127,6 +129,7 @@ public class AddBookmarkPage extends Activity
// Message IDs
private static final int SAVE_BOOKMARK = 100;
private static final int TOUCH_ICON_DOWNLOADED = 101;
+ private static final int BOOKMARK_DELETED = 102;
private Handler mHandler;
@@ -194,7 +197,7 @@ public class AddBookmarkPage extends Activity
mFolderSelector.setVisibility(View.GONE);
mDefaultView.setVisibility(View.VISIBLE);
mCrumbHolder.setVisibility(View.GONE);
- mFakeTitle.setVisibility(View.VISIBLE);
+ mFakeTitleHolder.setVisibility(View.VISIBLE);
if (changedFolder) {
Object data = mCrumbs.getTopData();
if (data != null) {
@@ -257,6 +260,16 @@ public class AddBookmarkPage extends Activity
// can transfer the focus to mFolderNamer.
imm.focusIn(mListView);
imm.showSoftInput(mFolderNamer, InputMethodManager.SHOW_IMPLICIT);
+ } else if (v == mRemoveLink) {
+ if (!mEditingExisting) {
+ throw new AssertionError("Remove button should not be shown for"
+ + " new bookmarks");
+ }
+ long id = mMap.getLong(BrowserContract.Bookmarks._ID);
+ createHandler();
+ Message msg = Message.obtain(mHandler, BOOKMARK_DELETED);
+ BookmarkUtils.displayRemoveBookmarkDialog(id,
+ mTitle.getText().toString(), this, msg);
}
}
@@ -334,7 +347,7 @@ public class AddBookmarkPage extends Activity
mDefaultView.setVisibility(View.GONE);
mFolderSelector.setVisibility(View.VISIBLE);
mCrumbHolder.setVisibility(View.VISIBLE);
- mFakeTitle.setVisibility(View.GONE);
+ mFakeTitleHolder.setVisibility(View.GONE);
mAddNewFolder.setVisibility(View.VISIBLE);
mAddSeparator.setVisibility(View.VISIBLE);
}
@@ -423,6 +436,7 @@ public class AddBookmarkPage extends Activity
if (cursor != null && cursor.moveToFirst()) {
// Site is bookmarked.
mEditingExisting = true;
+ showRemoveButton();
mFakeTitle.setText(R.string.edit_bookmark);
int index = cursor.getColumnIndexOrThrow(
BrowserContract.Bookmarks.PARENT);
@@ -603,6 +617,8 @@ public class AddBookmarkPage extends Activity
mFakeTitle.setText(R.string.edit_bookmark);
if (mEditingFolder) {
findViewById(R.id.row_address).setVisibility(View.GONE);
+ } else {
+ showRemoveButton();
}
} else {
int gravity = mMap.getInt("gravity", -1);
@@ -662,6 +678,8 @@ public class AddBookmarkPage extends Activity
mListView.setOnItemClickListener(this);
mListView.addEditText(mFolderNamer);
+ mFakeTitleHolder = findViewById(R.id.title_holder);
+
if (!window.getDecorView().isInTouchMode()) {
mButton.requestFocus();
}
@@ -678,6 +696,13 @@ public class AddBookmarkPage extends Activity
}
+ private void showRemoveButton() {
+ findViewById(R.id.remove_divider).setVisibility(View.VISIBLE);
+ mRemoveLink = findViewById(R.id.remove);
+ mRemoveLink.setVisibility(View.VISIBLE);
+ mRemoveLink.setOnClickListener(this);
+ }
+
// Called once we have determined which folder is the root folder
private void onRootFolderFound(long root) {
mRootFolder = root;
@@ -819,6 +844,9 @@ public class AddBookmarkPage extends Activity
(Bitmap) b.getParcelable(BrowserContract.Bookmarks.TOUCH_ICON),
(Bitmap) b.getParcelable(BrowserContract.Bookmarks.FAVICON)));
break;
+ case BOOKMARK_DELETED:
+ finish();
+ break;
}
}
};
diff --git a/src/com/android/browser/BookmarkUtils.java b/src/com/android/browser/BookmarkUtils.java
index b548607..27d3310 100644
--- a/src/com/android/browser/BookmarkUtils.java
+++ b/src/com/android/browser/BookmarkUtils.java
@@ -16,7 +16,10 @@
package com.android.browser;
+import android.app.AlertDialog;
+import android.content.ContentUris;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
@@ -30,6 +33,7 @@ import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.net.Uri;
+import android.os.Message;
import android.preference.PreferenceManager;
import android.provider.Browser;
import android.provider.BrowserContract;
@@ -212,4 +216,42 @@ public class BookmarkUtils {
BrowserContract.Bookmarks.PARAM_ACCOUNT_TYPE, accountType);
return ub;
}
+
+ /**
+ * Show a confirmation dialog to remove a bookmark.
+ * @param id Id of the bookmark to remove
+ * @param title Title of the bookmark, to be displayed in the confirmation method.
+ * @param context Package Context for strings, dialog, ContentResolver
+ * @param msg Message to send if the bookmark is deleted.
+ */
+ static void displayRemoveBookmarkDialog( final long id, final String title,
+ final Context context, final Message msg) {
+
+ new AlertDialog.Builder(context)
+ .setTitle(R.string.delete_bookmark)
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .setMessage(context.getString(R.string.delete_bookmark_warning,
+ title))
+ .setPositiveButton(R.string.ok,
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int whichButton) {
+ if (msg != null) {
+ msg.sendToTarget();
+ }
+ Runnable runnable = new Runnable(){
+ @Override
+ public void run() {
+ Uri uri = ContentUris.withAppendedId(
+ BrowserContract.Bookmarks.CONTENT_URI,
+ id);
+ context.getContentResolver().delete(uri, null, null);
+ }
+ };
+ new Thread(runnable).start();
+ }
+ })
+ .setNegativeButton(R.string.cancel, null)
+ .show();
+ }
}
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index ea97c29..d5a5182 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -630,25 +630,10 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
// Put up a dialog asking if the user really wants to
// delete the bookmark
Cursor cursor = mAdapter.getItem(position);
+ long id = cursor.getLong(BookmarksLoader.COLUMN_INDEX_ID);
+ String title = cursor.getString(BookmarksLoader.COLUMN_INDEX_TITLE);
Context context = getActivity();
- final ContentResolver resolver = context.getContentResolver();
- final Uri uri = ContentUris.withAppendedId(BrowserContract.Bookmarks.CONTENT_URI,
- cursor.getLong(BookmarksLoader.COLUMN_INDEX_ID));
-
- new AlertDialog.Builder(context)
- .setTitle(R.string.delete_bookmark)
- .setIcon(android.R.drawable.ic_dialog_alert)
- .setMessage(context.getString(R.string.delete_bookmark_warning,
- cursor.getString(BookmarksLoader.COLUMN_INDEX_TITLE)))
- .setPositiveButton(R.string.ok,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int whichButton) {
- resolver.delete(uri, null, null);
- }
- })
- .setNegativeButton(R.string.cancel, null)
- .show();
+ BookmarkUtils.displayRemoveBookmarkDialog(id, title, context, null);
}
private String getUrl(int position) {