• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (C) 2014 Google Inc.
3  * Licensed to The Android Open Source Project.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 package com.android.mail.ui;
18 
19 import android.content.Context;
20 import android.util.AttributeSet;
21 import android.view.MotionEvent;
22 import android.widget.FrameLayout;
23 
24 /**
25  * Empty frame to steal events for two-pane view when the drawer is open.
26  */
27 public class ConversationViewFrame extends FrameLayout {
28 
29     public interface DownEventListener {
onInterceptCVDownEvent()30         boolean onInterceptCVDownEvent();
31     }
32 
33     private DownEventListener mDownEventListener;
34 
ConversationViewFrame(Context c)35     public ConversationViewFrame(Context c) {
36         super(c, null);
37     }
38 
ConversationViewFrame(Context c, AttributeSet attrs)39     public ConversationViewFrame(Context c, AttributeSet attrs) {
40         super(c, attrs);
41     }
42 
setDownEventListener(DownEventListener l)43     public void setDownEventListener(DownEventListener l) {
44         mDownEventListener = l;
45     }
46 
47     @Override
onInterceptTouchEvent(MotionEvent ev)48     public boolean onInterceptTouchEvent(MotionEvent ev) {
49         boolean steal = false;
50         if (ev.getActionMasked() == MotionEvent.ACTION_DOWN && mDownEventListener != null) {
51             steal = mDownEventListener.onInterceptCVDownEvent();
52             // just drop the event stream that follows when we steal; we closed the drawer and
53             // that's enough.
54         }
55         return steal;
56     }
57 
58 }
59