diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/ScreenshotsPage.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/ScreenshotsPage.kt new file mode 100644 index 00000000..96ec9a23 --- /dev/null +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/ScreenshotsPage.kt @@ -0,0 +1,51 @@ +package com.machiav3lli.fdroid.ui.pages + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.SideEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import com.google.accompanist.pager.ExperimentalPagerApi +import com.google.accompanist.pager.HorizontalPager +import com.google.accompanist.pager.rememberPagerState +import com.machiav3lli.fdroid.network.CoilDownloader +import com.machiav3lli.fdroid.ui.compose.components.ScreenshotItem +import com.machiav3lli.fdroid.ui.compose.utils.ZoomableImage + +@OptIn(ExperimentalPagerApi::class) +@Composable +fun ScreenshotsPage( + screenshots: List, + page: Int, +) { + val pagerState = rememberPagerState() + + HorizontalPager(count = screenshots.size, state = pagerState) { page -> + val screenshot = screenshots[page] + var image by remember { mutableStateOf(null) } + + SideEffect { + image = CoilDownloader.createScreenshotUri( + screenshot.repository, + screenshot.packageName, + screenshot.screenShot + ).toString() + } + + Box { + ZoomableImage( + data = image, + modifier = Modifier.fillMaxSize(), + ) + } + } + + LaunchedEffect(page) { + pagerState.scrollToPage(page) + } +} \ No newline at end of file