|
16 | 16 |
|
17 | 17 | package com.example.platform.ui.appwidgets.glance.layout |
18 | 18 |
|
| 19 | +import android.appwidget.AppWidgetManager |
19 | 20 | import android.content.Context |
20 | 21 | import android.content.Intent |
21 | 22 | import android.net.Uri |
| 23 | +import android.os.Build |
22 | 24 | import android.os.Bundle |
23 | 25 | import android.util.Log |
24 | 26 | import androidx.activity.ComponentActivity |
25 | 27 | import androidx.activity.compose.setContent |
26 | 28 | import androidx.activity.enableEdgeToEdge |
27 | 29 | import androidx.annotation.DrawableRes |
| 30 | +import androidx.annotation.RequiresApi |
28 | 31 | import androidx.annotation.StringRes |
29 | 32 | import androidx.compose.foundation.Image |
30 | 33 | import androidx.compose.foundation.background |
@@ -87,16 +90,33 @@ class CanonicalLayoutActivity : ComponentActivity() { |
87 | 90 | } |
88 | 91 | } |
89 | 92 |
|
| 93 | + @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) |
90 | 94 | override fun onCreate(savedInstanceState: Bundle?) { |
91 | 95 | enableEdgeToEdge() |
92 | 96 |
|
93 | 97 | super.onCreate(savedInstanceState) |
94 | 98 |
|
95 | | - // Generate and publish the live preview for the widget picker |
| 99 | + // Publish Generated Widget Previews |
96 | 100 | lifecycleScope.launch { |
97 | 101 | try { |
98 | | - val manager = GlanceAppWidgetManager(this@CanonicalLayoutActivity) |
99 | | - manager.setWidgetPreviews(FullBleedImageAppWidgetReceiver::class) |
| 102 | + val context = this@CanonicalLayoutActivity |
| 103 | + val receiver = FullBleedImageAppWidgetReceiver::class.java |
| 104 | + val glanceAppWidgetManager = GlanceAppWidgetManager(context) |
| 105 | + val appWidgetManager = context.getSystemService(AppWidgetManager::class.java) |
| 106 | + |
| 107 | + val providerInfo = appWidgetManager.installedProviders.firstOrNull { |
| 108 | + it.provider.className == receiver.name |
| 109 | + } |
| 110 | + |
| 111 | + if (providerInfo?.generatedPreviewCategories == 0) { |
| 112 | + val result = glanceAppWidgetManager.setWidgetPreviews(FullBleedImageAppWidgetReceiver::class) |
| 113 | + val status = when (result) { |
| 114 | + GlanceAppWidgetManager.SET_WIDGET_PREVIEWS_RESULT_SUCCESS -> "Success" |
| 115 | + GlanceAppWidgetManager.SET_WIDGET_PREVIEWS_RESULT_RATE_LIMITED -> "Rate-Limited" |
| 116 | + else -> "Error ($result)" |
| 117 | + } |
| 118 | + Log.i("CanonicalLayoutActivity", "Published previews for ${receiver.simpleName}: $status") |
| 119 | + } |
100 | 120 | } catch (e: Exception) { |
101 | 121 | Log.e("CanonicalLayoutActivity", "Failed to set widget previews", e) |
102 | 122 | } |
|
0 commit comments