summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPankaj Garg <pgarg@codeaurora.org>2015-07-13 09:54:21 -0700
committerjrizzoli <joey@cyanogenmoditalia.it>2015-08-28 13:15:46 +0200
commit634bf437d710db2b54840365925b91b5d35ba571 (patch)
tree080b7cff8815a7dec57f1aa1d0548e4069c06a75 /src
parent4101f27ca8b79962e6ca8196c72599645aec7bcb (diff)
downloadandroid_packages_apps_Gello-634bf437d710db2b54840365925b91b5d35ba571.tar.gz
android_packages_apps_Gello-634bf437d710db2b54840365925b91b5d35ba571.tar.bz2
android_packages_apps_Gello-634bf437d710db2b54840365925b91b5d35ba571.zip
Browser bookmark cleanup
- Option to remove bookmark on clicking "star" button - Add bookmark dialog look cleanup - Hide "account" in "add bookmark dialog" if only one account Change-Id: I42fd4d54f119bb3bcdb784fd2f6f58570d019eee
Diffstat (limited to 'src')
-rw-r--r--src/com/android/browser/AddBookmarkFolder.java2
-rw-r--r--src/com/android/browser/AddBookmarkPage.java75
-rw-r--r--src/com/android/browser/BookmarkUtils.java9
-rw-r--r--src/com/android/browser/BreadCrumbView.java34
-rw-r--r--src/com/android/browser/BrowserBookmarksPage.java3
-rw-r--r--src/com/android/browser/Controller.java7
-rw-r--r--src/com/android/browser/view/BookmarkExpandableView.java20
7 files changed, 124 insertions, 26 deletions
diff --git a/src/com/android/browser/AddBookmarkFolder.java b/src/com/android/browser/AddBookmarkFolder.java
index b468da26..faff0274 100644
--- a/src/com/android/browser/AddBookmarkFolder.java
+++ b/src/com/android/browser/AddBookmarkFolder.java
@@ -638,7 +638,7 @@ public class AddBookmarkFolder extends Activity implements View.OnClickListener,
mAddSeparator.setVisibility(View.GONE);
mCrumbs = (BreadCrumbView) findViewById(R.id.crumbs);
- mCrumbs.setUseBackButton(true);
+ //mCrumbs.setUseBackButton(true);
mCrumbs.setController(this);
mHeaderIcon = getResources().getDrawable(R.drawable.ic_deco_folder_normal);
mCrumbHolder = findViewById(R.id.crumb_holder);
diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
index a50a7d64..ef462bc3 100644
--- a/src/com/android/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -103,6 +103,7 @@ public class AddBookmarkPage extends Activity
private EditText mAddress;
private TextView mButton;
private View mCancelButton;
+ private View mDeleteButton;
private boolean mEditingExisting;
private boolean mEditingFolder;
private Bundle mMap;
@@ -314,6 +315,8 @@ public class AddBookmarkPage extends Activity
} else {
finish();
}
+ } else if (v == mDeleteButton || v == mRemoveLink) {
+ onDeleteWithConfirm();
} else if (v == mFolderCancel) {
completeOrCancelFolderNaming(true);
} else if (v == mAddNewFolder) {
@@ -330,16 +333,6 @@ public class AddBookmarkPage extends Activity
Class[] type = new Class[] {View.class};
ReflectHelper.invokeMethod(imm, "focusIn", type, params);
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);
}
}
@@ -546,6 +539,14 @@ public class AddBookmarkPage extends Activity
while (cursor.moveToNext()) {
mAccountAdapter.add(new BookmarkAccount(this, cursor));
}
+
+ if (cursor.getCount() < 2) {
+ View accountView = findViewById(R.id.row_account);
+ if (accountView != null) {
+ accountView.setVisibility(View.GONE);
+ }
+ }
+
getLoaderManager().destroyLoader(LOADER_ID_ACCOUNTS);
getLoaderManager().restartLoader(LOADER_ID_EDIT_INFO, null,
mEditInfoLoaderCallbacks);
@@ -660,6 +661,10 @@ public class AddBookmarkPage extends Activity
mTouchIconUrl = null;
mFakeTitle = (TextView) findViewById(R.id.fake_title);
+
+ mDeleteButton = findViewById(R.id.delete);
+ mDeleteButton.setOnClickListener(this);
+
if (mMap != null) {
Bundle b = mMap.getBundle(EXTRA_EDIT_BOOKMARK);
if (b != null) {
@@ -691,6 +696,7 @@ public class AddBookmarkPage extends Activity
title = title.substring(0, MAX_TITLE_LENGTH);
}
}
+
}
mTitle = (EditText) findViewById(R.id.title);
@@ -731,7 +737,7 @@ public class AddBookmarkPage extends Activity
mAddSeparator = findViewById(R.id.add_divider);
mCrumbs = (BreadCrumbView) findViewById(R.id.crumbs);
- mCrumbs.setUseBackButton(true);
+ //mCrumbs.setUseBackButton(true);
mCrumbs.setController(this);
mHeaderIcon = getResources().getDrawable(R.drawable.ic_deco_folder_normal);
mCrumbHolder = findViewById(R.id.crumb_holder);
@@ -769,6 +775,7 @@ public class AddBookmarkPage extends Activity
}
private void showRemoveButton() {
+ mDeleteButton.setVisibility(View.VISIBLE);
findViewById(R.id.remove_divider).setVisibility(View.VISIBLE);
mRemoveLink = findViewById(R.id.remove);
mRemoveLink.setVisibility(View.VISIBLE);
@@ -909,6 +916,52 @@ public class AddBookmarkPage extends Activity
context.getContentResolver().delete(uri, null, null);
}
+ private void onDeleteWithConfirm() {
+ final String title = mTitle.getText().toString().trim();
+ final String unfilteredUrl = UrlUtils.fixUrl(mAddress.getText().toString());
+ final String url = unfilteredUrl.trim();
+ new AlertDialog.Builder(this)
+ .setIconAttribute(android.R.attr.alertDialogIcon)
+ .setMessage(getString(R.string.delete_bookmark_warning, title))
+ .setNegativeButton(android.R.string.cancel, null)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ ContentResolver cr = getContentResolver();
+ Cursor cursor = cr.query(BrowserContract.Bookmarks.CONTENT_URI,
+ BookmarksLoader.PROJECTION,
+ "title = ? OR url = ?",
+ new String[] {
+ title, url
+ },
+ null);
+
+ if (cursor == null) {
+ finish();
+ return;
+ }
+
+ try {
+ if (cursor.moveToFirst()) {
+ do {
+ long index = cursor.getLong(
+ cursor.getColumnIndex(BrowserContract.Bookmarks._ID));
+ cr.delete(ContentUris.withAppendedId(
+ BrowserContract.Bookmarks.CONTENT_URI, index),
+ null, null);
+ } while (cursor.moveToNext());
+ }
+ } catch (IllegalStateException e) {
+ e.printStackTrace();
+ } finally {
+ if (cursor != null)
+ cursor.close();
+ }
+ finish();
+ }
+ })
+ .show();
+ }
+
private void onSaveWithConfirm() {
String title = mTitle.getText().toString().trim();
String unfilteredUrl = UrlUtils.fixUrl(mAddress.getText().toString());
diff --git a/src/com/android/browser/BookmarkUtils.java b/src/com/android/browser/BookmarkUtils.java
index 0bce3c25..335a352d 100644
--- a/src/com/android/browser/BookmarkUtils.java
+++ b/src/com/android/browser/BookmarkUtils.java
@@ -235,12 +235,13 @@ public class BookmarkUtils {
* @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) {
+ final Context context, final Message msg, boolean is_folder) {
new AlertDialog.Builder(context)
.setIconAttribute(android.R.attr.alertDialogIcon)
- .setMessage(context.getString(R.string.delete_bookmark_warning,
- title))
+ .setMessage(is_folder ?
+ context.getString(R.string.delete_folder_warning, title) :
+ context.getString(R.string.delete_bookmark_warning, title))
.setPositiveButton(R.string.ok,
new DialogInterface.OnClickListener() {
@Override
@@ -248,7 +249,7 @@ public class BookmarkUtils {
if (msg != null) {
msg.sendToTarget();
}
- Runnable runnable = new Runnable(){
+ Runnable runnable = new Runnable() {
@Override
public void run() {
removeBookmarkOrFolder(context, id);
diff --git a/src/com/android/browser/BreadCrumbView.java b/src/com/android/browser/BreadCrumbView.java
index 0cd82263..1501d211 100644
--- a/src/com/android/browser/BreadCrumbView.java
+++ b/src/com/android/browser/BreadCrumbView.java
@@ -60,6 +60,7 @@ public class BreadCrumbView extends RelativeLayout implements OnClickListener {
private int mMaxVisible = -1;
private Context mContext;
private int mCrumbPadding;
+ private TextView mOverflowView;
/**
* @param context
@@ -164,6 +165,16 @@ public class BreadCrumbView extends RelativeLayout implements OnClickListener {
return crumb.crumbView;
}
+ public void addOverflowLabel(TextView view) {
+ mOverflowView = view;
+ if (view != null) {
+ view.setTextAppearance(mContext, R.style.BookmarkPathText);
+ view.setPadding(mCrumbPadding, 0, mCrumbPadding, 0);
+ view.setGravity(Gravity.CENTER_VERTICAL);
+ view.setText("... >");
+ }
+ }
+
public void pushView(View view, Object data) {
Crumb crumb = new Crumb(view, true, data);
pushCrumb(crumb);
@@ -211,7 +222,7 @@ public class BreadCrumbView extends RelativeLayout implements OnClickListener {
params.setMargins(0, 0, 4 * mCrumbPadding, 0);
mCrumbLayout.setLayoutParams(params);
mCrumbLayout.setVisibility(View.VISIBLE);
- addParentLabel();
+ //addParentLabel();
addView(mCrumbLayout);
}
@@ -275,11 +286,15 @@ public class BreadCrumbView extends RelativeLayout implements OnClickListener {
private void updateVisible() {
// start at index 1 (0 == parent label)
- int childIndex = 1;
+ int childIndex = 0;
if (mMaxVisible >= 0) {
int invisibleCrumbs = size() - mMaxVisible;
if (invisibleCrumbs > 0) {
int crumbIndex = 0;
+ if (mOverflowView != null) {
+ mOverflowView.setVisibility(VISIBLE);
+ mOverflowView.setOnClickListener(this);
+ }
while (crumbIndex < invisibleCrumbs) {
// Set the crumb to GONE.
mCrumbLayout.getChildAt(childIndex).setVisibility(View.GONE);
@@ -287,6 +302,10 @@ public class BreadCrumbView extends RelativeLayout implements OnClickListener {
// Move to the next crumb.
crumbIndex++;
}
+ } else {
+ if (mOverflowView != null) {
+ mOverflowView.setVisibility(GONE);
+ }
}
// Make sure the last is visible.
int childCount = mCrumbLayout.getChildCount();
@@ -333,6 +352,13 @@ public class BreadCrumbView extends RelativeLayout implements OnClickListener {
if (mBackButton == v) {
popView();
notifyController();
+ } else if (mOverflowView == v) {
+ int maxVisible = getMaxVisible();
+ while (maxVisible > 0) {
+ pop(false);
+ maxVisible--;
+ }
+ notifyController();
} else {
// pop until view matches crumb view
while (v != getTopCrumb().crumbView) {
@@ -397,10 +423,10 @@ public class BreadCrumbView extends RelativeLayout implements OnClickListener {
private TextView makeCrumbView(String name) {
TextView tv = new TextView(mContext);
- tv.setTextAppearance(mContext, R.style.BookmarkText);
+ tv.setTextAppearance(mContext, R.style.BookmarkPathText);
tv.setPadding(mCrumbPadding, 0, mCrumbPadding, 0);
tv.setGravity(Gravity.CENTER_VERTICAL);
- tv.setText(name);
+ tv.setText(name + " >");
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.MATCH_PARENT));
tv.setSingleLine();
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 59d4a68a..935bdc60 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -723,7 +723,8 @@ public class BrowserBookmarksPage extends Fragment implements View.OnCreateConte
long id = cursor.getLong(BookmarksLoader.COLUMN_INDEX_ID);
String title = cursor.getString(BookmarksLoader.COLUMN_INDEX_TITLE);
Context context = getActivity();
- BookmarkUtils.displayRemoveBookmarkDialog(id, title, context, null);
+ BookmarkUtils.displayRemoveBookmarkDialog(id, title, context, null,
+ (cursor.getInt(BookmarksLoader.COLUMN_INDEX_IS_FOLDER) == 1));
}
private String getUrl(BrowserBookmarksAdapter adapter, int position) {
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 5c6a9b8d..63372370 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -261,6 +261,8 @@ public class Controller
private PowerConnectionReceiver mLowPowerReceiver;
private PowerConnectionReceiver mPowerChangeReceiver;
+ private boolean mCurrentPageBookmarked;
+
public Controller(Activity browser) {
mActivity = browser;
mSettings = BrowserSettings.getInstance();
@@ -1947,7 +1949,8 @@ public class Controller
String title = w.getTitle();
String url = w.getUrl();
- if (title != null && url != null && lookupBookmark(title, url) > 0) {
+ mCurrentPageBookmarked = (lookupBookmark(title, url) > 0);
+ if (title != null && url != null && mCurrentPageBookmarked) {
bookmark_icon.setChecked(true);
} else {
bookmark_icon.setChecked(false);
@@ -2348,7 +2351,7 @@ public class Controller
WebView w = getCurrentTopWebView();
if (w == null)
return;
- final Intent i = createBookmarkCurrentPageIntent(false);
+ final Intent i = createBookmarkCurrentPageIntent(mCurrentPageBookmarked);
mActivity.startActivity(i);
}
}
diff --git a/src/com/android/browser/view/BookmarkExpandableView.java b/src/com/android/browser/view/BookmarkExpandableView.java
index 5e685656..3ed000c3 100644
--- a/src/com/android/browser/view/BookmarkExpandableView.java
+++ b/src/com/android/browser/view/BookmarkExpandableView.java
@@ -82,6 +82,9 @@ public class BookmarkExpandableView extends ExpandableListView
.getInteger(R.integer.max_bookmark_columns);
setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);
mAdapter = new BookmarkAccountAdapter(mContext);
+ if (mAdapter.getGroupCount() < 2) {
+ setGroupIndicator(null);
+ }
super.setAdapter(mAdapter);
}
@@ -251,6 +254,10 @@ public class BookmarkExpandableView extends ExpandableListView
@Override
public void onClick(View v) {
+ if (mAdapter.getGroupCount() < 2) {
+ return;
+ }
+
int groupPosition = (Integer) v.getTag(R.id.group_position);
if (isGroupExpanded(groupPosition)) {
collapseGroup(groupPosition);
@@ -402,6 +409,7 @@ public class BookmarkExpandableView extends ExpandableListView
View view, ViewGroup parent) {
if (view == null) {
view = mInflater.inflate(R.layout.bookmark_group_view, parent, false);
+ view.setEnabled(false);
view.setOnClickListener(mGroupOnClickListener);
}
view.setTag(R.id.group_position, groupPosition);
@@ -411,13 +419,19 @@ public class BookmarkExpandableView extends ExpandableListView
if (crumbs.getParent() != null) {
((ViewGroup)crumbs.getParent()).removeView(crumbs);
}
+ crumbs.setVisibility(VISIBLE);
crumbHolder.addView(crumbs);
+
+ TextView overflowView = (TextView) view.findViewById(R.id.crumb_overflow);
+ crumbs.addOverflowLabel(overflowView);
+/*
TextView name = (TextView) view.findViewById(R.id.group_name);
String groupName = mGroups.get(groupPosition);
if (groupName == null) {
- groupName = mContext.getString(R.string.local_bookmarks);
+ groupName = mContext.getString(R.string.bookmarks);
}
name.setText(groupName);
+*/
return view;
}
@@ -427,8 +441,8 @@ public class BookmarkExpandableView extends ExpandableListView
crumbs = (BreadCrumbView)
mInflater.inflate(R.layout.bookmarks_header, null);
crumbs.setController(BookmarkExpandableView.this);
- crumbs.setUseBackButton(true);
- crumbs.setMaxVisible(1);
+ //crumbs.setUseBackButton(true);
+ crumbs.setMaxVisible(2);
String bookmarks = mContext.getString(R.string.bookmarks);
crumbs.pushView(bookmarks, false,
BrowserContract.Bookmarks.CONTENT_URI_DEFAULT_FOLDER);