
<!-- Copyright (C) 2014 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.
-->

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.android.support.wearable.notifications.MainActivity"
        tools:ignore="MergeRootFrame">

    <LinearLayout android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

        <include layout="@layout/layout_divider" />

        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

            <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:minWidth="@dimen/editor_spinner_caption_min_width"
                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
                    android:gravity="center_vertical"
                    android:text="@string/preset" />

            <Spinner android:id="@+id/preset_spinner"
                    android:layout_marginLeft="10dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

        </LinearLayout>

        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

            <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:minWidth="@dimen/editor_spinner_caption_min_width"
                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
                    android:gravity="center_vertical"
                    android:text="@string/priority" />

            <Spinner android:id="@+id/priority_spinner"
                    android:layout_marginLeft="10dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

        </LinearLayout>

        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

            <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:minWidth="@dimen/editor_spinner_caption_min_width"
                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
                    android:gravity="center_vertical"
                    android:text="@string/actions" />

            <Spinner android:id="@+id/actions_spinner"
                    android:layout_marginLeft="10dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

        </LinearLayout>

        <LinearLayout
                android:id="@+id/title_edit_field"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

            <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:minWidth="@dimen/editor_spinner_caption_min_width"
                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
                    android:gravity="center_vertical"
                    android:text="@string/title" />

            <EditText android:id="@+id/title_editor"
                    android:layout_marginLeft="10dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

        </LinearLayout>

        <LinearLayout
                android:id="@+id/text_edit_field"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

            <TextView
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:minWidth="@dimen/editor_spinner_caption_min_width"
                    android:minHeight="?android:attr/listPreferredItemHeightSmall"
                    android:gravity="center_vertical"
                    android:text="@string/text" />

            <EditText android:id="@+id/text_editor"
                    android:layout_marginLeft="10dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

        </LinearLayout>

        <CheckBox android:id="@+id/include_large_icon_checkbox"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:paddingTop="@dimen/editor_item_padding_top"
                android:paddingBottom="@dimen/editor_item_padding_bottom"
                android:text="@string/include_large_icon" />

        <CheckBox android:id="@+id/local_only_checkbox"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:paddingTop="@dimen/editor_item_padding_top"
                android:paddingBottom="@dimen/editor_item_padding_bottom"
                android:text="@string/local_only" />

        <CheckBox android:id="@+id/include_content_intent_checkbox"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:paddingTop="@dimen/editor_item_padding_top"
                android:paddingBottom="@dimen/editor_item_padding_bottom"
                android:text="@string/include_content_intent" />

        <CheckBox android:id="@+id/vibrate_checkbox"
                  android:layout_height="wrap_content"
                  android:layout_width="wrap_content"
                  android:paddingTop="@dimen/editor_item_padding_top"
                  android:paddingBottom="@dimen/editor_item_padding_bottom"
                  android:text="@string/vibrate" />

        <LinearLayout android:id="@+id/background_pickers"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">
        </LinearLayout>

    </LinearLayout>

</ScrollView>
