Courtesy: GitHub

Android WearComplicationProvidersTestSuite Sample

Complication Test Suite is a set of complication providers that provide dummy data and it can be used to test how different types of complications render on a watch face.

Introduction

Steps for trying out the sample:

  • Compile and install the wearable app onto your Wear device or emulator (for Wear scenario).

  • This sample does not have a main Activity (just Services that provide the complication data). Therefore, you may see an error next to the 'Run' button. To fix, click on the "Wearable" dropdown next to the 'Run' button and select 'Edit Configurations'. Under the 'Launch Options', change the 'Launch' field from 'Default APK' to 'Nothing' and save.

This sample provides dummy data for testing the complications UI in your watch face. After selecting a type from your watch face configuration Activity, you can tap on the complications to see more options.

The Wear app demonstrates the use of ComplicationData, ComplicationManager, ComplicationProviderService, ComplicationText, and ProviderUpdateRequester.

Pre-requisites

  • Android SDK 26
  • Android Build Tools v26.0.1
  • Android Support Repository

Screenshots

Screenshot Screenshot

Getting Started

This sample uses the Gradle build system. To build this project, use the "gradlew build" command or use "Import Project" in Android Studio.

Support

If you've found an error in this sample, please file an issue: https://github.com/googlesamples/android-WearComplicationProvidersTestSuite

Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details.

License

Copyright 2017 The Android Open Source Project, Inc.

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you 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.

compile 'com.android.support:appcompat-v7:26.0.0'

compile 'com.google.android.gms:play-services-wearable:11.4.0'

compile 'com.android.support:support-v13:26.1.0'

compile 'com.google.android.support:wearable:2.0.5'

compileSdkVersion 26

versionCode 1

versionName "1.0"

minSdkVersion 23

targetSdkVersion 26

package com.example.android.wearable.wear.wearcomplicationproviderstestsuite

versionCode 1

versionName 1.0

uses-permission

  • android.permission.WAKE_LOCK

NoDataProviderService

A complication provider that always returns {@link ComplicationData#TYPE_NO_DATA}.

ShortTextProviderService

A complication provider that supports only {@link ComplicationData#TYPE_SHORT_TEXT} and cycles through the possible configurations on tap.

SmallImageProviderService

A complication provider that supports only {@link ComplicationData#TYPE_SMALL_IMAGE} and cycles between the different image styles on tap.

LargeImageProviderService

A complication provider that supports only {@link ComplicationData#TYPE_LARGE_IMAGE} and cycles between a couple of images on tap.

IconProviderService

A complication provider that supports only {@link ComplicationData#TYPE_ICON} and cycles through a few different icons on each tap.

LongTextProviderService

A complication provider that supports only {@link ComplicationData#TYPE_LONG_TEXT} and cycles through the possible configurations on tap.

RangedValueProviderService

A complication provider that supports only {@link ComplicationData#TYPE_RANGED_VALUE} and cycles through the possible configurations on tap. The value is randomised on each update.

ComplicationToggleReceiver

Receives intents on tap and causes complication states to be toggled and updated.

Returns a pending intent, suitable for use as a tap intent, that causes a complication to be toggled and updated.

Returns the key for the shared preference used to hold the current state of a given complication.