diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2016-05-18 16:56:22 -0700 |
---|---|---|
committer | Zach Jang <zachjang@google.com> | 2016-05-25 22:17:33 +0000 |
commit | 16c392f4ba6156fef978d6630c952f60a2ade65e (patch) | |
tree | f71860c96436cee0533b75160ead7e24e2d6d163 | |
parent | 2068c7997265011ddc5e4dfa3418407881f7f81e (diff) | |
download | android_packages_apps_PackageInstaller-16c392f4ba6156fef978d6630c952f60a2ade65e.tar.gz android_packages_apps_PackageInstaller-16c392f4ba6156fef978d6630c952f60a2ade65e.tar.bz2 android_packages_apps_PackageInstaller-16c392f4ba6156fef978d6630c952f60a2ade65e.zip |
[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
3 files changed, 7 insertions, 60 deletions
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" > + </Button> - <com.android.packageinstaller.permission.ui.SecureButtonView + <Button android:id="@+id/permission_allow_button" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/buttonBarButtonStyle" android:layout_marginStart="8dip" - android:text="@string/grant_dialog_button_allow" /> + android:text="@string/grant_dialog_button_allow" > + </Button> </com.android.internal.widget.ButtonBarLayout> 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; - } -} |