PhoneStatusBarView.java revision fd52b18d9bf3cd62c7a07058536e9f97db65beea
115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root/*
215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Copyright (C) 2008 The Android Open Source Project
315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Licensed under the Apache License, Version 2.0 (the "License");
515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * you may not use this file except in compliance with the License.
615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * You may obtain a copy of the License at
715a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
815a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *      http://www.apache.org/licenses/LICENSE-2.0
915a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
1015a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Unless required by applicable law or agreed to in writing, software
1115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * distributed under the License is distributed on an "AS IS" BASIS,
1215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * See the License for the specific language governing permissions and
1415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * limitations under the License.
1515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root */
1615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root
17fd52b18d9bf3cd62c7a07058536e9f97db65beeaJoe Onoratopackage com.android.systemui.statusbar.phone;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context;
20d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackbornimport android.content.res.Configuration;
21d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackbornimport android.graphics.Canvas;
22119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onoratoimport android.graphics.Rect;
23d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackbornimport android.os.SystemClock;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.AttributeSet;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.MotionEvent;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.View;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.ViewGroup;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.ViewParent;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.FrameLayout;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3179de0c550037a5328bbc7f4fddaf02f192a5c283Joe Onoratoimport com.android.systemui.R;
32fd52b18d9bf3cd62c7a07058536e9f97db65beeaJoe Onoratoimport com.android.systemui.statusbar.policy.FixedSizeDrawable;
3379de0c550037a5328bbc7f4fddaf02f192a5c283Joe Onorato
34fd52b18d9bf3cd62c7a07058536e9f97db65beeaJoe Onoratopublic class PhoneStatusBarView extends FrameLayout {
35fd52b18d9bf3cd62c7a07058536e9f97db65beeaJoe Onorato    private static final String TAG = "PhoneStatusBarView";
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    static final int DIM_ANIM_TIME = 400;
38d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn
39fd52b18d9bf3cd62c7a07058536e9f97db65beeaJoe Onorato    PhoneStatusBar mService;
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean mTracking;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int mStartX, mStartY;
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ViewGroup mNotificationIcons;
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ViewGroup mStatusIcons;
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    View mDate;
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    FixedSizeDrawable mBackground;
46d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn
47d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    boolean mNightMode = false;
48d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    int mStartAlpha = 0, mEndAlpha = 0;
49d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    long mEndTime = 0;
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato    Rect mButtonBounds = new Rect();
52119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato    boolean mCapturingEvents = true;
53119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato
54fd52b18d9bf3cd62c7a07058536e9f97db65beeaJoe Onorato    public PhoneStatusBarView(Context context, AttributeSet attrs) {
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super(context, attrs);
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected void onFinishInflate() {
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.onFinishInflate();
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mNotificationIcons = (ViewGroup)findViewById(R.id.notificationIcons);
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mStatusIcons = (ViewGroup)findViewById(R.id.statusIcons);
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mDate = findViewById(R.id.date);
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mBackground = new FixedSizeDrawable(mDate.getBackground());
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mBackground.setFixedBounds(0, 0, 0, 0);
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mDate.setBackgroundDrawable(mBackground);
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected void onAttachedToWindow() {
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.onAttachedToWindow();
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mService.onBarViewAttached();
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
75d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn
76d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    @Override
77d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    protected void onConfigurationChanged(Configuration newConfig) {
78d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        super.onConfigurationChanged(newConfig);
79d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        boolean nightMode = (newConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK)
80d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn                == Configuration.UI_MODE_NIGHT_YES;
81d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        if (mNightMode != nightMode) {
82d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn            mNightMode = nightMode;
83d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn            mStartAlpha = getCurAlpha();
84d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn            mEndAlpha = mNightMode ? 0x80 : 0x00;
85d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn            mEndTime = SystemClock.uptimeMillis() + DIM_ANIM_TIME;
86d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn            invalidate();
87d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        }
88d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    }
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
90d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    int getCurAlpha() {
91d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        long time = SystemClock.uptimeMillis();
92d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        if (time > mEndTime) {
93d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn            return mEndAlpha;
94d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        }
95d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        return mEndAlpha
96d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn                - (int)(((mEndAlpha-mStartAlpha) * (mEndTime-time) / DIM_ANIM_TIME));
97d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    }
98d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.onSizeChanged(w, h, oldw, oldh);
102fd52b18d9bf3cd62c7a07058536e9f97db65beeaJoe Onorato        mService.updateExpandedViewPos(PhoneStatusBar.EXPANDED_LEAVE_ALONE);
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected void onLayout(boolean changed, int l, int t, int r, int b) {
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.onLayout(changed, l, t, r, b);
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // put the date date view quantized to the icons
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int oldDateRight = mDate.getRight();
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int newDateRight;
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        newDateRight = getDateSize(mNotificationIcons, oldDateRight,
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                getViewOffset(mNotificationIcons));
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (newDateRight < 0) {
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int offset = getViewOffset(mStatusIcons);
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (oldDateRight < offset) {
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                newDateRight = oldDateRight;
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } else {
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                newDateRight = getDateSize(mStatusIcons, oldDateRight, offset);
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                if (newDateRight < 0) {
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    newDateRight = r;
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int max = r - getPaddingRight();
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (newDateRight > max) {
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            newDateRight = max;
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mDate.layout(mDate.getLeft(), mDate.getTop(), newDateRight, mDate.getBottom());
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mBackground.setFixedBounds(-mDate.getLeft(), -mDate.getTop(), (r-l), (b-t));
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
135d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    @Override
136d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    protected void dispatchDraw(Canvas canvas) {
137d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        super.dispatchDraw(canvas);
138d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        int alpha = getCurAlpha();
139d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        if (alpha != 0) {
140d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn            canvas.drawARGB(alpha, 0, 0, 0);
141d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        }
142d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        if (alpha != mEndAlpha) {
143d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn            invalidate();
144d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn        }
145d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn    }
146d49258fed489bcd72a2b2a6ce3a3c38d4b2531e6Dianne Hackborn
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Gets the left position of v in this view.  Throws if v is not
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * a child of this.
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private int getViewOffset(View v) {
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int offset = 0;
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        while (v != this) {
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            offset += v.getLeft();
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            ViewParent p = v.getParent();
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (v instanceof View) {
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                v = (View)p;
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            } else {
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                throw new RuntimeException(v + " is not a child of " + this);
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return offset;
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private int getDateSize(ViewGroup g, int w, int offset) {
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        final int N = g.getChildCount();
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        for (int i=0; i<N; i++) {
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            View v = g.getChildAt(i);
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int l = v.getLeft() + offset;
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int r = v.getRight() + offset;
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (w >= l && w <= r) {
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return r;
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return -1;
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Ensure that, if there is no target under us to receive the touch,
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * that we process it ourself.  This makes sure that onInterceptTouchEvent()
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is always called for the entire gesture.
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean onTouchEvent(MotionEvent event) {
185119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato        if (!mCapturingEvents) {
186119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato            return false;
187119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato        }
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (event.getAction() != MotionEvent.ACTION_DOWN) {
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mService.interceptTouchEvent(event);
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return true;
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public boolean onInterceptTouchEvent(MotionEvent event) {
196119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato        if (event.getAction() == MotionEvent.ACTION_DOWN) {
197119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato            if (mButtonBounds.contains((int)event.getX(), (int)event.getY())) {
198119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato                mCapturingEvents = false;
199119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato                return false;
200119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato            }
201119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato        }
202119a4015f0f7ac1f63d596da158768f880f9fe9bJoe Onorato        mCapturingEvents = true;
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mService.interceptTouchEvent(event)
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                ? true : super.onInterceptTouchEvent(event);
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
208