From c4cd9cd80296899f6f4e621a5ee2e8e078f83e0f Mon Sep 17 00:00:00 2001 From: tarsin Date: Sun, 15 Jan 2023 12:49:18 +0800 Subject: [PATCH] Fix stuck when loading preview --- .../ehviewer/ui/scene/GalleryDetailScene.kt | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt index 07ba3f033..e1429860b 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt @@ -705,15 +705,19 @@ class GalleryDetailScene : CollapsingToolbarScene(), View.OnClickListener, Downl val columnWidth = Settings.getThumbSize() gridLayout.setColumnSize(columnWidth) gridLayout.setStrategy(SimpleGridAutoSpanLayout.STRATEGY_SUITABLE_SIZE) - for (i in 0 until previewSet.size()) { - val view = inflater.inflate(R.layout.item_gallery_preview, gridLayout, false) - gridLayout.addView(view) - val image = view.findViewById(R.id.image) - previewSet.load(image, gd.gid, i) - image.setTag(R.id.index, i) - image.setOnClickListener(this@GalleryDetailScene) - val text = view.findViewById(R.id.text) - text.text = (previewSet.getPosition(i) + 1).toString() + lifecycleScope.launchIO { + for (i in 0 until previewSet.size()) { + val view = inflater.inflate(R.layout.item_gallery_preview, gridLayout, false) + withUIContext { + gridLayout.addView(view) + } + val image = view.findViewById(R.id.image) + previewSet.load(image, gd.gid, i) + image.setTag(R.id.index, i) + image.setOnClickListener(this@GalleryDetailScene) + val text = view.findViewById(R.id.text) + text.text = (previewSet.getPosition(i) + 1).toString() + } } } }