1package com.peachpasswords.widget23import android.content.Context4import androidx.compose.runtime.Composable5import androidx.compose.ui.graphics.Color6import androidx.compose.ui.unit.dp7import androidx.compose.ui.unit.sp8import androidx.glance.GlanceId9import androidx.glance.GlanceModifier10import androidx.glance.GlanceTheme11import androidx.glance.action.clickable12import androidx.glance.appwidget.GlanceAppWidget13import androidx.glance.appwidget.GlanceAppWidgetReceiver14import androidx.glance.appwidget.action.actionStartActivity15import androidx.glance.appwidget.cornerRadius16import androidx.glance.appwidget.provideContent17import androidx.glance.LocalContext18import androidx.glance.background19import androidx.glance.layout.Alignment20import androidx.glance.layout.Column21import androidx.glance.layout.fillMaxSize22import androidx.glance.layout.padding23import androidx.glance.text.FontStyle24import androidx.glance.text.FontWeight25import androidx.glance.text.Text26import androidx.glance.text.TextStyle27import androidx.glance.unit.ColorProvider28import com.peachpasswords.MainActivity293031private val WidgetBg = Color(0xFF0C0A06)32private val Accent = Color(0xFFE8956D)33private val Muted = Color(0xFF8A8178)3435class PeachSmallWidget : GlanceAppWidget() {36 override suspend fun provideGlance(context: Context, id: GlanceId) {37 provideContent { GlanceTheme { WidgetContent("peach", "tap to unlock") } }38 }39}4041class PeachMediumWidget : GlanceAppWidget() {42 override suspend fun provideGlance(context: Context, id: GlanceId) {43 provideContent { GlanceTheme { WidgetContent("peach", "your vault, one tap away") } }44 }45}4647class PeachSmallWidgetReceiver : GlanceAppWidgetReceiver() {48 override val glanceAppWidget: GlanceAppWidget = PeachSmallWidget()49}5051class PeachMediumWidgetReceiver : GlanceAppWidgetReceiver() {52 override val glanceAppWidget: GlanceAppWidget = PeachMediumWidget()53}5455@Composable56private fun WidgetContent(wordmark: String, hint: String) {57 val launch = android.content.Intent(LocalContext.current, MainActivity::class.java)58 Column(59 modifier = GlanceModifier60 .fillMaxSize()61 .background(WidgetBg)62 .cornerRadius(20.dp)63 .padding(16.dp)64 .clickable(actionStartActivity(launch)),65 verticalAlignment = Alignment.Vertical.CenterVertically,66 horizontalAlignment = Alignment.Horizontal.Start,67 ) {68 Text(69 text = wordmark,70 style = TextStyle(color = ColorProvider(Accent), fontSize = 22.sp, fontStyle = FontStyle.Italic, fontWeight = FontWeight.Medium),71 )72 Text(73 text = hint,74 style = TextStyle(color = ColorProvider(Muted), fontSize = 11.sp),75 )76 }77}