diff options
author | Pankaj Garg <pgarg@codeaurora.org> | 2015-07-13 09:54:21 -0700 |
---|---|---|
committer | jrizzoli <joey@cyanogenmoditalia.it> | 2015-08-28 13:15:46 +0200 |
commit | 634bf437d710db2b54840365925b91b5d35ba571 (patch) | |
tree | 080b7cff8815a7dec57f1aa1d0548e4069c06a75 /src | |
parent | 4101f27ca8b79962e6ca8196c72599645aec7bcb (diff) | |
download | android_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.java | 2 | ||||
-rw-r--r-- | src/com/android/browser/AddBookmarkPage.java | 75 | ||||
-rw-r--r-- | src/com/android/browser/BookmarkUtils.java | 9 | ||||
-rw-r--r-- | src/com/android/browser/BreadCrumbView.java | 34 | ||||
-rw-r--r-- | src/com/android/browser/BrowserBookmarksPage.java | 3 | ||||
-rw-r--r-- | src/com/android/browser/Controller.java | 7 | ||||
-rw-r--r-- | src/com/android/browser/view/BookmarkExpandableView.java | 20 |
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); |