Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDetailActivity.java

Issue 1145203006: [Android] Remove mode concept in detail activity in enhanced bookmarks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDetailActivity.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDetailActivity.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDetailActivity.java
index c08b30a306668d6b5556f14e124b4a73a0e8aef5..4a3494d89d6224057183400e52aa8448faf3bf26 100644
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDetailActivity.java
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkDetailActivity.java
@@ -29,6 +29,7 @@ import android.widget.TextView;
import com.google.android.apps.chrome.R;
+import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
import org.chromium.chrome.browser.UrlUtilities;
@@ -79,7 +80,6 @@ public class EnhancedBookmarkDetailActivity extends EnhancedBookmarkActivityBase
private Animator mCurrentAnimator;
private int mDominantColor;
- private boolean mIsEditingMode;
private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObserver() {
@Override
@@ -177,13 +177,13 @@ public class EnhancedBookmarkDetailActivity extends EnhancedBookmarkActivityBase
}
/**
- * Custom {@link android.app.Activity#finish()} that checks device version. If in Lollipop or
- * future releases, it enables finish with backward shared element animation.
+ * Hides soft keyboard and finishes Activity.
*/
- @TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void dismiss() {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) finish();
- else finishAfterTransition();
+ InputMethodManager imm = (InputMethodManager) getSystemService(
+ Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
+ ApiCompatibilityUtils.finishAfterTransition(EnhancedBookmarkDetailActivity.this);
}
@Override
@@ -259,13 +259,13 @@ public class EnhancedBookmarkDetailActivity extends EnhancedBookmarkActivityBase
// During animation, do not respond to any clicking events.
if (mCurrentAnimator != null) return;
if (v == mCloseButton) {
- if (mIsEditingMode) leaveEditingMode(false);
- else dismiss();
+ dismiss();
} else if (v == mSaveButton) {
- if (mIsEditingMode) leaveEditingMode(true);
- else dismiss();
+ if (save()) {
+ dismiss();
+ }
} else if (v instanceof EditText) {
- if (!mIsEditingMode) enterEditingMode((EditText) v);
+ scrollToEdit((EditText) v);
} else if (v == mFolderBox) {
EnhancedBookmarkFolderSelectActivity.startFolderSelectActivity(this, mBookmarkId);
} else if (v == mDeleteButton) {
@@ -275,21 +275,18 @@ public class EnhancedBookmarkDetailActivity extends EnhancedBookmarkActivityBase
}
/**
- * Entering editing mode will trigger scrolling-up animation, as an effort to smoothly place the
- * focused EditText to be the best editable position to user. After animating, corresponding
- * EditText will be given a simulated touch event that shows up soft keyboard and allow user to
- * edit.
+ * Editing a TextView will trigger scrolling-up animation, as an effort to smoothly place the
+ * focused EditText to be the best editable position to user.
* <p>
- * To ensure the view can always be scrolled up to enter editing mode, before animation: 1). If
- * content is shorter than screen height, then we fill the content view by emptyAreaHeight so as
- * to align the content and scroll view. 2). Calculate the scrolling amount. 3). If the
- * scrolling amount is larger than the current maximum scrollable amount, increase height of
- * mBottomSpacer to make the content long enough. 4).trigger scroll-up animation.
+ * To ensure the view can always be scrolled up, before animation:
+ * 1) If content is shorter than screen height, then we fill the content view by
+ * emptyAreaHeight so as to align the content and scroll view.
+ * 2) Calculate the scrolling amount.
+ * 3) If the scrolling amount is larger than the current maximum scrollable amount, increase
+ * height of mBottomSpacer to make the content long enough.
+ * 4) trigger scroll-up animation.
*/
- private void enterEditingMode(final EditText editText) {
- if (mIsEditingMode) return;
- mIsEditingMode = true;
-
+ private void scrollToEdit(final EditText editText) {
if (DeviceFormFactor.isTablet(this)) {
// On tablet this the size of the dialog is controlled by framework. To avoid any
// jumpy behavior, we skip the crazy scrolling effect below.
@@ -331,63 +328,42 @@ public class EnhancedBookmarkDetailActivity extends EnhancedBookmarkActivityBase
}
/**
- * Leaves editing mode and finishes the activity. If shouldSave is set false, all changes will
- * be reverted.
+ * Saves the edited content.
+ * @return Whether the content was successfully saved.
*/
- private void leaveEditingMode(boolean shouldSave) {
- assert mIsEditingMode;
-
+ private boolean save() {
String newTitle = mTitleEditText.getText().toString().trim();
String newUrl = mUrlEditText.getText().toString().trim();
- if (shouldSave) {
- boolean urlOrTitleInvalid = false;
- // Fix user input urls, if necessary.
- newUrl = UrlUtilities.fixupUrl(newUrl);
- if (newUrl == null) newUrl = "";
- mUrlEditText.setText(newUrl);
- if (newUrl.isEmpty()) {
- mUrlEditText.setError(getString(R.string.bookmark_missing_url));
- urlOrTitleInvalid = true;
- }
- if (newTitle.isEmpty()) {
- mTitleEditText.setError(getString(R.string.bookmark_missing_title));
- urlOrTitleInvalid = true;
- }
- if (urlOrTitleInvalid) return;
- }
- mIsEditingMode = false;
+ boolean urlOrTitleInvalid = false;
+ // Fix user input urls, if necessary.
+ newUrl = UrlUtilities.fixupUrl(newUrl);
+ if (newUrl == null) newUrl = "";
+ mUrlEditText.setText(newUrl);
+ if (newUrl.isEmpty()) {
+ mUrlEditText.setError(getString(R.string.bookmark_missing_url));
+ urlOrTitleInvalid = true;
+ }
+ if (newTitle.isEmpty()) {
+ mTitleEditText.setError(getString(R.string.bookmark_missing_title));
+ urlOrTitleInvalid = true;
+ }
+ if (urlOrTitleInvalid) return false;
- if (shouldSave) {
- BookmarkItem bookmarkItem = mEnhancedBookmarksModel.getBookmarkById(mBookmarkId);
- String newDescription = mDescriptionEditText.getText().toString().trim();
- if (!bookmarkItem.getTitle().equals(newTitle)) {
- mEnhancedBookmarksModel.setBookmarkTitle(mBookmarkId, newTitle);
- }
- if (!bookmarkItem.getUrl().equals(newUrl)
- && bookmarkItem.getId().getType() != BookmarkType.PARTNER) {
- mEnhancedBookmarksModel.setBookmarkUrl(mBookmarkId, newUrl);
- }
- if (bookmarkItem.getId().getType() != BookmarkType.PARTNER) {
- mEnhancedBookmarksModel.setBookmarkDescription(mBookmarkId, newDescription);
- }
- } else {
- // If user discards change, restore textviews to original values.
- updateViews();
+ BookmarkItem bookmarkItem = mEnhancedBookmarksModel.getBookmarkById(mBookmarkId);
+ String newDescription = mDescriptionEditText.getText().toString().trim();
+ if (!bookmarkItem.getTitle().equals(newTitle)) {
+ mEnhancedBookmarksModel.setBookmarkTitle(mBookmarkId, newTitle);
+ }
+ if (!bookmarkItem.getUrl().equals(newUrl)
+ && bookmarkItem.getId().getType() != BookmarkType.PARTNER) {
+ mEnhancedBookmarksModel.setBookmarkUrl(mBookmarkId, newUrl);
+ }
+ if (bookmarkItem.getId().getType() != BookmarkType.PARTNER) {
+ mEnhancedBookmarksModel.setBookmarkDescription(mBookmarkId, newDescription);
}
- mContentLayout.requestFocus();
- InputMethodManager imm = (InputMethodManager) getSystemService(
- Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(mTitleEditText.getWindowToken(), 0);
- // Cancel error state of message
- mUrlEditText.setError(null);
- mTitleEditText.setError(null);
- // Reset all EditTexts to be not focosable to postpone showing keyboard
- for (EditText editText : mEditTexts) editText.setFocusable(false);
- mCurrentAnimator = null;
- if (mBottomSpacer.getHeight() != 0) setViewHeight(mBottomSpacer, 0);
- dismiss();
+ return true;
}
@Override
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698