summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJoe Onorato <joeo@google.com>2011-01-30 15:38:30 -0800
committerJoe Onorato <joeo@google.com>2011-01-30 15:38:30 -0800
commitac0ee89bd985c024870fefca9a3422c4585b62d4 (patch)
treecce936ac79d2843f86e32d84f45e89a47dbe5336 /services
parentf2057d907b5d9c75086337e840f70b5061b2a5aa (diff)
downloadframeworks_base-ac0ee89bd985c024870fefca9a3422c4585b62d4.zip
frameworks_base-ac0ee89bd985c024870fefca9a3422c4585b62d4.tar.gz
frameworks_base-ac0ee89bd985c024870fefca9a3422c4585b62d4.tar.bz2
Check for the STATUS_BAR permission for the system UI properties.
If the app doesn't have that permission, just mask out the bits. Also makes the systemUiVisibility field visible in hierarchyviewer. Change-Id: Ic3d3a3aed96b5c6448832755b4b2e6175117e5be
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/WindowManagerService.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index 779e0ad..7c79b8a 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -47,6 +47,7 @@ import com.android.server.am.BatteryStatsService;
import android.Manifest;
import android.app.ActivityManagerNative;
import android.app.IActivityManager;
+import android.app.StatusBarManager;
import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.ClipData;
@@ -2758,6 +2759,15 @@ public class WindowManagerService extends IWindowManager.Stub
boolean displayed = false;
boolean inTouchMode;
boolean configChanged;
+
+ // if they don't have this permission, mask out the status bar bits
+ if (attrs != null) {
+ if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR)
+ != PackageManager.PERMISSION_GRANTED) {
+ attrs.systemUiVisibility &= ~StatusBarManager.DISABLE_MASK;
+ attrs.subtreeSystemUiVisibility &= ~StatusBarManager.DISABLE_MASK;
+ }
+ }
long origId = Binder.clearCallingIdentity();
synchronized(mWindowMap) {