Moved immersive mode to ui/window, updated to use IMMERSIVE_STICKY flag.
Change-Id: I3e1379a835f4494dc55ae1b10369f4a45d7de7c7
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/.gitignore b/ui/ImmersiveMode/ImmersiveModeSample/.gitignore
deleted file mode 100644
index f52a120..0000000
--- a/ui/ImmersiveMode/ImmersiveModeSample/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-src/template/
-src/common/
-build.gradle
diff --git a/ui/ImmersiveMode/build.gradle b/ui/ImmersiveMode/build.gradle
deleted file mode 100644
index 5ed96a9..0000000
--- a/ui/ImmersiveMode/build.gradle
+++ /dev/null
@@ -1,7 +0,0 @@
-// BEGIN_EXCLUDE
-apply from: "../../../../build/build.gradle"
-samplegen {
- pathToBuild "../../../../build"
- pathToSamplesCommon "../../common"
-}
-// END_EXCLUDE
diff --git a/ui/window/ImmersiveMode/ImmersiveModeSample/.gitignore b/ui/window/ImmersiveMode/ImmersiveModeSample/.gitignore
new file mode 100644
index 0000000..6eb878d
--- /dev/null
+++ b/ui/window/ImmersiveMode/ImmersiveModeSample/.gitignore
@@ -0,0 +1,16 @@
+# Copyright 2013 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.
+src/template/
+src/common/
+build.gradle
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/README-singleview.txt b/ui/window/ImmersiveMode/ImmersiveModeSample/README-singleview.txt
similarity index 100%
rename from ui/ImmersiveMode/ImmersiveModeSample/README-singleview.txt
rename to ui/window/ImmersiveMode/ImmersiveModeSample/README-singleview.txt
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/proguard-project.txt b/ui/window/ImmersiveMode/ImmersiveModeSample/proguard-project.txt
similarity index 100%
rename from ui/ImmersiveMode/ImmersiveModeSample/proguard-project.txt
rename to ui/window/ImmersiveMode/ImmersiveModeSample/proguard-project.txt
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/src/main/AndroidManifest.xml b/ui/window/ImmersiveMode/ImmersiveModeSample/src/main/AndroidManifest.xml
similarity index 100%
rename from ui/ImmersiveMode/ImmersiveModeSample/src/main/AndroidManifest.xml
rename to ui/window/ImmersiveMode/ImmersiveModeSample/src/main/AndroidManifest.xml
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/src/main/java/com/example/android/immersivemode/ImmersiveModeFragment.java b/ui/window/ImmersiveMode/ImmersiveModeSample/src/main/java/com/example/android/immersivemode/ImmersiveModeFragment.java
similarity index 88%
rename from ui/ImmersiveMode/ImmersiveModeSample/src/main/java/com/example/android/immersivemode/ImmersiveModeFragment.java
rename to ui/window/ImmersiveMode/ImmersiveModeSample/src/main/java/com/example/android/immersivemode/ImmersiveModeFragment.java
index d9c4fb8..8a7255c 100644
--- a/ui/ImmersiveMode/ImmersiveModeSample/src/main/java/com/example/android/immersivemode/ImmersiveModeFragment.java
+++ b/ui/window/ImmersiveMode/ImmersiveModeSample/src/main/java/com/example/android/immersivemode/ImmersiveModeFragment.java
@@ -68,7 +68,7 @@
// END_INCLUDE (get_current_ui_flags)
// BEGIN_INCLUDE (toggle_ui_flags)
boolean isImmersiveModeEnabled =
- ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE) == uiOptions);
+ ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions);
if (isImmersiveModeEnabled) {
Log.i(TAG, "Turning immersive mode mode off. ");
} else {
@@ -89,8 +89,12 @@
// Note that this flag doesn't do anything by itself, it only augments the behavior
// of HIDE_NAVIGATION and FLAG_FULLSCREEN. For the purposes of this sample
// all three flags are being toggled together.
+ // Note that there are two immersive mode UI flags, one of which is referred to as "sticky".
+ // Sticky immersive mode differs in that it makes the navigation and status bars
+ // semi-transparent, and the UI flag does not get cleared when the user interacts with
+ // the screen.
if (Build.VERSION.SDK_INT >= 18) {
- newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE;
+ newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
}
getActivity().getWindow().getDecorView().setSystemUiVisibility(newUiOptions);
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-hdpi/ic_launcher.png b/ui/window/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from ui/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-hdpi/ic_launcher.png
rename to ui/window/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-mdpi/ic_launcher.png b/ui/window/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from ui/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-mdpi/ic_launcher.png
rename to ui/window/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-xhdpi/ic_launcher.png b/ui/window/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from ui/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-xhdpi/ic_launcher.png
rename to ui/window/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-xxhdpi/ic_launcher.png b/ui/window/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from ui/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-xxhdpi/ic_launcher.png
rename to ui/window/ImmersiveMode/ImmersiveModeSample/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/tests/AndroidManifest.xml b/ui/window/ImmersiveMode/ImmersiveModeSample/tests/AndroidManifest.xml
similarity index 100%
rename from ui/ImmersiveMode/ImmersiveModeSample/tests/AndroidManifest.xml
rename to ui/window/ImmersiveMode/ImmersiveModeSample/tests/AndroidManifest.xml
diff --git a/ui/ImmersiveMode/ImmersiveModeSample/tests/src/com/example/android/immersivemode/tests/ImmersiveModeSampleTests.java b/ui/window/ImmersiveMode/ImmersiveModeSample/tests/src/com/example/android/immersivemode/tests/ImmersiveModeSampleTests.java
similarity index 100%
rename from ui/ImmersiveMode/ImmersiveModeSample/tests/src/com/example/android/immersivemode/tests/ImmersiveModeSampleTests.java
rename to ui/window/ImmersiveMode/ImmersiveModeSample/tests/src/com/example/android/immersivemode/tests/ImmersiveModeSampleTests.java
diff --git a/ui/window/ImmersiveMode/ImmersiveModeSample/tests/src/com/example/android/immersivemode/tests/SampleTests.java b/ui/window/ImmersiveMode/ImmersiveModeSample/tests/src/com/example/android/immersivemode/tests/SampleTests.java
new file mode 100644
index 0000000..162b3bd
--- /dev/null
+++ b/ui/window/ImmersiveMode/ImmersiveModeSample/tests/src/com/example/android/immersivemode/tests/SampleTests.java
@@ -0,0 +1,79 @@
+/*
+* Copyright 2013 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.
+*/
+
+
+
+/*
+* Copyright (C) 2013 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.example.android.immersivemode.tests;
+
+import com.example.android.immersivemode.*;
+
+import android.test.ActivityInstrumentationTestCase2;
+
+/**
+* Tests for ImmersiveMode sample.
+*/
+public class SampleTests extends ActivityInstrumentationTestCase2<MainActivity> {
+
+ private MainActivity mTestActivity;
+ private ImmersiveModeFragment mTestFragment;
+
+ public SampleTests() {
+ super(MainActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // Starts the activity under test using the default Intent with:
+ // action = {@link Intent#ACTION_MAIN}
+ // flags = {@link Intent#FLAG_ACTIVITY_NEW_TASK}
+ // All other fields are null or empty.
+ mTestActivity = getActivity();
+ mTestFragment = (ImmersiveModeFragment)
+ mTestActivity.getSupportFragmentManager().getFragments().get(1);
+ }
+
+ /**
+ * Test if the test fixture has been set up correctly.
+ */
+ public void testPreconditions() {
+ //Try to add a message to add context to your assertions. These messages will be shown if
+ //a tests fails and make it easy to understand why a test failed
+ assertNotNull("mTestActivity is null", mTestActivity);
+ assertNotNull("mTestFragment is null", mTestFragment);
+ }
+
+ /**
+ * Add more tests below.
+ */
+
+}
\ No newline at end of file
diff --git a/ui/window/ImmersiveMode/_index.jd b/ui/window/ImmersiveMode/_index.jd
new file mode 100644
index 0000000..7c9a272
--- /dev/null
+++ b/ui/window/ImmersiveMode/_index.jd
@@ -0,0 +1,14 @@
+
+
+
+page.tags="ImmersiveMode"
+sample.group=UI
+@jd:body
+
+<p>
+
+ One of the features introduced in KitKat is "immersive mode". Immersive mode gives the
+ user the ability to show/hide the status bar and navigation bar with a swipe. To try,
+ click the "Toggle immersive mode" button, then try swiping the bar in and out!
+
+ </p>
diff --git a/ui/window/ImmersiveMode/build.gradle b/ui/window/ImmersiveMode/build.gradle
new file mode 100644
index 0000000..ffb5c2f
--- /dev/null
+++ b/ui/window/ImmersiveMode/build.gradle
@@ -0,0 +1,11 @@
+
+
+
+
+// BEGIN_EXCLUDE
+apply from: "../../../../../build/build.gradle"
+samplegen {
+ pathToBuild "../../../../../build"
+ pathToSamplesCommon "../../../common"
+}
+// END_EXCLUDE
diff --git a/ui/ImmersiveMode/buildSrc/build.gradle b/ui/window/ImmersiveMode/buildSrc/build.gradle
similarity index 63%
rename from ui/ImmersiveMode/buildSrc/build.gradle
rename to ui/window/ImmersiveMode/buildSrc/build.gradle
index 8c294c2..e344a8c 100644
--- a/ui/ImmersiveMode/buildSrc/build.gradle
+++ b/ui/window/ImmersiveMode/buildSrc/build.gradle
@@ -1,3 +1,6 @@
+
+
+
repositories {
mavenCentral()
}
@@ -8,7 +11,7 @@
sourceSets {
main {
groovy {
- srcDir new File(rootDir, "../../../../../build/buildSrc/src/main/groovy")
+ srcDir new File(rootDir, "../../../../../../build/buildSrc/src/main/groovy")
}
}
}
diff --git a/ui/ImmersiveMode/gradle/wrapper/gradle-wrapper.jar b/ui/window/ImmersiveMode/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from ui/ImmersiveMode/gradle/wrapper/gradle-wrapper.jar
rename to ui/window/ImmersiveMode/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/ui/ImmersiveMode/gradle/wrapper/gradle-wrapper.properties b/ui/window/ImmersiveMode/gradle/wrapper/gradle-wrapper.properties
similarity index 94%
rename from ui/ImmersiveMode/gradle/wrapper/gradle-wrapper.properties
rename to ui/window/ImmersiveMode/gradle/wrapper/gradle-wrapper.properties
index 5c22dec..861eddc 100644
--- a/ui/ImmersiveMode/gradle/wrapper/gradle-wrapper.properties
+++ b/ui/window/ImmersiveMode/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-1.6-bin.zip
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-bin.zip
diff --git a/ui/ImmersiveMode/gradlew b/ui/window/ImmersiveMode/gradlew
similarity index 100%
rename from ui/ImmersiveMode/gradlew
rename to ui/window/ImmersiveMode/gradlew
diff --git a/ui/ImmersiveMode/gradlew.bat b/ui/window/ImmersiveMode/gradlew.bat
similarity index 100%
rename from ui/ImmersiveMode/gradlew.bat
rename to ui/window/ImmersiveMode/gradlew.bat
diff --git a/ui/ImmersiveMode/settings.gradle b/ui/window/ImmersiveMode/settings.gradle
similarity index 90%
rename from ui/ImmersiveMode/settings.gradle
rename to ui/window/ImmersiveMode/settings.gradle
index 409c461..d13a7a1 100644
--- a/ui/ImmersiveMode/settings.gradle
+++ b/ui/window/ImmersiveMode/settings.gradle
@@ -1 +1,4 @@
+
+
+
include 'ImmersiveModeSample'
diff --git a/ui/ImmersiveMode/template-params.xml b/ui/window/ImmersiveMode/template-params.xml
similarity index 95%
rename from ui/ImmersiveMode/template-params.xml
rename to ui/window/ImmersiveMode/template-params.xml
index 9ee55ae..88d3136 100644
--- a/ui/ImmersiveMode/template-params.xml
+++ b/ui/window/ImmersiveMode/template-params.xml
@@ -16,8 +16,9 @@
-->
<sample>
<name>ImmersiveMode</name>
+ <group>UI</group>
<package>com.example.android.immersivemode</package>
- <compileSdkVersion>"android-KeyLimePie"</compileSdkVersion>
+ <compileSdkVersion>19</compileSdkVersion>
<!--TODO: change minSdk if needed-->
<minSdk>4</minSdk>