am 8a9dd8d1: am 05bbd6dd: Merge "Remove reference to libzipfile."

* commit '8a9dd8d124f2b4c1d89576895057009da729a4e1':
  Remove reference to libzipfile.
diff --git a/samples/SupportDesignDemos/AndroidManifest.xml b/samples/SupportDesignDemos/AndroidManifest.xml
index a92f281..f998dcc 100644
--- a/samples/SupportDesignDemos/AndroidManifest.xml
+++ b/samples/SupportDesignDemos/AndroidManifest.xml
@@ -54,5 +54,31 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".widget.TextInputLayoutUsage"
+                  android:label="@string/design_text_input"
+                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".widget.SnackbarUsage"
+                  android:label="@string/design_snackbar_basic"
+                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".widget.SnackbarWithFloatingActionButton"
+                  android:label="@string/design_snackbar_fab"
+                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="com.example.android.support.design.SAMPLE_CODE" />
+            </intent-filter>
+        </activity>
+
     </application>
 </manifest>
diff --git a/samples/SupportDesignDemos/res/layout/design_snackbar.xml b/samples/SupportDesignDemos/res/layout/design_snackbar.xml
new file mode 100644
index 0000000..ea5508a
--- /dev/null
+++ b/samples/SupportDesignDemos/res/layout/design_snackbar.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<android.support.design.widget.CoordinatorLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/content_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+    <LinearLayout android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:padding="16dp"
+                  android:orientation="vertical">
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_short"
+                android:onClick="showShort"/>
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_short_action"
+                android:onClick="showAction"/>
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_long"
+                android:onClick="showLong"/>
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_long_action"
+                android:onClick="showLongAction"/>
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_long_long_action"
+                android:onClick="showLongLongAction"/>
+
+    </LinearLayout>
+
+</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/design_snackbar_with_fab.xml b/samples/SupportDesignDemos/res/layout/design_snackbar_with_fab.xml
new file mode 100644
index 0000000..e3bcd7c
--- /dev/null
+++ b/samples/SupportDesignDemos/res/layout/design_snackbar_with_fab.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<android.support.design.widget.CoordinatorLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/content_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+    <LinearLayout android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:padding="16dp"
+                  android:orientation="vertical">
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_short"
+                android:onClick="showShort"/>
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_short_action"
+                android:onClick="showAction"/>
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_long"
+                android:onClick="showLong"/>
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_long_action"
+                android:onClick="showLongAction"/>
+
+        <Button
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/snackbar_show_long_long_action"
+                android:onClick="showLongLongAction"/>
+
+    </LinearLayout>
+
+    <android.support.design.widget.FloatingActionButton
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:layout_gravity="bottom|end"
+            android:layout_margin="16dp"
+            android:src="@drawable/abc_ic_ab_back_mtrl_am_alpha"
+            android:clickable="true"/>
+
+</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/layout/design_text_input.xml b/samples/SupportDesignDemos/res/layout/design_text_input.xml
new file mode 100644
index 0000000..4561df1
--- /dev/null
+++ b/samples/SupportDesignDemos/res/layout/design_text_input.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              xmlns:app="http://schemas.android.com/apk/res-auto"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical"
+              android:padding="16dp">
+
+    <android.support.design.widget.TextInputLayout
+            android:id="@+id/input_username"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:errorEnabled="true">
+
+        <EditText
+                android:id="@+id/edit_username"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:hint="@string/form_username"/>
+
+    </android.support.design.widget.TextInputLayout>
+
+    <android.support.design.widget.TextInputLayout
+            android:id="@+id/input_email"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="8dp"
+            app:errorEnabled="true">
+
+        <EditText
+                android:id="@+id/edit_email"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:hint="@string/form_email"/>
+
+    </android.support.design.widget.TextInputLayout>
+
+    <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/show_error"
+            android:onClick="showError"/>
+
+    <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/clear_error"
+            android:onClick="clearError"/>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/res/values/strings.xml b/samples/SupportDesignDemos/res/values/strings.xml
index 4b503c2..7bcfb81 100644
--- a/samples/SupportDesignDemos/res/values/strings.xml
+++ b/samples/SupportDesignDemos/res/values/strings.xml
@@ -19,6 +19,8 @@
 
     <string name="design_fab">Floating Action Button/Basic</string>
     <string name="design_tabs_basic">TabLayout/Usage</string>
+    <string name="design_text_input">Text Input</string>
+
     <string name="fab_size_normal">Normal size</string>
     <string name="fab_size_mini">Mini size</string>
 
@@ -30,4 +32,17 @@
     <string name="add_tab">Add tab</string>
     <string name="remove_tab">Remove tab</string>
 
+    <string name="form_username">Username</string>
+    <string name="form_email">Email address</string>
+    <string name="show_error">Show error</string>
+    <string name="clear_error">Clear error</string>
+
+    <string name="design_snackbar_basic">Snackbar/Usage</string>
+    <string name="design_snackbar_fab">Snackbar/Coordinated with FAB</string>
+    <string name="snackbar_show_short">Snackbar (short message)</string>
+    <string name="snackbar_show_long">Snackbar (long message)</string>
+    <string name="snackbar_show_short_action">Show (short message + action)</string>
+    <string name="snackbar_show_long_action">Show (long message + action)</string>
+    <string name="snackbar_show_long_long_action">Show (long message + long action)</string>
+
 </resources>
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarUsage.java
new file mode 100644
index 0000000..c2ff6c9
--- /dev/null
+++ b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarUsage.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2015 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.support.design.widget;
+
+import com.example.android.support.design.R;
+
+import android.os.Bundle;
+import android.support.design.widget.Snackbar;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Toast;
+
+/**
+ * This demonstrates idiomatic usage of the Floating Action Button
+ */
+public class SnackbarUsage extends AppCompatActivity {
+
+    private ViewGroup mContentView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(getLayoutId());
+
+        mContentView = (ViewGroup) findViewById(R.id.content_view);
+    }
+
+    protected int getLayoutId() {
+        return R.layout.design_snackbar;
+    }
+
+    public void showShort(View view) {
+        Snackbar.make(mContentView, "Short snackbar message", Snackbar.LENGTH_SHORT).show();
+    }
+
+    public void showAction(View view) {
+        Snackbar.make(mContentView, "Short snackbar message", Snackbar.LENGTH_SHORT)
+                .setAction("Action", new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        Toast.makeText(SnackbarUsage.this, "Snackbar Action pressed",
+                                Toast.LENGTH_SHORT).show();
+                    }
+                }).show();
+    }
+
+    public void showLong(View view) {
+        Snackbar.make(mContentView, "Long snackbar message which wraps onto another line and"
+                + "makes the Snackbar taller", Snackbar.LENGTH_SHORT).show();
+    }
+
+    public void showLongAction(View view) {
+        Snackbar.make(mContentView, "Long snackbar message which wraps onto another line and"
+                + "makes the Snackbar taller", Snackbar.LENGTH_SHORT)
+                .setAction("Action", new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        Toast.makeText(SnackbarUsage.this, "Snackbar Action pressed",
+                                Toast.LENGTH_SHORT).show();
+                    }
+                }).show();
+    }
+
+    public void showLongLongAction(View view) {
+        Snackbar.make(mContentView, "Long snackbar message which wraps onto another line and"
+                + "makes the Snackbar taller", Snackbar.LENGTH_SHORT)
+                .setAction("Action which wraps", new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        Toast.makeText(SnackbarUsage.this, "Snackbar Action pressed",
+                                Toast.LENGTH_SHORT).show();
+                    }
+                }).show();
+    }
+
+}
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarWithFloatingActionButton.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarWithFloatingActionButton.java
new file mode 100644
index 0000000..cf8ec8a
--- /dev/null
+++ b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/SnackbarWithFloatingActionButton.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2015 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.support.design.widget;
+
+import com.example.android.support.design.R;
+
+import android.os.Bundle;
+import android.support.design.widget.Snackbar;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * This demonstrates idiomatic usage of the Floating Action Button
+ */
+public class SnackbarWithFloatingActionButton extends SnackbarUsage {
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.design_snackbar_with_fab;
+    }
+
+}
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TextInputLayoutUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TextInputLayoutUsage.java
new file mode 100644
index 0000000..63ac031
--- /dev/null
+++ b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/TextInputLayoutUsage.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2015 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.support.design.widget;
+
+import com.example.android.support.design.R;
+
+import android.os.Bundle;
+import android.support.design.widget.TextInputLayout;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+
+/**
+ * This demonstrates idiomatic usage of {@code TextInputLayout}
+ */
+public class TextInputLayoutUsage extends AppCompatActivity {
+
+    private TextInputLayout mUsernameInputLayout;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.design_text_input);
+
+        mUsernameInputLayout = (TextInputLayout) findViewById(R.id.input_username);
+    }
+
+    public void showError(View view) {
+        mUsernameInputLayout.setError("Some unknown error has occurred");
+    }
+
+    public void clearError(View view) {
+        mUsernameInputLayout.setError(null);
+    }
+
+}