album name handling

This commit is contained in:
bwees 2025-07-02 16:15:48 -05:00
parent ada0f984b8
commit 42e53232c3
No known key found for this signature in database
3 changed files with 32 additions and 6 deletions

View File

@ -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(

View File

@ -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),

View File

@ -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
}