1 /* 2 * Copyright 2024 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 17 package android.view; 18 19 import android.annotation.FlaggedApi; 20 import android.annotation.NonNull; 21 22 import com.android.window.flags.Flags; 23 24 /** 25 * Provides a mechanism for a SurfaceControl to receive input events. 26 */ 27 @FlaggedApi(Flags.FLAG_SURFACE_CONTROL_INPUT_RECEIVER) 28 public interface SurfaceControlInputReceiver { 29 /** 30 * When input events are batched, this is called at most once per frame. When non batched, this 31 * is called immediately for the input event. 32 * 33 * @param event The input event that was received. This input event object will become invalid 34 * and recycled after this method is invoked. If there is need to persist this 35 * object beyond the scope of this method, the overriding code should make a copy 36 * of this object. For example, using 37 * {@link MotionEvent#obtain(MotionEvent other)} or 38 * {@link KeyEvent#KeyEvent(KeyEvent)} } 39 * @return true if the event was handled, false otherwise. 40 */ onInputEvent(@onNull InputEvent event)41 boolean onInputEvent(@NonNull InputEvent event); 42 43 } 44