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 
15 package com.android.systemui.statusbar.phone;
16 
17 import static android.view.MotionEvent.ACTION_OUTSIDE;
18 
19 import android.annotation.AttrRes;
20 import android.annotation.NonNull;
21 import android.annotation.Nullable;
22 import android.content.Context;
23 import android.util.AttributeSet;
24 import android.view.MotionEvent;
25 import android.widget.FrameLayout;
26 
27 import com.android.systemui.statusbar.policy.DeadZone;
28 
29 public class NavigationBarFrame extends FrameLayout {
30 
31     private DeadZone mDeadZone = null;
32 
NavigationBarFrame(@onNull Context context)33     public NavigationBarFrame(@NonNull Context context) {
34         super(context);
35     }
36 
NavigationBarFrame(Context context, AttributeSet attrs)37     public NavigationBarFrame(Context context, AttributeSet attrs) {
38         super(context, attrs);
39     }
40 
NavigationBarFrame(@onNull Context context, @Nullable AttributeSet attrs, @AttrRes int defStyleAttr)41     public NavigationBarFrame(@NonNull Context context, @Nullable AttributeSet attrs,
42             @AttrRes int defStyleAttr) {
43         super(context, attrs, defStyleAttr);
44     }
45 
setDeadZone(@onNull DeadZone deadZone)46     public void setDeadZone(@NonNull DeadZone deadZone) {
47         mDeadZone = deadZone;
48     }
49 
50     @Override
dispatchTouchEvent(MotionEvent event)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 }