Fix ScreenshotList.kt

This commit is contained in:
Iamlooker 2022-04-10 19:49:35 +05:30
parent 09045d479c
commit 77f0310bd2

View File

@ -8,22 +8,30 @@ import androidx.compose.foundation.layout.wrapContentWidth
import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.Composable import androidx.compose.runtime.*
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.net.toUri import com.looker.droidify.database.entity.Repository
import com.looker.droidify.entity.Screenshot import com.looker.droidify.entity.Screenshot
import com.looker.droidify.network.CoilDownloader
import com.looker.droidify.ui.compose.theme.LocalShapes import com.looker.droidify.ui.compose.theme.LocalShapes
import com.looker.droidify.ui.compose.utils.NetworkImage import com.looker.droidify.ui.compose.utils.NetworkImage
data class ScreenshotItem(
val screenShot: Screenshot,
val repository: Repository,
val packageName: String
)
fun Screenshot.toScreenshotItem(packageName: String, repository: Repository) =
ScreenshotItem(this, repository, packageName)
@Composable @Composable
fun ScreenshotList( fun ScreenshotList(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
screenShots: List<Screenshot>, screenShots: List<ScreenshotItem>,
onScreenShotClick: (Screenshot) -> Unit onScreenShotClick: (Screenshot) -> Unit = {}
) { ) {
val screenShotList by remember { mutableStateOf(screenShots) } val screenShotList by remember { mutableStateOf(screenShots) }
LazyRow( LazyRow(
@ -31,13 +39,24 @@ fun ScreenshotList(
horizontalArrangement = Arrangement.spacedBy(8.dp) horizontalArrangement = Arrangement.spacedBy(8.dp)
) { ) {
items(screenShotList) { items(screenShotList) {
var image by remember { mutableStateOf<String?>(null) }
SideEffect {
image = CoilDownloader.createScreenshotUri(
it.repository,
it.packageName,
it.screenShot
).toString()
}
NetworkImage( NetworkImage(
modifier = Modifier modifier = Modifier
.wrapContentWidth() .wrapContentWidth()
.requiredHeight(120.dp) .requiredHeight(300.dp)
.clickable { onScreenShotClick(it) }, .clip(RoundedCornerShape(LocalShapes.current.large))
data = it.path, .clickable { onScreenShotClick(it.screenShot) },
shape = RoundedCornerShape(LocalShapes.current.large) data = image
) )
} }
} }