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

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

Issue 1630893002: Fix a crash about editing an nonexistent bookmark (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: respond to comments Created 4 years, 11 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/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
index a925f57b3bc1536614d9d640ad6d68b6d9a30f3d..d436748a5a6ebda4acfb37e6db4be276dc3cdb74 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
@@ -51,7 +51,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
VISIT,
}
- private EnhancedBookmarksModel mEnhancedBookmarksModel;
+ private EnhancedBookmarksModel mModel;
private BookmarkId mBookmarkId;
private EmptyAlertEditText mTitleEditText;
private EmptyAlertEditText mUrlEditText;
@@ -76,7 +76,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
@Override
public void bookmarkNodeMoved(BookmarkItem oldParent, int oldIndex, BookmarkItem newParent,
int newIndex) {
- BookmarkId movedBookmark = mEnhancedBookmarksModel.getChildAt(newParent.getId(),
+ BookmarkId movedBookmark = mModel.getChildAt(newParent.getId(),
newIndex);
if (movedBookmark.equals(mBookmarkId)) {
mFolderTextView.setText(newParent.getTitle());
@@ -86,14 +86,14 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
@Override
public void bookmarkNodeChanged(BookmarkItem node) {
if (mBookmarkId.equals(node.getId()) || node.getId().equals(
- mEnhancedBookmarksModel.getBookmarkById(mBookmarkId).getParentId())) {
+ mModel.getBookmarkById(mBookmarkId).getParentId())) {
updateViewContent();
}
}
@Override
public void bookmarkModelChanged() {
- if (mEnhancedBookmarksModel.doesBookmarkExist(mBookmarkId)) {
+ if (mModel.doesBookmarkExist(mBookmarkId)) {
updateViewContent();
} else {
Log.wtf(TAG, "The bookmark was deleted somehow during bookmarkModelChange!",
@@ -110,11 +110,15 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
int title = OfflinePageUtils.getStringId(R.string.edit_bookmark);
setTitle(title);
EnhancedBookmarkUtils.setTaskDescriptionInDocumentMode(this, getString(title));
- mEnhancedBookmarksModel = new EnhancedBookmarksModel();
+ mModel = new EnhancedBookmarksModel();
mBookmarkId = BookmarkId.getBookmarkIdFromString(
getIntent().getStringExtra(INTENT_BOOKMARK_ID));
- mEnhancedBookmarksModel.addObserver(mBookmarkModelObserver);
- assert mEnhancedBookmarksModel.getBookmarkById(mBookmarkId).isEditable();
+ mModel.addObserver(mBookmarkModelObserver);
+ BookmarkItem item = mModel.getBookmarkById(mBookmarkId);
+ if (!mModel.doesBookmarkExist(mBookmarkId) || item == null) {
+ finish();
+ return;
+ }
setContentView(R.layout.eb_edit);
mTitleEditText = (EmptyAlertEditText) findViewById(R.id.title_text);
@@ -130,7 +134,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
});
if (OfflinePageBridge.isEnabled() && OfflinePageBridge.canSavePage(
- mEnhancedBookmarksModel.getBookmarkById(mBookmarkId).getUrl())) {
+ mModel.getBookmarkById(mBookmarkId).getUrl())) {
mOfflinePageModelObserver = new OfflinePageModelObserver() {
@Override
public void offlinePageDeleted(BookmarkId bookmarkId) {
@@ -140,7 +144,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
}
};
- mEnhancedBookmarksModel.getOfflinePageBridge().addObserver(mOfflinePageModelObserver);
+ mModel.getOfflinePageBridge().addObserver(mOfflinePageModelObserver);
// Make offline page section visible and find controls.
findViewById(R.id.offline_page_group).setVisibility(View.VISIBLE);
getIntent().setExtrasClassLoader(WebContents.class.getClassLoader());
@@ -156,18 +160,19 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
}
private void updateViewContent() {
- BookmarkItem bookmarkItem = mEnhancedBookmarksModel.getBookmarkById(mBookmarkId);
+ BookmarkItem bookmarkItem = mModel.getBookmarkById(mBookmarkId);
if (!TextUtils.equals(mTitleEditText.getTrimmedText(), bookmarkItem.getTitle())) {
mTitleEditText.setText(bookmarkItem.getTitle());
}
- String folderTitle = mEnhancedBookmarksModel.getBookmarkTitle(bookmarkItem.getParentId());
+ String folderTitle = mModel.getBookmarkTitle(bookmarkItem.getParentId());
if (!TextUtils.equals(mFolderTextView.getText(), folderTitle)) {
mFolderTextView.setText(folderTitle);
}
if (!TextUtils.equals(mUrlEditText.getTrimmedText(), bookmarkItem.getUrl())) {
mUrlEditText.setText(bookmarkItem.getUrl());
}
+ mTitleEditText.setEnabled(bookmarkItem.isEditable());
mUrlEditText.setEnabled(bookmarkItem.isUrlEditable());
mFolderTextView.setEnabled(bookmarkItem.isMovable());
}
@@ -188,7 +193,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
// Log added for detecting delete button double clicking.
Log.i(TAG, "Delete button pressed by user! isFinishing() == " + isFinishing());
- mEnhancedBookmarksModel.deleteBookmark(mBookmarkId);
+ mModel.deleteBookmark(mBookmarkId);
finish();
return true;
} else if (item.getItemId() == android.R.id.home) {
@@ -200,26 +205,26 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
@Override
protected void onStop() {
- if (mEnhancedBookmarksModel.doesBookmarkExist(mBookmarkId)) {
+ if (mModel.doesBookmarkExist(mBookmarkId)) {
final String originalUrl =
- mEnhancedBookmarksModel.getBookmarkById(mBookmarkId).getUrl();
+ mModel.getBookmarkById(mBookmarkId).getUrl();
final String title = mTitleEditText.getTrimmedText();
final String url = mUrlEditText.getTrimmedText();
if (!mTitleEditText.isEmpty()) {
- mEnhancedBookmarksModel.setBookmarkTitle(mBookmarkId, title);
+ mModel.setBookmarkTitle(mBookmarkId, title);
}
if (!mUrlEditText.isEmpty()
- && mEnhancedBookmarksModel.getBookmarkById(mBookmarkId).isUrlEditable()) {
+ && mModel.getBookmarkById(mBookmarkId).isUrlEditable()) {
String fixedUrl = UrlUtilities.fixupUrl(url);
if (fixedUrl != null && !fixedUrl.equals(originalUrl)) {
boolean hasOfflinePage = OfflinePageBridge.isEnabled()
- && mEnhancedBookmarksModel.getOfflinePageBridge()
+ && mModel.getOfflinePageBridge()
.getPageByBookmarkId(mBookmarkId) != null;
RecordHistogram.recordBooleanHistogram(
"OfflinePages.Edit.BookmarkUrlChangedForOfflinePage", hasOfflinePage);
- mEnhancedBookmarksModel.setBookmarkUrl(mBookmarkId, fixedUrl);
+ mModel.setBookmarkUrl(mBookmarkId, fixedUrl);
}
}
}
@@ -231,12 +236,12 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
protected void onDestroy() {
recordOfflineButtonAction(false);
if (OfflinePageBridge.isEnabled()) {
- mEnhancedBookmarksModel.getOfflinePageBridge().removeObserver(
+ mModel.getOfflinePageBridge().removeObserver(
mOfflinePageModelObserver);
}
- mEnhancedBookmarksModel.removeObserver(mBookmarkModelObserver);
- mEnhancedBookmarksModel.destroy();
- mEnhancedBookmarksModel = null;
+ mModel.removeObserver(mBookmarkModelObserver);
+ mModel.destroy();
+ mModel = null;
super.onDestroy();
}
@@ -245,14 +250,14 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
// It is possible that callback arrives after the activity was dismissed.
// See http://crbug.com/566939
- if (mEnhancedBookmarksModel == null) return;
+ if (mModel == null) return;
- mEnhancedBookmarksModel.getOfflinePageBridge().checkOfflinePageMetadata();
+ mModel.getOfflinePageBridge().checkOfflinePageMetadata();
Button saveRemoveVisitButton = (Button) findViewById(R.id.offline_page_save_remove_button);
TextView offlinePageInfoTextView = (TextView) findViewById(R.id.offline_page_info_text);
- OfflinePageItem offlinePage = mEnhancedBookmarksModel.getOfflinePageBridge()
+ OfflinePageItem offlinePage = mModel.getOfflinePageBridge()
.getPageByBookmarkId(mBookmarkId);
if (offlinePage != null) {
// Offline page exists. Show information and button to remove.
@@ -282,7 +287,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
@Override
public void onClick(View v) {
recordOfflineButtonAction(true);
- mEnhancedBookmarksModel.getOfflinePageBridge().deletePage(
+ mModel.getOfflinePageBridge().deletePage(
mBookmarkId, new DeletePageCallback() {
@Override
public void onDeletePageDone(int deletePageResult) {
@@ -303,7 +308,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
@Override
public void onClick(View v) {
recordOfflineButtonAction(true);
- mEnhancedBookmarksModel.getOfflinePageBridge().savePage(
+ mModel.getOfflinePageBridge().savePage(
mWebContents, mBookmarkId, new SavePageCallback() {
@Override
public void onSavePageDone(int savePageResult, String url) {
@@ -333,7 +338,7 @@ public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
// TODO(kkimlabs): Refactor this out to handle the intent in ChromeActivity.
if (DeviceFormFactor.isTablet(this)) {
EnhancedBookmarkUtils.openBookmark(
- mEnhancedBookmarksModel, this, mBookmarkId, LaunchLocation.BOOKMARK_EDITOR);
+ mModel, this, mBookmarkId, LaunchLocation.BOOKMARK_EDITOR);
} else {
Intent intent = new Intent();
intent.putExtra(
« 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