114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell/*
214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * Copyright (C) 2014 The Android Open Source Project
314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell *
414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * Licensed under the Apache License, Version 2.0 (the "License");
514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * you may not use this file except in compliance with the License.
614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * You may obtain a copy of the License at
714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell *
814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell *      http://www.apache.org/licenses/LICENSE-2.0
914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell *
1014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * Unless required by applicable law or agreed to in writing, software
1114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * distributed under the License is distributed on an "AS IS" BASIS,
1214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * See the License for the specific language governing permissions and
1414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * limitations under the License.
1514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell */
1614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
1714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
1814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powellpackage android.view;
1914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
2014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powellimport android.view.accessibility.AccessibilityEvent;
2114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
2275e097965cc273d33192555b0e65de3dbc1753ceClara Bayarriimport java.util.List;
2375e097965cc273d33192555b0e65de3dbc1753ceClara Bayarri
2414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell/**
2514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * A simple decorator stub for Window.Callback that passes through any calls
2614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * to the wrapped instance as a base implementation. Call super.foo() to call into
2714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * the wrapped callback for any subclasses.
2814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell *
2914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell * @hide for internal use
3014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell */
3114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powellpublic class WindowCallbackWrapper implements Window.Callback {
3214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    private Window.Callback mWrapped;
3314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
3414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public WindowCallbackWrapper(Window.Callback wrapped) {
3514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        if (wrapped == null) {
3614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell            throw new IllegalArgumentException("Window callback may not be null");
3714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        }
3814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        mWrapped = wrapped;
3914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
4014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
4114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
4214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean dispatchKeyEvent(KeyEvent event) {
4314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.dispatchKeyEvent(event);
4414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
4514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
4614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
4714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean dispatchKeyShortcutEvent(KeyEvent event) {
4814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.dispatchKeyShortcutEvent(event);
4914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
5014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
5114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
5214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean dispatchTouchEvent(MotionEvent event) {
5314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.dispatchTouchEvent(event);
5414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
5514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
5614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
5714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean dispatchTrackballEvent(MotionEvent event) {
5814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.dispatchTrackballEvent(event);
5914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
6014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
6114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
6214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean dispatchGenericMotionEvent(MotionEvent event) {
6314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.dispatchGenericMotionEvent(event);
6414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
6514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
6614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
6714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
6814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.dispatchPopulateAccessibilityEvent(event);
6914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
7014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
7114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
7214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public View onCreatePanelView(int featureId) {
7314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.onCreatePanelView(featureId);
7414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
7514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
7614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
7714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean onCreatePanelMenu(int featureId, Menu menu) {
7814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.onCreatePanelMenu(featureId, menu);
7914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
8014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
8114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
8214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean onPreparePanel(int featureId, View view, Menu menu) {
8314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.onPreparePanel(featureId, view, menu);
8414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
8514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
8614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
8714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean onMenuOpened(int featureId, Menu menu) {
8814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.onMenuOpened(featureId, menu);
8914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
9014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
9114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
9214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean onMenuItemSelected(int featureId, MenuItem item) {
9314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.onMenuItemSelected(featureId, item);
9414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
9514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
9614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
9714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public void onWindowAttributesChanged(WindowManager.LayoutParams attrs) {
9814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        mWrapped.onWindowAttributesChanged(attrs);
9914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
10014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
10114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
10214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public void onContentChanged() {
10314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        mWrapped.onContentChanged();
10414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
10514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
10614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
10714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public void onWindowFocusChanged(boolean hasFocus) {
10814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        mWrapped.onWindowFocusChanged(hasFocus);
10914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
11014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
11114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
11214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public void onAttachedToWindow() {
11314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        mWrapped.onAttachedToWindow();
11414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
11514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
11614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
11714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public void onDetachedFromWindow() {
11814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        mWrapped.onDetachedFromWindow();
11914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
12014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
12114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
12214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public void onPanelClosed(int featureId, Menu menu) {
12314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        mWrapped.onPanelClosed(featureId, menu);
12414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
12514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
12614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
1276a975b3c3597a4ad9202432f3c3d867a03d43fa4Tim Kilbourn    public boolean onSearchRequested(SearchEvent searchEvent) {
1286a975b3c3597a4ad9202432f3c3d867a03d43fa4Tim Kilbourn        return mWrapped.onSearchRequested(searchEvent);
1296a975b3c3597a4ad9202432f3c3d867a03d43fa4Tim Kilbourn    }
1306a975b3c3597a4ad9202432f3c3d867a03d43fa4Tim Kilbourn
1316a975b3c3597a4ad9202432f3c3d867a03d43fa4Tim Kilbourn    @Override
13214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public boolean onSearchRequested() {
13314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.onSearchRequested();
13414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
13514e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
13614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
13714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public ActionMode onWindowStartingActionMode(ActionMode.Callback callback) {
13814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        return mWrapped.onWindowStartingActionMode(callback);
13914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
14014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
14114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
1424423d91de5300d3fd318bf5bc2d4d7e5bb856abfClara Bayarri    public ActionMode onWindowStartingActionMode(ActionMode.Callback callback, int type) {
1434423d91de5300d3fd318bf5bc2d4d7e5bb856abfClara Bayarri        return mWrapped.onWindowStartingActionMode(callback, type);
1444423d91de5300d3fd318bf5bc2d4d7e5bb856abfClara Bayarri    }
1454423d91de5300d3fd318bf5bc2d4d7e5bb856abfClara Bayarri
1464423d91de5300d3fd318bf5bc2d4d7e5bb856abfClara Bayarri    @Override
14714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public void onActionModeStarted(ActionMode mode) {
14814e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        mWrapped.onActionModeStarted(mode);
14914e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
15014e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
15114e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    @Override
15214e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    public void onActionModeFinished(ActionMode mode) {
15314e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell        mWrapped.onActionModeFinished(mode);
15414e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell    }
15575e097965cc273d33192555b0e65de3dbc1753ceClara Bayarri
15675e097965cc273d33192555b0e65de3dbc1753ceClara Bayarri    @Override
157fcd7e80b21cc9db6be00e37371401ea1d0938796Clara Bayarri    public void onProvideKeyboardShortcuts(
158fcd7e80b21cc9db6be00e37371401ea1d0938796Clara Bayarri            List<KeyboardShortcutGroup> data, Menu menu, int deviceId) {
159fcd7e80b21cc9db6be00e37371401ea1d0938796Clara Bayarri        mWrapped.onProvideKeyboardShortcuts(data, menu, deviceId);
16075e097965cc273d33192555b0e65de3dbc1753ceClara Bayarri    }
1613787de16d24001eeb452e1c711d4290a396e67c9Vladislav Kaznacheev
1623787de16d24001eeb452e1c711d4290a396e67c9Vladislav Kaznacheev    @Override
1633787de16d24001eeb452e1c711d4290a396e67c9Vladislav Kaznacheev    public void onPointerCaptureChanged(boolean hasCapture) {
1643787de16d24001eeb452e1c711d4290a396e67c9Vladislav Kaznacheev        mWrapped.onPointerCaptureChanged(hasCapture);
1653787de16d24001eeb452e1c711d4290a396e67c9Vladislav Kaznacheev    }
16614e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell}
16714e1afe0d86de826ae1831d64ca00da03da86b4bAdam Powell
168