package com.peachpasswords.widget import android.content.Context import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.glance.GlanceId import androidx.glance.GlanceModifier import androidx.glance.GlanceTheme import androidx.glance.action.clickable import androidx.glance.appwidget.GlanceAppWidget import androidx.glance.appwidget.GlanceAppWidgetReceiver import androidx.glance.appwidget.action.actionStartActivity import androidx.glance.appwidget.cornerRadius import androidx.glance.appwidget.provideContent import androidx.glance.LocalContext import androidx.glance.background import androidx.glance.layout.Alignment import androidx.glance.layout.Column import androidx.glance.layout.fillMaxSize import androidx.glance.layout.padding import androidx.glance.text.FontStyle import androidx.glance.text.FontWeight import androidx.glance.text.Text import androidx.glance.text.TextStyle import androidx.glance.unit.ColorProvider import com.peachpasswords.MainActivity // Peach palette — amber on near-black, matching the app shell. private val WidgetBg = Color(0xFF0C0A06) private val Accent = Color(0xFFE8956D) private val Muted = Color(0xFF8A8178) class PeachSmallWidget : GlanceAppWidget() { override suspend fun provideGlance(context: Context, id: GlanceId) { provideContent { GlanceTheme { WidgetContent("peach", "tap to unlock") } } } } class PeachMediumWidget : GlanceAppWidget() { override suspend fun provideGlance(context: Context, id: GlanceId) { provideContent { GlanceTheme { WidgetContent("peach", "your vault, one tap away") } } } } class PeachSmallWidgetReceiver : GlanceAppWidgetReceiver() { override val glanceAppWidget: GlanceAppWidget = PeachSmallWidget() } class PeachMediumWidgetReceiver : GlanceAppWidgetReceiver() { override val glanceAppWidget: GlanceAppWidget = PeachMediumWidget() } @Composable private fun WidgetContent(wordmark: String, hint: String) { val launch = android.content.Intent(LocalContext.current, MainActivity::class.java) Column( modifier = GlanceModifier .fillMaxSize() .background(WidgetBg) .cornerRadius(20.dp) .padding(16.dp) .clickable(actionStartActivity(launch)), verticalAlignment = Alignment.Vertical.CenterVertically, horizontalAlignment = Alignment.Horizontal.Start, ) { Text( text = wordmark, style = TextStyle(color = ColorProvider(Accent), fontSize = 22.sp, fontStyle = FontStyle.Italic, fontWeight = FontWeight.Medium), ) Text( text = hint, style = TextStyle(color = ColorProvider(Muted), fontSize = 11.sp), ) } }