From 60ee25643e0a7b8841063a4e97b0f18c51807e91 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Fri, 22 Jul 2011 12:34:33 -0400 Subject: The fullest of fullscreen modes. View.setSystemUiVisibility() now properly accepts a bitfield, including: * SYSTEM_UI_FLAG_LOW_PROFILE: "lights out mode" (previously known, erroneously, as STATUS_BAR_HIDDEN) * SYSTEM_UI_FLAG_HIDE_NAVIGATION: for when you need every single pixel on a device that also has a navigation bar These flags are painstakingly aggregated across the entire view hierarchy and carefully delivered to the status bar service, which in turn gently passes them along to the bar implementation. To really get access to the whole screen, you need to use HIDE_NAVIGATION in conjunction with FLAG_FULLSCREEN and FLAG_LAYOUT_IN_SCREEN. See development/samples/Overscan for an example of how to do this. Change-Id: I5fbfe009d9ceebbbf71db73f14a7008ea7c1d4da --- .../com/android/statusbartest/StatusBarTest.java | 52 +++++++++++++++------- 1 file changed, 37 insertions(+), 15 deletions(-) (limited to 'tests/StatusBar') diff --git a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java b/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java index e75a079..da5f488 100644 --- a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java +++ b/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java @@ -48,6 +48,8 @@ public class StatusBarTest extends TestActivity StatusBarManager mStatusBarManager; NotificationManager mNotificationManager; Handler mHandler = new Handler(); + int mUiVisibility = 0; + View mListView; View.OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener = new View.OnSystemUiVisibilityChangeListener() { @@ -69,32 +71,52 @@ public class StatusBarTest extends TestActivity return mTests; } + @Override + public void onResume() { + super.onResume(); + + mListView = findViewById(android.R.id.list); + mListView.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener); + } + private Test[] mTests = new Test[] { - new Test("DISABLE_NAVIGATION") { + new Test("toggle LOW_PROFILE (lights out)") { public void run() { - View v = findViewById(android.R.id.list); - v.setSystemUiVisibility(View.STATUS_BAR_DISABLE_NAVIGATION); + if (0 != (mUiVisibility & View.SYSTEM_UI_FLAG_LOW_PROFILE)) { + mUiVisibility &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE; + } else { + mUiVisibility |= View.SYSTEM_UI_FLAG_LOW_PROFILE; + } + mListView.setSystemUiVisibility(mUiVisibility); } }, - new Test("STATUS_BAR_HIDDEN") { + new Test("toggle HIDE_NAVIGATION") { public void run() { - View v = findViewById(android.R.id.list); - v.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener); - v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN); + if (0 != (mUiVisibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)) { + mUiVisibility &= ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; + } else { + mUiVisibility |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; + } + mListView.setSystemUiVisibility(mUiVisibility); + } }, - new Test("STATUS_BAR_VISIBLE") { + new Test("clear SYSTEM_UI_FLAGs") { public void run() { - View v = findViewById(android.R.id.list); - v.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener); - v.setSystemUiVisibility(View.STATUS_BAR_VISIBLE); + mUiVisibility = 0; + mListView.setSystemUiVisibility(mUiVisibility); } }, - new Test("no setSystemUiVisibility") { +// new Test("no setSystemUiVisibility") { +// public void run() { +// View v = findViewById(android.R.id.list); +// v.setOnSystemUiVisibilityChangeListener(null); +// v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); +// } +// }, + new Test("DISABLE_NAVIGATION") { public void run() { - View v = findViewById(android.R.id.list); - v.setOnSystemUiVisibilityChangeListener(null); - v.setSystemUiVisibility(View.STATUS_BAR_VISIBLE); + mListView.setSystemUiVisibility(View.STATUS_BAR_DISABLE_NAVIGATION); } }, new Test("Double Remove") { -- cgit v1.1