From 16c392f4ba6156fef978d6630c952f60a2ade65e Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Wed, 18 May 2016 16:56:22 -0700 Subject: [DO NOT MERGE] Bring back overlay warning in permissions UI. The package installer has a special event handling when the user tries to interact with it and an overlay window intersects the installer one. We show a warning that an overlay was detected and point the user to settings. This regressed and nothing happened when the users click the allow button. bug:28572707 bug:26677796 Change-Id: I617595e7cd5277576ccb9915946b77082a1c2b9e Resolution to mnc-mr2-release when CP'ing ag/1065580 --- res/layout/grant_permissions.xml | 8 ++-- .../permission/ui/OverlayTouchActivity.java | 3 +- .../permission/ui/SecureButtonView.java | 56 ---------------------- 3 files changed, 7 insertions(+), 60 deletions(-) delete mode 100644 src/com/android/packageinstaller/permission/ui/SecureButtonView.java diff --git a/res/layout/grant_permissions.xml b/res/layout/grant_permissions.xml index ffbd276b..0f324e5c 100644 --- a/res/layout/grant_permissions.xml +++ b/res/layout/grant_permissions.xml @@ -80,15 +80,17 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/buttonBarButtonStyle" - android:text="@string/grant_dialog_button_deny" /> + android:text="@string/grant_dialog_button_deny" > + - + android:text="@string/grant_dialog_button_allow" > + diff --git a/src/com/android/packageinstaller/permission/ui/OverlayTouchActivity.java b/src/com/android/packageinstaller/permission/ui/OverlayTouchActivity.java index e4cbff3a..7b1d3793 100644 --- a/src/com/android/packageinstaller/permission/ui/OverlayTouchActivity.java +++ b/src/com/android/packageinstaller/permission/ui/OverlayTouchActivity.java @@ -29,7 +29,8 @@ public class OverlayTouchActivity extends Activity { @Override public boolean dispatchTouchEvent(MotionEvent event) { - mObscuredTouch = (event.getFlags() & MotionEvent.FLAG_WINDOW_IS_OBSCURED) != 0; + mObscuredTouch = (event.getFlags() & (MotionEvent.FLAG_WINDOW_IS_OBSCURED + | MotionEvent.FLAG_WINDOW_IS_PARTIALLY_OBSCURED)) != 0; return super.dispatchTouchEvent(event); } diff --git a/src/com/android/packageinstaller/permission/ui/SecureButtonView.java b/src/com/android/packageinstaller/permission/ui/SecureButtonView.java deleted file mode 100644 index 624744e5..00000000 --- a/src/com/android/packageinstaller/permission/ui/SecureButtonView.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.packageinstaller.permission.ui; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.widget.Button; - -/** - * Extension of Button that uses the hidden MotionEvent flag for partially obscured windows to - * prevent tapjacking attacks. - */ -public class SecureButtonView extends Button { - - public SecureButtonView(Context context) { - this(context, null); - } - - public SecureButtonView(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public SecureButtonView(Context context, AttributeSet attrs, int defStyleAttr) { - this(context, attrs, defStyleAttr, 0); - } - - public SecureButtonView(Context context, AttributeSet attrs, int defStyleAttr, - int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - @Override - public boolean onFilterTouchEventForSecurity(MotionEvent event) { - if ((event.getFlags() & MotionEvent.FLAG_WINDOW_IS_OBSCURED) != 0 - || (event.getFlags() & MotionEvent.FLAG_WINDOW_IS_PARTIALLY_OBSCURED) != 0) { - // Window is obscured, drop this touch. - return false; - } - return true; - } -} -- cgit v1.2.3