diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/ImageDownloadWorker.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/ImageDownloadWorker.kt index 6344ca8178..4995ad7961 100644 --- a/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/ImageDownloadWorker.kt +++ b/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/ImageDownloadWorker.kt @@ -153,7 +153,9 @@ class ImageDownloadWorker( val filters = SearchFilters(AssetType.IMAGE, size=1) val albumId = widgetConfig[kSelectedAlbum] + val showSubtitle = widgetConfig[kShowAlbumName] val albumName = widgetConfig[kSelectedAlbumName] + val subtitle: String? = if (showSubtitle == true) albumName else "" if (albumId != null) { filters.albumIds = listOf(albumId) @@ -162,7 +164,7 @@ class ImageDownloadWorker( val random = api.fetchSearchResults(filters).first() val image = api.fetchImage(random) - return Pair(image, albumName) + return Pair(image, subtitle) } private suspend fun fetchMemory( diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/PhotoWidget.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/PhotoWidget.kt index 1120950c7c..33dcd91b4b 100644 --- a/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/PhotoWidget.kt +++ b/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/PhotoWidget.kt @@ -3,15 +3,17 @@ package app.alextran.immich.widget import android.content.Context import android.graphics.Bitmap import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.* import androidx.datastore.preferences.core.MutablePreferences import androidx.glance.appwidget.* import androidx.glance.* -import androidx.glance.layout.Box -import androidx.glance.layout.ContentScale -import androidx.glance.layout.fillMaxSize +import androidx.glance.action.clickable +import androidx.glance.layout.* import androidx.glance.state.GlanceStateDefinition import androidx.glance.state.PreferencesGlanceStateDefinition import androidx.glance.text.Text +import androidx.glance.text.TextStyle +import androidx.glance.unit.ColorProvider import app.alextran.immich.R import java.io.File @@ -48,8 +50,28 @@ class PhotoWidget : GlanceAppWidget() { contentScale = ContentScale.Crop, modifier = GlanceModifier.fillMaxSize() ) - if (subtitle != null) - Text(subtitle) + + if (!subtitle.isNullOrBlank()) { + Column( + verticalAlignment = Alignment.Bottom, + horizontalAlignment = Alignment.Start, + modifier = GlanceModifier + .fillMaxSize() + .padding(12.dp) + ) { + Text( + text = subtitle, + style = TextStyle( + color = ColorProvider(Color.White), + fontSize = 16.sp + ), + modifier = GlanceModifier + .background(ColorProvider(Color(0x99000000))) // 60% black + .padding(8.dp) + .cornerRadius(8.dp) + ) + } + } } else { Image( provider = ImageProvider(R.drawable.splash), diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/configure/RandomConfigure.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/configure/RandomConfigure.kt index b5f6f0b8b9..7e95401e72 100644 --- a/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/configure/RandomConfigure.kt +++ b/mobile/android/app/src/main/kotlin/app/alextran/immich/widget/configure/RandomConfigure.kt @@ -27,6 +27,7 @@ import app.alextran.immich.widget.ImmichAPI import app.alextran.immich.widget.WidgetState import app.alextran.immich.widget.WidgetType import app.alextran.immich.widget.kSelectedAlbum +import app.alextran.immich.widget.kSelectedAlbumName import app.alextran.immich.widget.kShowAlbumName import kotlinx.coroutines.launch @@ -100,6 +101,7 @@ fun RandomConfiguration(context: Context, appWidgetId: Int, glanceId: GlanceId, suspend fun saveConfiguration() { updateAppWidgetState(context, glanceId) { prefs -> prefs[kSelectedAlbum] = selectedAlbum?.id ?: "" + prefs[kSelectedAlbumName] = selectedAlbum?.label ?: "" prefs[kShowAlbumName] = showAlbumName }