mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-22 10:52:10 +00:00
Add: ScreenshotsPage composable
This commit is contained in:
parent
8b72e0a502
commit
74ae53eeba
@ -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<ScreenshotItem>,
|
||||||
|
page: Int,
|
||||||
|
) {
|
||||||
|
val pagerState = rememberPagerState()
|
||||||
|
|
||||||
|
HorizontalPager(count = screenshots.size, state = pagerState) { page ->
|
||||||
|
val screenshot = screenshots[page]
|
||||||
|
var image by remember { mutableStateOf<String?>(null) }
|
||||||
|
|
||||||
|
SideEffect {
|
||||||
|
image = CoilDownloader.createScreenshotUri(
|
||||||
|
screenshot.repository,
|
||||||
|
screenshot.packageName,
|
||||||
|
screenshot.screenShot
|
||||||
|
).toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
Box {
|
||||||
|
ZoomableImage(
|
||||||
|
data = image,
|
||||||
|
modifier = Modifier.fillMaxSize(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LaunchedEffect(page) {
|
||||||
|
pagerState.scrollToPage(page)
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user