<#--
        Copyright 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.
-->

Steps to use Wear template on top of an existing sample:
- In template-params.xml.ftl:
    - Add the following template:
        <template src="Wear"/>

- Refresh your project (./gradlew refresh)
- Add Wearable-specific code to Wearable directory
- Add code to be shared among the main application and the wearable to Shared
  directory

Note that you still need the main application sample code. This is usually
achieved by adding another template, like "base" for example.


