1/*
2 * Copyright (C) 2009 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.internal.view;
18
19import android.graphics.Rect;
20import android.hardware.input.InputManager;
21import android.os.Bundle;
22import android.os.ParcelFileDescriptor;
23import android.os.RemoteException;
24import android.util.MergedConfiguration;
25import android.view.DisplayCutout;
26import android.view.DragEvent;
27import android.view.IWindow;
28import android.view.IWindowSession;
29import android.view.PointerIcon;
30
31import com.android.internal.os.IResultReceiver;
32
33public class BaseIWindow extends IWindow.Stub {
34    private IWindowSession mSession;
35    public int mSeq;
36
37    public void setSession(IWindowSession session) {
38        mSession = session;
39    }
40
41    @Override
42    public void resized(Rect frame, Rect overscanInsets, Rect contentInsets, Rect visibleInsets,
43            Rect stableInsets, Rect outsets, boolean reportDraw,
44            MergedConfiguration mergedConfiguration, Rect backDropFrame, boolean forceLayout,
45            boolean alwaysConsumeNavBar, int displayId,
46            DisplayCutout.ParcelableWrapper displayCutout) {
47        if (reportDraw) {
48            try {
49                mSession.finishDrawing(this);
50            } catch (RemoteException e) {
51            }
52        }
53    }
54
55    @Override
56    public void moved(int newX, int newY) {
57    }
58
59    @Override
60    public void dispatchAppVisibility(boolean visible) {
61    }
62
63    @Override
64    public void dispatchGetNewSurface() {
65    }
66
67    @Override
68    public void windowFocusChanged(boolean hasFocus, boolean touchEnabled) {
69    }
70
71    @Override
72    public void executeCommand(String command, String parameters, ParcelFileDescriptor out) {
73    }
74
75    @Override
76    public void closeSystemDialogs(String reason) {
77    }
78
79    @Override
80    public void dispatchWallpaperOffsets(float x, float y, float xStep, float yStep, boolean sync) {
81        if (sync) {
82            try {
83                mSession.wallpaperOffsetsComplete(asBinder());
84            } catch (RemoteException e) {
85            }
86        }
87    }
88
89    @Override
90    public void dispatchDragEvent(DragEvent event) {
91        if (event.getAction() == DragEvent.ACTION_DROP) {
92            try {
93                mSession.reportDropResult(this, false);
94            } catch (RemoteException e) {
95            }
96        }
97    }
98
99    @Override
100    public void updatePointerIcon(float x, float y) {
101        InputManager.getInstance().setPointerIconType(PointerIcon.TYPE_NOT_SPECIFIED);
102    }
103
104    @Override
105    public void dispatchSystemUiVisibilityChanged(int seq, int globalUi,
106            int localValue, int localChanges) {
107        mSeq = seq;
108    }
109
110    @Override
111    public void dispatchWallpaperCommand(String action, int x, int y,
112            int z, Bundle extras, boolean sync) {
113        if (sync) {
114            try {
115                mSession.wallpaperCommandComplete(asBinder(), null);
116            } catch (RemoteException e) {
117            }
118        }
119    }
120
121    @Override
122    public void dispatchWindowShown() {
123    }
124
125    @Override
126    public void requestAppKeyboardShortcuts(IResultReceiver receiver, int deviceId) {
127    }
128
129    @Override
130    public void dispatchPointerCaptureChanged(boolean hasCapture) {
131    }
132}
133