diff options
author | Joe Onorato <joeo@google.com> | 2011-01-30 15:38:30 -0800 |
---|---|---|
committer | Joe Onorato <joeo@google.com> | 2011-01-30 15:38:30 -0800 |
commit | ac0ee89bd985c024870fefca9a3422c4585b62d4 (patch) | |
tree | cce936ac79d2843f86e32d84f45e89a47dbe5336 /services/java | |
parent | f2057d907b5d9c75086337e840f70b5061b2a5aa (diff) | |
download | frameworks_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/java')
-rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 10 |
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) { |