1 // Copyright 2015 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.content.browser.selection; 6 7 import android.annotation.TargetApi; 8 import android.graphics.Rect; 9 import android.os.Build; 10 import android.view.ActionMode; 11 import android.view.Menu; 12 import android.view.MenuItem; 13 import android.view.View; 14 15 import org.chromium.content_public.browser.ActionModeCallbackHelper; 16 17 /** 18 * A class thatextends ActionMode.Callback2 to support floating ActionModes. 19 */ 20 @TargetApi(Build.VERSION_CODES.M) 21 public class FloatingActionModeCallback extends ActionMode.Callback2 { 22 private final ActionModeCallbackHelper mHelper; 23 private final ActionMode.Callback mCallback; 24 FloatingActionModeCallback(ActionModeCallbackHelper helper, ActionMode.Callback callback)25 public FloatingActionModeCallback(ActionModeCallbackHelper helper, 26 ActionMode.Callback callback) { 27 mHelper = helper; 28 mCallback = callback; 29 } 30 31 @Override onCreateActionMode(ActionMode mode, Menu menu)32 public boolean onCreateActionMode(ActionMode mode, Menu menu) { 33 // If the created ActionMode isn't actually floating, abort creation altogether. 34 if (mode.getType() != ActionMode.TYPE_FLOATING) return false; 35 return mCallback.onCreateActionMode(mode, menu); 36 } 37 38 @Override onPrepareActionMode(ActionMode mode, Menu menu)39 public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 40 return mCallback.onPrepareActionMode(mode, menu); 41 } 42 43 @Override onActionItemClicked(ActionMode mode, MenuItem item)44 public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 45 return mCallback.onActionItemClicked(mode, item); 46 } 47 48 @Override onDestroyActionMode(ActionMode mode)49 public void onDestroyActionMode(ActionMode mode) { 50 mCallback.onDestroyActionMode(mode); 51 } 52 53 @Override onGetContentRect(ActionMode mode, View view, Rect outRect)54 public void onGetContentRect(ActionMode mode, View view, Rect outRect) { 55 mHelper.onGetContentRect(mode, view, outRect); 56 } 57 } 58