<?xml version="1.0" encoding="UTF-8"?>
<!--
 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.
-->

<sample>
    <name>WearDrawers</name>
    <group>Wearable</group>
    <package>com.example.android.wearable.wear.weardrawers</package>

    <minSdkVersionWear>23</minSdkVersionWear>
    <targetSdkVersionWear>28</targetSdkVersionWear>

    <multiDexEnabled>true</multiDexEnabled>

    <androidX>true</androidX>

    <dependency_wearable>androidx.wear:wear:1.0.0</dependency_wearable>

    <dependency_wearable>androidx.legacy:legacy-support-v13:1.0.0</dependency_wearable>

    <strings>
        <intro>
            <![CDATA[
A simple sample that demonstrates Navigation and Action Drawers, part of Material Design for Wear.
            ]]>
        </intro>
    </strings>

    <template src="base-build" />
    <template src="Wear" />

    <metadata>
        <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
        <status>PUBLISHED</status>
        <!-- See http://go/sample-categories for details on the next 4 fields. -->
        <!-- Most samples just need to udpate the Categories field. This is a comma-
             seperated list of topic tags. Unlike the old category system, samples
             may have multiple categories, so feel free to add extras. Try to avoid
             simply tagging everything with "UI". :)-->
        <categories>Wearable</categories>
        <technologies>Android</technologies>
        <languages>Java</languages>
        <solutions>Mobile</solutions>
        <level>INTERMEDIATE</level>
        <!-- TODO: Dimensions: 512x512, PNG fomrat -->
        <icon>screenshots/icon-web.png</icon>
        <screenshots>
            <img>screenshots/wear-round-1.png</img>
            <img>screenshots/wear-round-2.png</img>
            <img>screenshots/wear-round-3.png</img>
            <img>screenshots/wear-round-4.png</img>
        </screenshots>
        <api_refs>
            <android>android.support.wearable.activity.WearableActivity</android>
            <android>android.support.wearable.view.drawer.WearableActionDrawer</android>
            <android>android.support.wearable.view.drawer.WearableDrawerLayout</android>
            <android>android.support.wearable.view.drawer.WearableNavigationDrawer</android>
        </api_refs>

        <!-- 1-3 line description of the sample here.

            Avoid simply rearranging the sample's title. What does this sample actually
            accomplish, and how does it do it? -->
        <description>
            A simple sample that demonstrates Navigation and Action Drawers, part of Material Design for Wear.
        </description>

        <intro>
            Steps for trying out this sample:

            * Compile and install the wearable app onto your Wear device or emulator.
            (**Note:** You must install this app directly to your Wear device or emulator.
            If installed on a phone, it will not be automatically pushed to a paired Wear
            device, see [here][2] for more info).

            This sample uses the planets in our solar system to demonstrate the two Wear
            drawer components and concepts relating to [Wear][1] and [Material Design][3]:
            * Customizes and enables screen/planet changes with the [Navigation Drawer][4]
            * Adds customized actions to each screen using the [Action Drawer][5]

            [1]: http://developer.android.com/wear/
            [2]: https://developer.android.com/training/wearables/apps/creating.html#Install
            [3]: http://www.google.com/design/wear
            [4]: http://www.google.com/design/spec-wear/components/navigation-drawer.html
            [5]: http://www.google.com/design/spec-wear/components/action-drawer.html
        </intro>
    </metadata>
</sample>
