|
|
|
|
@ -31,6 +31,10 @@ fun AvatarViewerScreen(group: String?, owner: Long, name: String, onClose: () ->
|
|
|
|
|
val members by repository.members.collectAsState() |
|
|
|
|
val revision by repository.revision.collectAsState() |
|
|
|
|
val account=repository.accountId |
|
|
|
|
DisposableEffect(group,owner,account) { |
|
|
|
|
LogManager.addLog("INFO","Avatar","Viewer opened group=$group owner=$owner account=$account") |
|
|
|
|
onDispose { LogManager.addLog("INFO","Avatar","Viewer closed group=$group owner=$owner") } |
|
|
|
|
} |
|
|
|
|
val source=remember(members,group,owner) { repository.gallerySource(group,owner) } |
|
|
|
|
var files by remember(group,owner,account) { mutableStateOf(emptyList<String>()) } |
|
|
|
|
var selected by rememberSaveable(group,owner,account) { mutableStateOf("") } |
|
|
|
|
@ -59,6 +63,7 @@ fun AvatarViewerScreen(group: String?, owner: Long, name: String, onClose: () ->
|
|
|
|
|
original=null; failed=false |
|
|
|
|
val (channel,member)=source ?: return@LaunchedEffect |
|
|
|
|
if (selected.isEmpty()) return@LaunchedEffect |
|
|
|
|
LogManager.addLog("INFO","Avatar","Viewer selected group=$channel owner=$owner server=${member.avatarServer} file=$selected") |
|
|
|
|
coroutineScope { |
|
|
|
|
launch { |
|
|
|
|
try { previews=previews+(selected to repository.loadAvatar(channel,member.copy(avatarFile=selected),false)) } |
|
|
|
|
|