blob: 9749d91b449b969b9088a2439ba535898d39cfdd [file] [log] [blame]
// 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.content.browser;
import android.annotation.TargetApi;
import android.graphics.Rect;
import android.os.Build;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
/**
* A wrapper for SelectActionModeCallback that extends ActionMode.Callback2 to
* support floating ActionModes.
*/
@TargetApi(Build.VERSION_CODES.M)
public class FloatingWebActionModeCallback extends ActionMode.Callback2 {
private final WebActionModeCallback mWrappedCallback;
public FloatingWebActionModeCallback(WebActionModeCallback wrappedCallback) {
mWrappedCallback = wrappedCallback;
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// If the created ActionMode isn't actually floating, abort creation altogether.
if (mode.getType() != ActionMode.TYPE_FLOATING) return false;
return mWrappedCallback.onCreateActionMode(mode, menu);
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return mWrappedCallback.onPrepareActionMode(mode, menu);
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return mWrappedCallback.onActionItemClicked(mode, item);
}
@Override
public void onDestroyActionMode(ActionMode mode) {
mWrappedCallback.onDestroyActionMode(mode);
}
@Override
public void onGetContentRect(ActionMode mode, View view, Rect outRect) {
mWrappedCallback.onGetContentRect(mode, view, outRect);
}
}