| /* |
| * Copyright (C) 2014 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package androidx.appcompat.view; |
| |
| import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP; |
| |
| import android.view.ActionMode; |
| import android.view.KeyEvent; |
| import android.view.KeyboardShortcutGroup; |
| import android.view.Menu; |
| import android.view.MenuItem; |
| import android.view.MotionEvent; |
| import android.view.SearchEvent; |
| import android.view.View; |
| import android.view.Window; |
| import android.view.WindowManager; |
| import android.view.accessibility.AccessibilityEvent; |
| |
| import androidx.annotation.RequiresApi; |
| import androidx.annotation.RestrictTo; |
| |
| import java.util.List; |
| |
| /** |
| * A simple decorator stub for Window.Callback that passes through any calls |
| * to the wrapped instance as a base implementation. Call super.foo() to call into |
| * the wrapped callback for any subclasses. |
| * |
| * @hide |
| */ |
| @RestrictTo(LIBRARY_GROUP) |
| public class WindowCallbackWrapper implements Window.Callback { |
| |
| final Window.Callback mWrapped; |
| |
| public WindowCallbackWrapper(Window.Callback wrapped) { |
| if (wrapped == null) { |
| throw new IllegalArgumentException("Window callback may not be null"); |
| } |
| mWrapped = wrapped; |
| } |
| |
| @Override |
| public boolean dispatchKeyEvent(KeyEvent event) { |
| return mWrapped.dispatchKeyEvent(event); |
| } |
| |
| @Override |
| public boolean dispatchKeyShortcutEvent(KeyEvent event) { |
| return mWrapped.dispatchKeyShortcutEvent(event); |
| } |
| |
| @Override |
| public boolean dispatchTouchEvent(MotionEvent event) { |
| return mWrapped.dispatchTouchEvent(event); |
| } |
| |
| @Override |
| public boolean dispatchTrackballEvent(MotionEvent event) { |
| return mWrapped.dispatchTrackballEvent(event); |
| } |
| |
| @Override |
| public boolean dispatchGenericMotionEvent(MotionEvent event) { |
| return mWrapped.dispatchGenericMotionEvent(event); |
| } |
| |
| @Override |
| public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { |
| return mWrapped.dispatchPopulateAccessibilityEvent(event); |
| } |
| |
| @Override |
| public View onCreatePanelView(int featureId) { |
| return mWrapped.onCreatePanelView(featureId); |
| } |
| |
| @Override |
| public boolean onCreatePanelMenu(int featureId, Menu menu) { |
| return mWrapped.onCreatePanelMenu(featureId, menu); |
| } |
| |
| @Override |
| public boolean onPreparePanel(int featureId, View view, Menu menu) { |
| return mWrapped.onPreparePanel(featureId, view, menu); |
| } |
| |
| @Override |
| public boolean onMenuOpened(int featureId, Menu menu) { |
| return mWrapped.onMenuOpened(featureId, menu); |
| } |
| |
| @Override |
| public boolean onMenuItemSelected(int featureId, MenuItem item) { |
| return mWrapped.onMenuItemSelected(featureId, item); |
| } |
| |
| @Override |
| public void onWindowAttributesChanged(WindowManager.LayoutParams attrs) { |
| mWrapped.onWindowAttributesChanged(attrs); |
| } |
| |
| @Override |
| public void onContentChanged() { |
| mWrapped.onContentChanged(); |
| } |
| |
| @Override |
| public void onWindowFocusChanged(boolean hasFocus) { |
| mWrapped.onWindowFocusChanged(hasFocus); |
| } |
| |
| @Override |
| public void onAttachedToWindow() { |
| mWrapped.onAttachedToWindow(); |
| } |
| |
| @Override |
| public void onDetachedFromWindow() { |
| mWrapped.onDetachedFromWindow(); |
| } |
| |
| @Override |
| public void onPanelClosed(int featureId, Menu menu) { |
| mWrapped.onPanelClosed(featureId, menu); |
| } |
| |
| @RequiresApi(23) |
| @Override |
| public boolean onSearchRequested(SearchEvent searchEvent) { |
| return mWrapped.onSearchRequested(searchEvent); |
| } |
| |
| @Override |
| public boolean onSearchRequested() { |
| return mWrapped.onSearchRequested(); |
| } |
| |
| @Override |
| public ActionMode onWindowStartingActionMode(ActionMode.Callback callback) { |
| return mWrapped.onWindowStartingActionMode(callback); |
| } |
| |
| @RequiresApi(23) |
| @Override |
| public ActionMode onWindowStartingActionMode(ActionMode.Callback callback, int type) { |
| return mWrapped.onWindowStartingActionMode(callback, type); |
| } |
| |
| @Override |
| public void onActionModeStarted(ActionMode mode) { |
| mWrapped.onActionModeStarted(mode); |
| } |
| |
| @Override |
| public void onActionModeFinished(ActionMode mode) { |
| mWrapped.onActionModeFinished(mode); |
| } |
| |
| @RequiresApi(24) |
| @Override |
| public void onProvideKeyboardShortcuts( |
| List<KeyboardShortcutGroup> data, Menu menu, int deviceId) { |
| mWrapped.onProvideKeyboardShortcuts(data, menu, deviceId); |
| } |
| |
| @RequiresApi(26) |
| @Override |
| public void onPointerCaptureChanged(boolean hasCapture) { |
| mWrapped.onPointerCaptureChanged(hasCapture); |
| } |
| } |