blob: 2cb692def479b42d76732262638c313128a2b6aa [file] [log] [blame]
Tracy Zhoua19cbdd2020-04-26 12:12:11 -07001/*
2 * Copyright (C) 2020 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 */
16package com.android.wallpaper.picker;
17
18import android.content.Context;
19import android.util.AttributeSet;
20import android.view.MotionEvent;
21import android.view.View;
22import android.widget.FrameLayout;
23
24/** A frame layout that listens to touch events and routes them to another view. */
25public class TouchForwardingLayout extends FrameLayout {
26
27 private View mView;
Tracy Zhou3eb234c2020-05-05 15:17:33 -070028 private boolean mForwardingEnabled;
Tracy Zhoua19cbdd2020-04-26 12:12:11 -070029
30 public TouchForwardingLayout(Context context, AttributeSet attrs) {
31 super(context, attrs);
32 }
33
34 @Override
35 public boolean dispatchTouchEvent(MotionEvent ev) {
Tracy Zhou3eb234c2020-05-05 15:17:33 -070036 if (mView != null && mForwardingEnabled) {
Tracy Zhoua19cbdd2020-04-26 12:12:11 -070037 mView.dispatchTouchEvent(ev);
38 }
39 return true;
40 }
41
42 /** Set the view that the touch events are routed to */
Ching-Sung Lib9404622020-05-18 22:38:45 +080043 public void setTargetView(View view) {
Tracy Zhoua19cbdd2020-04-26 12:12:11 -070044 mView = view;
45 }
Tracy Zhou3eb234c2020-05-05 15:17:33 -070046
47 public void setForwardingEnabled(boolean forwardingEnabled) {
48 mForwardingEnabled = forwardingEnabled;
49 }
Tracy Zhoua19cbdd2020-04-26 12:12:11 -070050}