Skip to content

Commit 2c4b7bd

Browse files
committed
Updates complication snippets
1 parent cd3cbb3 commit 2c4b7bd

File tree

3 files changed

+91
-0
lines changed

3 files changed

+91
-0
lines changed

wear/src/main/AndroidManifest.xml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,12 +212,21 @@
212212
<action android:name="android.support.wearable.complications.ACTION_COMPLICATION_UPDATE_REQUEST" />
213213
</intent-filter>
214214

215+
<!-- Supported types should be comma-separated e.g. SHORT_TEXT,SMALL_IMAGE -->
215216
<meta-data
216217
android:name="android.support.wearable.complications.SUPPORTED_TYPES"
217218
android:value="SHORT_TEXT" />
218219
<meta-data
219220
android:name="android.support.wearable.complications.UPDATE_PERIOD_SECONDS"
220221
android:value="300" />
222+
223+
<!--
224+
Optionally, the complication can be configured by the user by specifying a
225+
configuration activity.
226+
-->
227+
<meta-data
228+
android:name="android.support.wearable.complications.PROVIDER_CONFIG_ACTION"
229+
android:value="MY_CONFIG_ACTION" />
221230
</service>
222231
<!-- [END android_wear_complication_manifest] -->
223232

@@ -241,6 +250,21 @@
241250
</service>
242251
<!-- [END android_wear_timeline_complication_manifest] -->
243252

253+
<activity
254+
android:name=".snippets.complication.ConfigurationActivity"
255+
android:label="@string/configuration_activity_label"
256+
android:exported="true"
257+
android:taskAffinity=""
258+
android:theme="@android:style/Theme.DeviceDefault">
259+
<!-- [START android_wear_complication_intent_filter] -->
260+
<intent-filter>
261+
<action android:name="MY_CONFIG_ACTION" />
262+
<category android:name="android.support.wearable.complications.category.PROVIDER_CONFIG" />
263+
<category android:name="android.intent.category.DEFAULT" />
264+
</intent-filter>
265+
<!-- [END android_wear_complication_intent_filter] -->
266+
</activity>
267+
244268
</application>
245269

246270
</manifest>
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.example.wear.snippets.complication
2+
3+
import android.os.Bundle
4+
import androidx.activity.ComponentActivity
5+
import androidx.activity.compose.setContent
6+
import androidx.compose.foundation.layout.Arrangement
7+
import androidx.compose.foundation.layout.Column
8+
import androidx.compose.foundation.layout.Spacer
9+
import androidx.compose.foundation.layout.fillMaxSize
10+
import androidx.compose.foundation.layout.height
11+
import androidx.compose.runtime.Composable
12+
import androidx.compose.ui.Alignment
13+
import androidx.compose.ui.Modifier
14+
import androidx.compose.ui.unit.dp
15+
import androidx.wear.compose.material3.Button
16+
import androidx.wear.compose.material3.Text
17+
import androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.Companion.EXTRA_CONFIG_COMPLICATION_ID
18+
import androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.Companion.EXTRA_CONFIG_COMPLICATION_TYPE
19+
import androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.Companion.EXTRA_CONFIG_DATA_SOURCE_COMPONENT
20+
21+
class ConfigurationActivity: ComponentActivity() {
22+
override fun onCreate(savedInstanceState: Bundle?) {
23+
super.onCreate(savedInstanceState)
24+
// [START android_wear_complication_configuration_intent]
25+
// Keys defined on ComplicationDataSourceService
26+
val id = intent.getIntExtra(EXTRA_CONFIG_COMPLICATION_ID, -1)
27+
val type = intent.getIntExtra(EXTRA_CONFIG_COMPLICATION_TYPE, -1)
28+
val source = intent.getStringExtra(EXTRA_CONFIG_DATA_SOURCE_COMPONENT)
29+
// [END android_wear_complication_configuration_intent]
30+
setContent {
31+
ComplicationConfig(
32+
id = id,
33+
type = type,
34+
source = source
35+
)
36+
}
37+
}
38+
39+
@Composable
40+
fun ComplicationConfig(
41+
modifier: Modifier = Modifier,
42+
id: Int,
43+
type: Int,
44+
source: String?
45+
) {
46+
Column(
47+
modifier = Modifier.fillMaxSize(),
48+
verticalArrangement = Arrangement.SpaceEvenly,
49+
horizontalAlignment = Alignment.CenterHorizontally
50+
) {
51+
Text("ID: $id")
52+
Text("Type: $type")
53+
Text("Source: $source")
54+
Spacer(modifier = Modifier.height(4.dp))
55+
Button(onClick = {
56+
// [START android_wear_complication_configuration_finish]
57+
setResult(RESULT_OK) // Or RESULT_CANCELLED to cancel configuration
58+
finish()
59+
// [END android_wear_complication_configuration_finish]
60+
}) {
61+
Text("Done!")
62+
}
63+
}
64+
}
65+
}
66+

wear/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@
88
<string name="tile_description">Hello Tile Description</string>
99
<string name="my_complication_service_label">My Complication</string>
1010
<string name="my_complication_timeline_service_label">My Timeline Complication</string>
11+
<string name="configuration_activity_label">Configuration activity</string>
1112
</resources>

0 commit comments

Comments
 (0)