| 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();
|
| + }
|
| +}
|
|
|