<?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>RuntimePermissionsWear</name>
    <group>Wearable</group>
    <package>com.example.android.wearable.runtimepermissions</package>

    <minSdk>18</minSdk>
    <targetSdkVersion>27</targetSdkVersion>

    <minSdkVersionWear>23</minSdkVersionWear>
    <targetSdkVersionWear>26</targetSdkVersionWear>
    <multiDexEnabled>true</multiDexEnabled>

    <wearable>
        <has_handheld_app>true</has_handheld_app>
    </wearable>

    <dependency>com.android.support:appcompat-v7:27.1.1</dependency>
    <dependency>com.android.support:design:27.1.1</dependency>

    <dependency_wearable>com.android.support:wear:27.1.1</dependency_wearable>

    <strings>
        <intro>
<![CDATA[
A sample that shows how you can handle remote data that requires permissions both on
a wearable device and a mobile device.
]]>
        </intro>
    </strings>

    <!-- The basic templates have already been enabled. Uncomment more as desired. -->
    <template src="base" />
    <template src="WearPlusShared"/>

    <metadata>
        <!-- Values: {DRAFT | PUBLISHED | INTERNAL | DEPRECATED | SUPERCEDED} -->
        <status>PUBLISHED</status>
        <!-- See http://go/sample-categories for details on the next 4 fields. -->
        <categories>Wearable, Permissions</categories>
        <technologies>Android</technologies>
        <languages>Java</languages>
        <solutions>Mobile</solutions>
        <level>INTERMEDIATE</level>
        <!-- Dimensions: 512x512, PNG fomrat -->
        <icon>screenshots/icon-web.png</icon>
        <!-- Path to screenshots. Use <img> tags for each. -->
        <screenshots>
            <img>screenshots/screenshot-wear.png</img>
            <img>screenshots/screenshot-phone.png</img>
        </screenshots>
        <!-- List of APIs that this sample should be cross-referenced under. Use <android>
        for fully-qualified Framework class names ("android:" namespace).

        Use <ext> for custom namespaces, if needed. See "Samples Index API" documentation
        for more details. -->
        <api_refs>
            <android>android.support.v4.app.ActivityCompat</android>
            <android>android.support.v7.app.AppCompatActivity</android>
            <android>android.support.wearable.activity.WearableActivity</android>
            <android>android.support.wearable.view.WatchViewStub</android>
            <android>com.google.android.gms.common.api.GoogleApiClient</android>
            <android>com.google.android.gms.wearable.CapabilityApi</android>
            <android>com.google.android.gms.wearable.CapabilityInfo</android>
            <android>com.google.android.gms.wearable.DataMap</android>
            <android>com.google.android.gms.wearable.MessageApi</android>
            <android>com.google.android.gms.wearable.MessageEvent</android>
            <android>com.google.android.gms.wearable.Node</android>
            <android>com.google.android.gms.wearable.Wearable</android>
            <android>com.google.android.gms.wearable.WearableListenerService</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 sample that shows how you can handle remote data that requires permissions both on
a wearable device and a mobile device.
        </description>

        <!-- Multi-paragraph introduction to sample, from an educational point-of-view.
        Makrdown formatting allowed. This will be used to generate a mini-article for the
        sample on DAC. -->
        <intro>
<![CDATA[
Steps for trying out this sample:
* Compile and install the mobile app onto your mobile device or emulator.
* Compile and install the wearable app onto your Wear device or emulator.
(**Note:** wearable apps are not automatically pushed from your mobile device
unless you build a production release, see [here][3] for more info).
* Start the mobile or wear app. Each app contains two buttons: one for showing
local data and another for showing remote data.
* Click either button to view the data. Both local and remote data require
[dangerous permissions][4] to be approved before displaying the data for
devices running 23 or above. You will be asked to approve the access if you
do not have the proper permissions.
* The happy icon signifies you have access to the data while the sad icon
signifies you do or may not have access (and may be asked to approve access).

This sample demonstrates how to access data and trigger permission approval
on remote devices. It uses [Services][5] and the [Wearable MessageApi][2] to
communicate between devices.

To find out more about wear, visit our [developer Wear page][1].

[1]: http://developer.android.com/wear/
[2]: https://developer.android.com/reference/com/google/android/gms/wearable/MessageApi.html
[3]: https://developer.android.com/training/wearables/apps/creating.html#Install
[4]: http://developer.android.com/guide/topics/security/permissions.html#normal-dangerous
[5]: http://developer.android.com/guide/components/services.html
]]>
        </intro>
    </metadata>
</sample>
