1// Copyright 2014 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
5package org.chromium.base;
6
7import android.annotation.SuppressLint;
8import android.view.ActionMode;
9import android.view.ActionMode.Callback;
10import android.view.KeyEvent;
11import android.view.Menu;
12import android.view.MenuItem;
13import android.view.MotionEvent;
14import android.view.View;
15import android.view.Window;
16import android.view.WindowManager.LayoutParams;
17import android.view.accessibility.AccessibilityEvent;
18
19/**
20 * A wrapper for a Window.Callback instance, allowing subclasses to listen to or override specific
21 * window messages.
22 */
23class WindowCallbackWrapper implements Window.Callback {
24    private final Window.Callback mCallback;
25
26    public WindowCallbackWrapper(Window.Callback callback) {
27        mCallback = callback;
28    }
29
30    @Override
31    public boolean dispatchGenericMotionEvent(MotionEvent event) {
32        return mCallback.dispatchGenericMotionEvent(event);
33    }
34
35    @Override
36    public boolean dispatchKeyEvent(KeyEvent event) {
37        return mCallback.dispatchKeyEvent(event);
38    }
39
40    @Override
41    public boolean dispatchKeyShortcutEvent(KeyEvent event) {
42        return mCallback.dispatchKeyShortcutEvent(event);
43    }
44
45    @Override
46    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
47        return mCallback.dispatchPopulateAccessibilityEvent(event);
48    }
49
50    @Override
51    public boolean dispatchTouchEvent(MotionEvent event) {
52        return mCallback.dispatchTouchEvent(event);
53    }
54
55    @Override
56    public boolean dispatchTrackballEvent(MotionEvent event) {
57        return mCallback.dispatchTrackballEvent(event);
58    }
59
60    @Override
61    public void onActionModeFinished(ActionMode mode) {
62        mCallback.onActionModeFinished(mode);
63    }
64
65    @Override
66    public void onActionModeStarted(ActionMode mode) {
67        mCallback.onActionModeStarted(mode);
68    }
69
70    @Override
71    public void onAttachedToWindow() {
72        mCallback.onAttachedToWindow();
73    }
74
75    @Override
76    public void onContentChanged() {
77        mCallback.onContentChanged();
78    }
79
80    @Override
81    public boolean onCreatePanelMenu(int featureId, Menu menu) {
82        return mCallback.onCreatePanelMenu(featureId, menu);
83    }
84
85    @Override
86    public View onCreatePanelView(int featureId) {
87        return mCallback.onCreatePanelView(featureId);
88    }
89
90    @Override
91    @SuppressLint("MissingSuperCall")
92    public void onDetachedFromWindow() {
93        mCallback.onDetachedFromWindow();
94    }
95
96    @Override
97    public boolean onMenuItemSelected(int featureId, MenuItem item) {
98        return mCallback.onMenuItemSelected(featureId, item);
99    }
100
101    @Override
102    public boolean onMenuOpened(int featureId, Menu menu) {
103        return mCallback.onMenuOpened(featureId, menu);
104    }
105
106    @Override
107    public void onPanelClosed(int featureId, Menu menu) {
108        mCallback.onPanelClosed(featureId, menu);
109    }
110
111    @Override
112    public boolean onPreparePanel(int featureId, View view, Menu menu) {
113        return mCallback.onPreparePanel(featureId, view, menu);
114    }
115
116    @Override
117    public boolean onSearchRequested() {
118        return mCallback.onSearchRequested();
119    }
120
121    @Override
122    public void onWindowAttributesChanged(LayoutParams attrs) {
123        mCallback.onWindowAttributesChanged(attrs);
124    }
125
126    @Override
127    public void onWindowFocusChanged(boolean hasFocus) {
128        mCallback.onWindowFocusChanged(hasFocus);
129    }
130
131    @Override
132    public ActionMode onWindowStartingActionMode(Callback callback) {
133        return mCallback.onWindowStartingActionMode(callback);
134    }
135
136    public void onWindowDismissed() {
137        // TODO(benm): implement me.
138    }
139
140}
141