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

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

Issue 1182083005: Re-engineer edit screen in enhanced bookmark (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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
Index: chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..ba16c4923091eede0c54fa40cae6719ad39a2859
--- /dev/null
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java
@@ -0,0 +1,133 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.enhancedbookmarks;
+
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import com.google.android.apps.chrome.R;
+
+import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
+import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
+import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
+import org.chromium.components.bookmarks.BookmarkId;
+
+/**
+ * The activity that enables the user to modify the title, url, parent folder of a bookmark.
newt (away) 2015/06/17 04:42:22 "and parent folder"
Ian Wen 2015/06/17 21:07:42 Done.
+ */
+public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase {
+ public static final String INTENT_BOOKMARK_ID = "EnhancedBookmarkEditActivity.BookmarkId";
newt (away) 2015/06/17 04:42:23 document public constants
Ian Wen 2015/06/17 21:07:42 Done.
+
+ private EnhancedBookmarksModel mEnhancedBookmarksModel;
+ private BookmarkId mBookmarkId;
+ private EditText mTitleEditText;
+ private EditText mUrlEditText;
+ private TextView mFolderTextView;
+
+ private MenuItem mDeleteBtn;
newt (away) 2015/06/17 04:42:23 s/Btn/Button Avoid abbrvtns
Ian Wen 2015/06/17 21:07:42 Done.
+
+ private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObserver() {
+ @Override
+ public void bookmarkNodeRemoved(BookmarkItem parent, int oldIndex, BookmarkItem node,
+ boolean isDoingExtensiveChanges) {
+ if (mBookmarkId.equals(node.getId())) {
+ finish();
+ }
+ }
+
+ @Override
+ public void bookmarkNodeMoved(BookmarkItem oldParent, int oldIndex, BookmarkItem newParent,
+ int newIndex) {
+ BookmarkId movedBookmark = mEnhancedBookmarksModel.getChildAt(newParent.getId(),
+ newIndex);
+ if (movedBookmark.equals(mBookmarkId)) {
+ mFolderTextView.setText(newParent.getTitle());
+ }
+ }
+
+ @Override
+ public void bookmarkNodeChanged(BookmarkItem node) {
+ if (mBookmarkId.equals(node.getId())) updateViewContent();
Kibeom Kim (inactive) 2015/06/17 06:10:30 Q: what happens if parent node's name is changed?
Ian Wen 2015/06/17 21:07:42 Then it's an old bug in detail page. I can fix it
+ }
+
+ @Override
+ public void bookmarkModelChanged() {
+ }
+ };
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ EnhancedBookmarkUtils.setTaskDescriptionInDocumentMode(this,
+ getString(R.string.accessibility_enhanced_bookmark_edit_title));
+ mEnhancedBookmarksModel = new EnhancedBookmarksModel();
+ mBookmarkId = BookmarkId.getBookmarkIdFromString(
+ getIntent().getStringExtra(INTENT_BOOKMARK_ID));
+ mEnhancedBookmarksModel.addModelObserver(mBookmarkModelObserver);
+
+ setContentView(R.layout.eb_edit);
+ mTitleEditText = (EditText) findViewById(R.id.title_text);
+ mUrlEditText = (EditText) findViewById(R.id.url_text);
+ mFolderTextView = (TextView) findViewById(R.id.folder_text);
+ updateViewContent();
+ }
+
+ private void updateViewContent() {
+ BookmarkItem bookmarkItem = mEnhancedBookmarksModel.getBookmarkById(mBookmarkId);
newt (away) 2015/06/17 04:42:23 might this ever return null?
Kibeom Kim (inactive) 2015/06/17 06:10:30 I don't know if it's possible for a bookmark to be
Ian Wen 2015/06/17 21:07:42 If the bookmark is deleted, the activity will be n
Ian Wen 2015/06/17 21:07:42 The framework will kill the app entirely if the us
Kibeom Kim (inactive) 2015/06/17 21:18:25 Since updateViewCount() is called in onCreate(), t
Kibeom Kim (inactive) 2015/06/18 00:25:37 Discussed offline. Ian pointed out that EnhancedB
+ mTitleEditText.setText(bookmarkItem.getTitle());
+ mUrlEditText.setText(bookmarkItem.getUrl());
+ mFolderTextView.setText(
+ mEnhancedBookmarksModel.getBookmarkTitle(bookmarkItem.getParentId()));
+ mFolderTextView.setOnClickListener(new View.OnClickListener() {
Kibeom Kim (inactive) 2015/06/17 06:10:30 I guess we don't need to set listener on every upd
Ian Wen 2015/06/17 21:07:42 Done.
+ @Override
newt (away) 2015/06/17 04:42:23 fix indentation
Ian Wen 2015/06/17 21:07:42 Done.
+ public void onClick(View v) {
+ EnhancedBookmarkFolderSelectActivity.startFolderSelectActivity(
+ EnhancedBookmarkEditActivity.this, mBookmarkId);
+ }
+ });
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ mDeleteBtn = menu.add(0, 0, 0, "delete").setIcon(R.drawable.btn_trash);
newt (away) 2015/06/17 04:42:22 For the sake of accessibility users, use a localiz
Kibeom Kim (inactive) 2015/06/17 06:10:30 Seems like Menu.None is recommended instead of 0.
newt (away) 2015/06/17 17:31:17 My personal preference is to avoid menu xml with a
Ian Wen 2015/06/17 21:07:42 Oops this is a mistake.
+ mDeleteBtn.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
+ return super.onCreateOptionsMenu(menu);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.equals(mDeleteBtn)) {
newt (away) 2015/06/17 04:42:22 use == instead of equals(), since we only care abo
Ian Wen 2015/06/17 21:07:42 Done.
+ mEnhancedBookmarksModel.deleteBookmarks(mBookmarkId);
+ finish();
+ return true;
+ } else if (item.getItemId() == android.R.id.home) {
+ onBackPressed();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void onBackPressed() {
+ String newTitle = mTitleEditText.getText().toString().trim();
+ String newUrl = mUrlEditText.getText().toString().trim();
+ mEnhancedBookmarksModel.setBookmarkTitle(mBookmarkId, newTitle);
newt (away) 2015/06/17 04:42:23 why don't you validate newTitle and newUrl?
Ian Wen 2015/06/17 21:07:42 :P Done. However the error message will be handled
+ mEnhancedBookmarksModel.setBookmarkUrl(mBookmarkId, newUrl);
+ super.onBackPressed();
+ }
+
+ @Override
+ protected void onDestroy() {
+ mEnhancedBookmarksModel.removeModelObserver(mBookmarkModelObserver);
+ mEnhancedBookmarksModel.destroy();
+ mEnhancedBookmarksModel = null;
+ super.onDestroy();
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698