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>