| Index: chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkFolderSelectActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkFolderSelectActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkFolderSelectActivity.java
|
| deleted file mode 100644
|
| index f48de3a968b8d0a50d6bad0e4817615ae8e52802..0000000000000000000000000000000000000000
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkFolderSelectActivity.java
|
| +++ /dev/null
|
| @@ -1,360 +0,0 @@
|
| -// 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.content.Context;
|
| -import android.content.Intent;
|
| -import android.graphics.drawable.Drawable;
|
| -import android.os.Bundle;
|
| -import android.support.v7.widget.Toolbar;
|
| -import android.view.LayoutInflater;
|
| -import android.view.MenuItem;
|
| -import android.view.View;
|
| -import android.view.ViewGroup;
|
| -import android.widget.AdapterView;
|
| -import android.widget.BaseAdapter;
|
| -import android.widget.ListView;
|
| -import android.widget.TextView;
|
| -
|
| -import org.chromium.base.ApiCompatibilityUtils;
|
| -import org.chromium.chrome.R;
|
| -import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkItem;
|
| -import org.chromium.chrome.browser.bookmark.BookmarksBridge.BookmarkModelObserver;
|
| -import org.chromium.chrome.browser.widget.TintedDrawable;
|
| -import org.chromium.components.bookmarks.BookmarkId;
|
| -
|
| -import java.util.ArrayList;
|
| -import java.util.List;
|
| -
|
| -/**
|
| - * Dialog for moving bookmarks from one folder to another. A list of folders are shown and the
|
| - * hierarchy of bookmark model is presented by indentation of list items. This dialog can be shown
|
| - * in two cases. One is when user choose to move an existing bookmark to a new folder. The other is
|
| - * when user creates a new folder/bookmark, he/she can choose which parent the new folder/bookmark
|
| - * belong to.
|
| - * <p>
|
| - * Note this fragment will not be restarted by OS. It will be dismissed if chrome is killed in
|
| - * background.
|
| - */
|
| -public class EnhancedBookmarkFolderSelectActivity extends EnhancedBookmarkActivityBase implements
|
| - AdapterView.OnItemClickListener {
|
| - static final String
|
| - INTENT_SELECTED_FOLDER = "EnhancedBookmarkFolderSelectActivity.selectedFolder";
|
| - static final String
|
| - INTENT_IS_CREATING_FOLDER = "EnhancedBookmarkFolderSelectActivity.isCreatingFolder";
|
| - static final String
|
| - INTENT_BOOKMARKS_TO_MOVE = "EnhancedBookmarkFolderSelectActivity.bookmarksToMove";
|
| - static final int CREATE_FOLDER_REQUEST_CODE = 13;
|
| -
|
| - private EnhancedBookmarksModel mModel;
|
| - private boolean mIsCreatingFolder;
|
| - private List<BookmarkId> mBookmarksToMove;
|
| - private BookmarkId mParentId;
|
| - private FolderListAdapter mBookmarkIdsAdapter;
|
| - private ListView mBookmarkIdsList;
|
| -
|
| - private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObserver() {
|
| - @Override
|
| - public void bookmarkModelChanged() {
|
| - updateFolderList();
|
| - }
|
| -
|
| - @Override
|
| - public void bookmarkNodeRemoved(BookmarkItem parent, int oldIndex, BookmarkItem node,
|
| - boolean isDoingExtensiveChanges) {
|
| - if (mBookmarksToMove.contains(node.getId())) {
|
| - mBookmarksToMove.remove(node.getId());
|
| - if (mBookmarksToMove.isEmpty()) {
|
| - finish();
|
| - return;
|
| - }
|
| - } else if (node.isFolder()) {
|
| - updateFolderList();
|
| - }
|
| - }
|
| - };
|
| -
|
| - /**
|
| - * Starts a select folder activity.
|
| - */
|
| - public static void startFolderSelectActivity(Context context, BookmarkId... bookmarks) {
|
| - assert bookmarks.length > 0;
|
| - Intent intent = new Intent(context, EnhancedBookmarkFolderSelectActivity.class);
|
| - intent.putExtra(INTENT_IS_CREATING_FOLDER, false);
|
| - ArrayList<String> bookmarkStrings = new ArrayList<>(bookmarks.length);
|
| - for (BookmarkId id : bookmarks) {
|
| - bookmarkStrings.add(id.toString());
|
| - }
|
| - intent.putStringArrayListExtra(INTENT_BOOKMARKS_TO_MOVE, bookmarkStrings);
|
| - context.startActivity(intent);
|
| - }
|
| -
|
| - /**
|
| - * Starts a select folder activity for the new folder that is about to be created. This method
|
| - * is only supposed to be called by {@link EnhancedBookmarkAddEditFolderActivity}
|
| - */
|
| - public static void startNewFolderSelectActivity(
|
| - EnhancedBookmarkAddEditFolderActivity activity, List<BookmarkId> bookmarks) {
|
| - assert bookmarks.size() > 0;
|
| - Intent intent = new Intent(activity, EnhancedBookmarkFolderSelectActivity.class);
|
| - intent.putExtra(INTENT_IS_CREATING_FOLDER, true);
|
| - ArrayList<String> bookmarkStrings = new ArrayList<>(bookmarks.size());
|
| - for (BookmarkId id : bookmarks) {
|
| - bookmarkStrings.add(id.toString());
|
| - }
|
| - intent.putStringArrayListExtra(INTENT_BOOKMARKS_TO_MOVE, bookmarkStrings);
|
| - activity.startActivityForResult(intent,
|
| - EnhancedBookmarkAddEditFolderActivity.PARENT_FOLDER_REQUEST_CODE);
|
| - }
|
| -
|
| - @Override
|
| - public void onCreate(Bundle savedInstanceState) {
|
| - super.onCreate(savedInstanceState);
|
| - EnhancedBookmarkUtils.setTaskDescriptionInDocumentMode(this,
|
| - getString(R.string.enhanced_bookmark_choose_folder));
|
| - mModel = new EnhancedBookmarksModel();
|
| - mModel.addObserver(mBookmarkModelObserver);
|
| - List<String> stringList = getIntent().getStringArrayListExtra(INTENT_BOOKMARKS_TO_MOVE);
|
| - mBookmarksToMove = new ArrayList<>(stringList.size());
|
| - for (String string : stringList) {
|
| - BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString(string);
|
| - if (mModel.doesBookmarkExist(bookmarkId)) {
|
| - mBookmarksToMove.add(bookmarkId);
|
| - }
|
| - }
|
| - if (mBookmarksToMove.isEmpty()) {
|
| - finish();
|
| - return;
|
| - }
|
| -
|
| - mIsCreatingFolder = getIntent().getBooleanExtra(INTENT_IS_CREATING_FOLDER, false);
|
| - if (mIsCreatingFolder) {
|
| - mParentId = mModel.getMobileFolderId();
|
| - } else {
|
| - mParentId = mModel.getBookmarkById(mBookmarksToMove.get(0))
|
| - .getParentId();
|
| - }
|
| -
|
| - setContentView(R.layout.eb_folder_select_activity);
|
| - mBookmarkIdsList = (ListView) findViewById(R.id.eb_folder_list);
|
| - mBookmarkIdsList.setOnItemClickListener(this);
|
| - mBookmarkIdsAdapter = new FolderListAdapter(this);
|
| - mBookmarkIdsList.setAdapter(mBookmarkIdsAdapter);
|
| -
|
| - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
| - setSupportActionBar(toolbar);
|
| - getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
| -
|
| - updateFolderList();
|
| - }
|
| -
|
| - private void updateFolderList() {
|
| - List<BookmarkId> folderList = new ArrayList<BookmarkId>();
|
| - List<Integer> depthList = new ArrayList<Integer>();
|
| - mModel.getMoveDestinations(folderList, depthList, mBookmarksToMove);
|
| - List<FolderListEntry> entryList = new ArrayList<FolderListEntry>(folderList.size() + 3);
|
| -
|
| - if (!mIsCreatingFolder) {
|
| - entryList.add(new FolderListEntry(null, 0,
|
| - getString(R.string.enhanced_bookmark_add_folder), false,
|
| - FolderListEntry.TYPE_NEW_FOLDER));
|
| - }
|
| -
|
| - for (int i = 0; i < folderList.size(); i++) {
|
| - BookmarkId folder = folderList.get(i);
|
| -
|
| - if (!mModel.isFolderVisible(folder)) continue;
|
| -
|
| - String title = mModel.getBookmarkById(folder).getTitle();
|
| - entryList.add(new FolderListEntry(folder, depthList.get(i), title,
|
| - folder.equals(mParentId), FolderListEntry.TYPE_NORMAL));
|
| - }
|
| -
|
| - mBookmarkIdsAdapter.setEntryList(entryList);
|
| - }
|
| -
|
| - @Override
|
| - public boolean onOptionsItemSelected(MenuItem item) {
|
| - if (item.getItemId() == android.R.id.home) {
|
| - onBackPressed();
|
| - return true;
|
| - }
|
| - return super.onOptionsItemSelected(item);
|
| - }
|
| -
|
| - @Override
|
| - protected void onDestroy() {
|
| - super.onDestroy();
|
| - mModel.removeObserver(mBookmarkModelObserver);
|
| - mModel.destroy();
|
| - mModel = null;
|
| - }
|
| -
|
| - /**
|
| - * Moves bookmark from original parent to selected folder. In creation mode, directly add the
|
| - * new bookmark to selected folder instead of moving.
|
| - */
|
| - @Override
|
| - public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
|
| - FolderListEntry entry = (FolderListEntry) adapter.getItemAtPosition(position);
|
| - if (mIsCreatingFolder) {
|
| - BookmarkId selectedFolder = null;
|
| - if (entry.mType == FolderListEntry.TYPE_NORMAL) {
|
| - selectedFolder = entry.mId;
|
| - } else {
|
| - assert false : "New folder items should not be clickable in creating mode";
|
| - }
|
| - Intent intent = new Intent();
|
| - intent.putExtra(INTENT_SELECTED_FOLDER, selectedFolder.toString());
|
| - setResult(RESULT_OK, intent);
|
| - finish();
|
| - } else if (entry.mType == FolderListEntry.TYPE_NEW_FOLDER) {
|
| - EnhancedBookmarkAddEditFolderActivity.startAddFolderActivity(this, mBookmarksToMove);
|
| - } else if (entry.mType == FolderListEntry.TYPE_NORMAL) {
|
| - mModel.moveBookmarks(mBookmarksToMove, entry.mId);
|
| - EnhancedBookmarkUtils.setLastUsedParent(this, entry.mId);
|
| - finish();
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
| - super.onActivityResult(requestCode, resultCode, data);
|
| - assert !mIsCreatingFolder;
|
| - if (requestCode == CREATE_FOLDER_REQUEST_CODE && resultCode == RESULT_OK) {
|
| - BookmarkId createdBookmark = BookmarkId.getBookmarkIdFromString(data.getStringExtra(
|
| - EnhancedBookmarkAddEditFolderActivity.INTENT_CREATED_BOOKMARK));
|
| - mModel.moveBookmarks(mBookmarksToMove, createdBookmark);
|
| - EnhancedBookmarkUtils.setLastUsedParent(this, createdBookmark);
|
| - finish();
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Data object representing a folder entry used in FolderListAdapter.
|
| - */
|
| - private static class FolderListEntry {
|
| - public static final int TYPE_NEW_FOLDER = 0;
|
| - public static final int TYPE_NORMAL = 1;
|
| -
|
| - BookmarkId mId;
|
| - String mTitle;
|
| - int mDepth;
|
| - boolean mIsSelected;
|
| - int mType;
|
| -
|
| - public FolderListEntry(BookmarkId bookmarkId, int depth, String title, boolean isSelected,
|
| - int type) {
|
| - assert type == TYPE_NEW_FOLDER || type == TYPE_NORMAL;
|
| - mDepth = depth;
|
| - mId = bookmarkId;
|
| - mTitle = title;
|
| - mIsSelected = isSelected;
|
| - mType = type;
|
| - }
|
| - }
|
| -
|
| - private static class FolderListAdapter extends BaseAdapter {
|
| - // The maximum depth that will be indented. Folders with a depth greater
|
| - // than this will all appear at this same depth.
|
| - private static final int MAX_FOLDER_DEPTH = 5;
|
| -
|
| - private final int mBasePadding;
|
| - private final int mPaddingIncrement;
|
| -
|
| - List<FolderListEntry> mEntryList = new ArrayList<FolderListEntry>();
|
| -
|
| - public FolderListAdapter(Context context) {
|
| - mBasePadding = context.getResources()
|
| - .getDimensionPixelSize(R.dimen.enhanced_bookmark_folder_item_left);
|
| - mPaddingIncrement = mBasePadding * 2;
|
| - }
|
| -
|
| - @Override
|
| - public int getCount() {
|
| - return mEntryList.size();
|
| - }
|
| -
|
| - @Override
|
| - public FolderListEntry getItem(int position) {
|
| - return mEntryList.get(position);
|
| - }
|
| -
|
| - @Override
|
| - public long getItemId(int position) {
|
| - return position;
|
| - }
|
| -
|
| - /**
|
| - * There are 2 types of entries: new folder and normal.
|
| - */
|
| - @Override
|
| - public int getViewTypeCount() {
|
| - return 2;
|
| - }
|
| -
|
| - @Override
|
| - public int getItemViewType(int position) {
|
| - FolderListEntry entry = getItem(position);
|
| - return entry.mType;
|
| - }
|
| -
|
| - @Override
|
| - public View getView(int position, View convertView, ViewGroup parent) {
|
| - final FolderListEntry entry = getItem(position);
|
| - if (convertView != null && entry.mType != FolderListEntry.TYPE_NORMAL) {
|
| - return convertView;
|
| - }
|
| - if (convertView == null) {
|
| - convertView = LayoutInflater.from(parent.getContext()).inflate(
|
| - R.layout.eb_folder_select_item, parent, false);
|
| - }
|
| - TextView textView = (TextView) convertView;
|
| - textView.setText(entry.mTitle);
|
| -
|
| - setUpIcons(entry, textView);
|
| - setUpPadding(entry, textView);
|
| -
|
| - return textView;
|
| - }
|
| -
|
| - void setEntryList(List<FolderListEntry> entryList) {
|
| - mEntryList = entryList;
|
| - notifyDataSetChanged();
|
| - }
|
| -
|
| - /**
|
| - * Sets compound drawables (icons) for different kinds of list entries,
|
| - * i.e. New Folder, Normal and Selected.
|
| - */
|
| - private void setUpIcons(FolderListEntry entry, TextView textView) {
|
| - int iconId = 0;
|
| - if (entry.mType == FolderListEntry.TYPE_NORMAL) {
|
| - iconId = R.drawable.eb_folder;
|
| - } else if (entry.mType == FolderListEntry.TYPE_NEW_FOLDER) {
|
| - // For new folder, start_icon is different.
|
| - iconId = R.drawable.eb_add_folder;
|
| - }
|
| -
|
| - Drawable drawableStart = TintedDrawable.constructTintedDrawable(textView.getResources(),
|
| - iconId);
|
| - // Selected entry has an end_icon, a blue check mark.
|
| - Drawable drawableEnd = entry.mIsSelected ? ApiCompatibilityUtils.getDrawable(
|
| - textView.getResources(), R.drawable.eb_check_blue) : null;
|
| - ApiCompatibilityUtils.setCompoundDrawablesRelativeWithIntrinsicBounds(textView,
|
| - drawableStart, null, drawableEnd, null);
|
| - }
|
| -
|
| - /**
|
| - * Sets up padding for the entry
|
| - */
|
| - private void setUpPadding(FolderListEntry entry, TextView textView) {
|
| - int paddingStart = mBasePadding + Math.min(entry.mDepth, MAX_FOLDER_DEPTH)
|
| - * mPaddingIncrement;
|
| - ApiCompatibilityUtils.setPaddingRelative(textView, paddingStart, 0,
|
| - mBasePadding, 0);
|
| - }
|
| - }
|
| -}
|
|
|