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..ec4322d15c6726e0e26d1f426066a98d786819c0 |
--- /dev/null |
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkEditActivity.java |
@@ -0,0 +1,149 @@ |
+// 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.support.v7.widget.Toolbar; |
+import android.view.Menu; |
+import android.view.MenuItem; |
+import android.view.View; |
+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.UrlUtilities; |
+import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel; |
+import org.chromium.chrome.browser.widget.EmptyAlertEditText; |
+import org.chromium.components.bookmarks.BookmarkId; |
+ |
+/** |
+ * The activity that enables the user to modify the title, url and parent folder of a bookmark. |
+ */ |
+public class EnhancedBookmarkEditActivity extends EnhancedBookmarkActivityBase { |
+ /** The intent extra specifying the ID of the bookmark to be edited. */ |
+ public static final String INTENT_BOOKMARK_ID = "EnhancedBookmarkEditActivity.BookmarkId"; |
+ |
+ private EnhancedBookmarksModel mEnhancedBookmarksModel; |
+ private BookmarkId mBookmarkId; |
+ private EmptyAlertEditText mTitleEditText; |
+ private EmptyAlertEditText mUrlEditText; |
+ private TextView mFolderTextView; |
+ |
+ private MenuItem mDeleteButton; |
+ |
+ 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()) || node.getId().equals( |
+ mEnhancedBookmarksModel.getBookmarkById(mBookmarkId).getParentId())) { |
+ updateViewContent(); |
+ } |
+ } |
+ |
+ @Override |
+ public void bookmarkModelChanged() { |
+ } |
+ }; |
+ |
+ @Override |
+ protected void onCreate(Bundle savedInstanceState) { |
+ super.onCreate(savedInstanceState); |
+ EnhancedBookmarkUtils.setTaskDescriptionInDocumentMode(this, |
+ getString(R.string.edit_bookmark)); |
+ mEnhancedBookmarksModel = new EnhancedBookmarksModel(); |
+ mBookmarkId = BookmarkId.getBookmarkIdFromString( |
+ getIntent().getStringExtra(INTENT_BOOKMARK_ID)); |
+ mEnhancedBookmarksModel.addModelObserver(mBookmarkModelObserver); |
+ |
+ setContentView(R.layout.eb_edit); |
+ mTitleEditText = (EmptyAlertEditText) findViewById(R.id.title_text); |
+ mUrlEditText = (EmptyAlertEditText) findViewById(R.id.url_text); |
+ mFolderTextView = (TextView) findViewById(R.id.folder_text); |
+ mFolderTextView.setOnClickListener(new View.OnClickListener() { |
+ @Override |
+ public void onClick(View v) { |
+ EnhancedBookmarkFolderSelectActivity.startFolderSelectActivity( |
+ EnhancedBookmarkEditActivity.this, mBookmarkId); |
+ } |
+ }); |
+ Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); |
+ setSupportActionBar(toolbar); |
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true); |
+ |
+ updateViewContent(); |
+ } |
+ |
+ private void updateViewContent() { |
+ BookmarkItem bookmarkItem = mEnhancedBookmarksModel.getBookmarkById(mBookmarkId); |
+ mTitleEditText.setText(bookmarkItem.getTitle()); |
+ mUrlEditText.setText(bookmarkItem.getUrl()); |
+ mFolderTextView.setText( |
+ mEnhancedBookmarksModel.getBookmarkTitle(bookmarkItem.getParentId())); |
+ } |
+ |
+ @Override |
+ public boolean onCreateOptionsMenu(Menu menu) { |
+ mDeleteButton = menu.add(R.string.enhanced_bookmark_action_bar_delete).setIcon( |
+ R.drawable.btn_trash); |
+ mDeleteButton.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); |
+ return super.onCreateOptionsMenu(menu); |
+ } |
+ |
+ @Override |
+ public boolean onOptionsItemSelected(MenuItem item) { |
+ if (item == mDeleteButton) { |
+ 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(); |
+ newUrl = UrlUtilities.fixupUrl(newUrl); |
+ if (newUrl == null) newUrl = ""; |
+ mUrlEditText.setText(newUrl); |
+ |
+ if (mTitleEditText.validate() || mUrlEditText.validate()) return; |
+ |
+ mEnhancedBookmarksModel.setBookmarkTitle(mBookmarkId, newTitle); |
+ mEnhancedBookmarksModel.setBookmarkUrl(mBookmarkId, newUrl); |
+ super.onBackPressed(); |
+ } |
+ |
+ @Override |
+ protected void onDestroy() { |
+ mEnhancedBookmarksModel.removeModelObserver(mBookmarkModelObserver); |
+ mEnhancedBookmarksModel.destroy(); |
+ mEnhancedBookmarksModel = null; |
+ super.onDestroy(); |
+ } |
+} |