diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c9899e0e..2ef07273 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,7 +23,7 @@
Removing this would otherwise cause a Manifest merger issue.
See https://developer.android.com/build/manage-manifests#merge_conflict_heuristics
-->
-
+
+
+
@@ -196,6 +198,20 @@
android:name="android.appwidget.provider"
android:resource="@xml/app_widget_weather_forecast_glance" />
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/user-interface/appwidgets/src/main/java/com/example/platform/ui/appwidgets/remote_compose/AndroidPetWidget.kt b/samples/user-interface/appwidgets/src/main/java/com/example/platform/ui/appwidgets/remote_compose/AndroidPetWidget.kt
new file mode 100644
index 00000000..20025f33
--- /dev/null
+++ b/samples/user-interface/appwidgets/src/main/java/com/example/platform/ui/appwidgets/remote_compose/AndroidPetWidget.kt
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2026 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
+ *
+ * https://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.
+ */
+
+package com.example.platform.ui.appwidgets.remote_compose
+
+import android.annotation.SuppressLint
+import android.appwidget.AppWidgetManager
+import android.content.Context
+import android.os.Build
+import androidx.annotation.RequiresApi
+import androidx.compose.remote.creation.compose.layout.RemoteAlignment
+import androidx.compose.remote.creation.compose.layout.RemoteBox
+import androidx.compose.remote.creation.compose.layout.RemoteComposable
+import androidx.compose.remote.creation.compose.layout.RemoteText
+import androidx.compose.remote.creation.compose.modifier.RemoteModifier
+import androidx.compose.remote.creation.compose.modifier.background
+import androidx.compose.remote.creation.compose.modifier.fillMaxSize
+import androidx.compose.remote.creation.compose.state.rc
+import androidx.compose.remote.creation.compose.state.rs
+import androidx.compose.remote.creation.compose.widgets.RemoteComposeWidget
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.Color
+
+@SuppressLint("RestrictedApiAndroidX", "RestrictedApi")
+class AndroidPetWidget : RemoteComposeWidget() {
+
+ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
+ override fun onUpdate(
+ context: Context,
+ appWidgetManager: AppWidgetManager,
+ appWidgetIds: IntArray
+ ) {
+ super.onUpdate(context, appWidgetManager, appWidgetIds)
+ appWidgetIds.forEach { id ->
+ widget.updateRemoteView(context, appWidgetManager, this, id, -1)
+ }
+ }
+
+ @SuppressLint("RestrictedApiAndroidX", "RestrictedApi")
+ @RemoteComposable
+ @Composable
+ override fun Content(context: Context, widgetId: Int) {
+ RemoteBox(
+ modifier = RemoteModifier.fillMaxSize().background(Color.White.rc),
+ contentAlignment = RemoteAlignment.Center
+ ) {
+ RemoteText(
+ text = "Android Pet Coming Soon".rs,
+ color = Color.Black.rc
+ )
+ }
+ }
+}
diff --git a/samples/user-interface/appwidgets/src/main/res/layout/android_pet_widget_fallback.xml b/samples/user-interface/appwidgets/src/main/res/layout/android_pet_widget_fallback.xml
new file mode 100644
index 00000000..457cb4b8
--- /dev/null
+++ b/samples/user-interface/appwidgets/src/main/res/layout/android_pet_widget_fallback.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
diff --git a/samples/user-interface/appwidgets/src/main/res/values/strings.xml b/samples/user-interface/appwidgets/src/main/res/values/strings.xml
index f15b4ea3..b8af365a 100644
--- a/samples/user-interface/appwidgets/src/main/res/values/strings.xml
+++ b/samples/user-interface/appwidgets/src/main/res/values/strings.xml
@@ -25,6 +25,11 @@
Glance Weather
Widget for weather forecast
Mostly cloudy
+
+
+ Android Pet
+ An animated interactive pet widget powered by Remote Compose.
+ Remote Compose widgets work on Android 17 and higher devices. Use an Android 17 device.
LayoutSamples
Settings
diff --git a/samples/user-interface/appwidgets/src/main/res/xml/android_pet_widget_info.xml b/samples/user-interface/appwidgets/src/main/res/xml/android_pet_widget_info.xml
new file mode 100644
index 00000000..656d0ef7
--- /dev/null
+++ b/samples/user-interface/appwidgets/src/main/res/xml/android_pet_widget_info.xml
@@ -0,0 +1,25 @@
+
+
+