diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/ZoomableImage.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/ZoomableImage.kt index 1e1176fc..664a10ce 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/ZoomableImage.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/components/ZoomableImage.kt @@ -72,7 +72,9 @@ fun ZoomableImage(bitmap: Bitmap, modifier: Modifier = Modifier, contentScale: C var swipe=0f; var swiped=false; var canSwipe=zoomScale==1f do { val event=awaitPointerEvent() + if (event.changes.none { it.pressed }) break val centroid=event.calculateCentroid(useCurrent=false) + if (!centroid.x.isFinite() || !centroid.y.isFinite()) continue val pan=event.calculatePan(); val zoom=event.calculateZoom() if (event.changes.count { it.pressed }!=1 || zoom!=1f) canSwipe=false if (canSwipe && !swiped && navigate!=null && kotlin.math.abs(pan.x)>kotlin.math.abs(pan.y)) { diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/AvatarViewerScreen.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/AvatarViewerScreen.kt index 9727f602..079c0be3 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/AvatarViewerScreen.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/ui/screens/AvatarViewerScreen.kt @@ -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()) } 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)) }