1/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5 * except in compliance with the License. You may obtain a copy of the License at
6 *
7 *      http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software distributed under the
10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11 * KIND, either express or implied. See the License for the specific language governing
12 * permissions and limitations under the License.
13 */
14
15package com.android.systemui.statusbar.phone;
16
17import static android.view.MotionEvent.ACTION_OUTSIDE;
18
19import android.annotation.AttrRes;
20import android.annotation.NonNull;
21import android.annotation.Nullable;
22import android.content.Context;
23import android.util.AttributeSet;
24import android.view.MotionEvent;
25import android.widget.FrameLayout;
26
27import com.android.systemui.statusbar.policy.DeadZone;
28
29public class NavigationBarFrame extends FrameLayout {
30
31    private DeadZone mDeadZone = null;
32
33    public NavigationBarFrame(@NonNull Context context) {
34        super(context);
35    }
36
37    public NavigationBarFrame(Context context, AttributeSet attrs) {
38        super(context, attrs);
39    }
40
41    public NavigationBarFrame(@NonNull Context context, @Nullable AttributeSet attrs,
42            @AttrRes int defStyleAttr) {
43        super(context, attrs, defStyleAttr);
44    }
45
46    public void setDeadZone(@NonNull DeadZone deadZone) {
47        mDeadZone = deadZone;
48    }
49
50    @Override
51    public boolean dispatchTouchEvent(MotionEvent event) {
52        if (event.getAction() == ACTION_OUTSIDE) {
53            if (mDeadZone != null) {
54                return mDeadZone.onTouchEvent(event);
55            }
56        }
57        return super.dispatchTouchEvent(event);
58    }
59}