Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated dependencies #52

Merged
merged 7 commits into from Sep 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
36 changes: 18 additions & 18 deletions app/build.gradle
Expand Up @@ -70,9 +70,9 @@ ktlint {
}
}
dependencies {
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.1.5")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.1.8")

implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.3'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'

implementation "androidx.navigation:navigation-runtime-ktx:2.5.1"
implementation "androidx.navigation:navigation-compose:2.5.1"
Expand Down Expand Up @@ -101,9 +101,9 @@ dependencies {
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.activity:activity-compose:1.6.0-rc01'
implementation "androidx.datastore:datastore-preferences:1.0.0"
implementation "androidx.constraintlayout:constraintlayout-compose:1.0.0-rc02"
implementation "androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha03"

implementation 'com.google.android.material:material:1.4.0'
implementation 'com.google.android.material:material:1.6.1'

implementation("com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2")
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
Expand All @@ -112,11 +112,11 @@ dependencies {
kapt "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version"


implementation 'androidx.hilt:hilt-navigation-compose:1.0.0-rc01'
implementation 'androidx.hilt:hilt-navigation-compose:1.0.0'
implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-compiler:$hilt_version"

implementation 'com.google.android.gms:play-services-maps:18.0.1'
implementation 'com.google.android.gms:play-services-maps:18.1.0'
implementation 'com.google.maps.android:maps-ktx:3.1.0'
implementation 'com.google.maps.android:maps-utils-ktx:3.1.0'

Expand All @@ -128,20 +128,20 @@ dependencies {
implementation "com.google.accompanist:accompanist-systemuicontroller:$accompanist_version"
implementation "com.google.accompanist:accompanist-permissions:$accompanist_version"

implementation("io.coil-kt:coil-compose:1.3.2")
implementation("io.coil-kt:coil-video:1.3.2")
implementation("io.coil-kt:coil-compose:2.2.0")
implementation("io.coil-kt:coil-video:2.2.0")

implementation "androidx.paging:paging-runtime-ktx:3.1.0"
implementation "androidx.paging:paging-compose:1.0.0-alpha14"
implementation "androidx.paging:paging-runtime-ktx:3.1.1"
implementation "androidx.paging:paging-compose:1.0.0-alpha16"

implementation "androidx.camera:camera-core:1.0.2"
implementation "androidx.camera:camera-camera2:1.0.2"
implementation "androidx.camera:camera-lifecycle:1.0.2"
implementation 'androidx.camera:camera-view:1.0.0-alpha32'
implementation "androidx.camera:camera-core:1.2.0-beta01"
implementation "androidx.camera:camera-camera2:1.2.0-beta01"
implementation "androidx.camera:camera-lifecycle:1.2.0-beta01"
implementation 'androidx.camera:camera-view:1.2.0-beta01'


implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta1'
implementation 'com.google.android.gms:play-services-mlkit-barcode-scanning:18.0.0'
implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3'
implementation 'com.google.android.gms:play-services-mlkit-barcode-scanning:18.1.0'

implementation "androidx.media3:media3-exoplayer:$media3_version"
implementation "androidx.media3:media3-ui:$media3_version"
Expand All @@ -158,8 +158,8 @@ dependencies {

testImplementation 'junit:junit:4.13.2'
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
implementation "dev.chrisbanes.snapper:snapper:0.2.0"
implementation "androidx.health:health-connect-client:1.0.0-alpha02"
implementation "dev.chrisbanes.snapper:snapper:0.2.1"
implementation "androidx.health:health-connect-client:1.0.0-alpha03"
implementation "com.google.android.gms:play-services-wallet:19.1.0"
implementation "com.google.android.gms:play-services-pay:16.0.3"
}
Expand Up @@ -4,10 +4,14 @@ import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Surface
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Surface
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.core.view.WindowCompat
import androidx.lifecycle.Lifecycle
Expand Down Expand Up @@ -81,7 +85,7 @@ class MainActivity : AppCompatActivity() {
ProvideWindowInsets {
// used only for the bottom sheet destinations
ModalBottomSheetLayout(bottomSheetNavigator) {
Surface {
Surface(modifier = Modifier.fillMaxSize()) {
PopulatedNavHost(
startDestination = Destination.SampleContainer.route,
navController = navController
Expand Down
@@ -1,16 +1,14 @@
package com.skyyo.samples.features.bottomSheets

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.unit.dp
import com.google.accompanist.insets.statusBarsPadding
Expand Down Expand Up @@ -64,8 +62,9 @@ fun BottomSheetScaffoldScreen() {
}
}
},
sheetPeekHeight = 56.dp
sheetPeekHeight = 86.dp
) {
Box(modifier = Modifier.fillMaxSize().background(color = Color.Gray))
}
}

Expand Down
Expand Up @@ -36,9 +36,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView
import androidx.hilt.navigation.compose.hiltViewModel
import coil.annotation.ExperimentalCoilApi
import coil.compose.rememberImagePainter
import coil.transform.RoundedCornersTransformation
import coil.compose.rememberAsyncImagePainter
import com.google.accompanist.insets.navigationBarsPadding
import com.google.accompanist.insets.statusBarsPadding
import com.google.accompanist.insets.systemBarsPadding
Expand Down Expand Up @@ -213,23 +211,17 @@ fun ToggleFlashlightButton(isFlashlightOn: Boolean, modifier: Modifier = Modifie
)
}

@OptIn(ExperimentalCoilApi::class)
@Composable
fun LastPictureThumbnail(
uri: Uri?,
modifier: Modifier = Modifier,
) {
Crossfade(targetState = uri, animationSpec = tween(durationMillis = 500)) { imageUri ->
val painter = rememberImagePainter(
data = imageUri,
builder = {
transformations(RoundedCornersTransformation(16f))
}
)
val painter = rememberAsyncImagePainter(imageUri)
Image(
painter = painter,
contentDescription = null,
modifier = modifier
modifier = modifier.clip(RoundedCornerShape(16.dp))
)
}
}
Expand Down
Expand Up @@ -6,10 +6,12 @@ import android.widget.Toast
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.IntentSenderRequest
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
Expand Down Expand Up @@ -39,6 +41,8 @@ fun CardRecognitionScreen(viewModel: CardRecognitionViewModel = hiltViewModel())

Column(
modifier = Modifier
.fillMaxSize()
.background(color = Color.White)
.statusBarsPadding()
.navigationBarsPadding()
.padding(20.dp)
Expand Down
Expand Up @@ -7,11 +7,13 @@ import androidx.compose.animation.core.Spring
import androidx.compose.animation.core.spring
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.Card
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.compositeOver
import androidx.compose.ui.graphics.luminance
Expand All @@ -22,13 +24,11 @@ import androidx.core.graphics.drawable.toBitmap
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.paging.compose.collectAsLazyPagingItems
import androidx.palette.graphics.Palette
import coil.Coil
import coil.annotation.ExperimentalCoilApi
import coil.compose.rememberImagePainter
import coil.compose.rememberAsyncImagePainter
import coil.imageLoader
import coil.request.ImageRequest
import coil.request.SuccessResult
import coil.size.Scale
import coil.transform.CircleCropTransformation
import com.google.accompanist.insets.systemBarsPadding
import com.google.accompanist.pager.ExperimentalPagerApi
import com.google.accompanist.pager.HorizontalPager
Expand Down Expand Up @@ -66,7 +66,6 @@ fun DominantColorScreen(viewModel: DominantColorViewModel = hiltViewModel()) {
}
}

@OptIn(ExperimentalCoilApi::class)
@Composable
fun CatCard(catId: String?) {
/* To avoid this https://github.com/Skyyo/samples/pull/15#pullrequestreview-787405549
Expand All @@ -77,15 +76,14 @@ fun CatCard(catId: String?) {
) {
Column {
Image(
painter = rememberImagePainter(
data = "https://cataas.com/cat/$catId",
builder = { transformations(CircleCropTransformation()) }
),
painter = rememberAsyncImagePainter("https://cataas.com/cat/$catId"),
contentDescription = null,
modifier = Modifier
.padding(24.dp)
.fillMaxWidth(),
contentScale = ContentScale.Crop
.fillMaxWidth()
.aspectRatio(1f)
.clip(CircleShape),
contentScale = ContentScale.FillBounds
)
Text(catId.orEmpty())
}
Expand Down Expand Up @@ -180,10 +178,10 @@ class DominantColorState(
/**
* Reset the color values to [defaultColor].
*/
fun reset() {
color = defaultColor
onColor = defaultColor
}
// fun reset() {
// color = defaultColor
// onColor = defaultColor
// }

private suspend fun calculateSwatchesInImage(
context: Context,
Expand All @@ -197,7 +195,7 @@ class DominantColorState(
.allowHardware(false)
.build()

val bitmap = when (val result = Coil.execute(r)) {
val bitmap = when (val result = context.imageLoader.execute(r)) {
is SuccessResult -> result.drawable.toBitmap()
else -> null
}
Expand Down
Expand Up @@ -6,28 +6,29 @@ import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import coil.ImageLoader
import coil.annotation.ExperimentalCoilApi
import coil.compose.rememberImagePainter
import coil.compose.rememberAsyncImagePainter
import coil.request.ImageRequest
import coil.request.videoFrameMillis

@OptIn(ExperimentalCoilApi::class)
@Composable
fun DynamicVideoThumbnail(
imageLoader: ImageLoader,
mediaUrl: String,
lastPlayedPosition: Long
) {
val painter = rememberImagePainter(
data = mediaUrl,
imageLoader = imageLoader,
builder = {
videoFrameMillis(lastPlayedPosition)
crossfade(true)
size(512, 512)
placeholder(android.R.drawable.ic_delete)
},
val context = LocalContext.current
val painter = rememberAsyncImagePainter(
model = ImageRequest.Builder(context)
.data(mediaUrl)
.videoFrameMillis(lastPlayedPosition)
.crossfade(true)
.size(512)
.placeholder(android.R.drawable.ic_delete)
.build(),
imageLoader = imageLoader
)
Image(
painter = painter,
Expand Down
Expand Up @@ -17,10 +17,9 @@ import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.media3.common.MediaItem
import androidx.media3.exoplayer.ExoPlayer
import coil.ComponentRegistry
import coil.ImageLoader
import coil.decode.VideoFrameDecoder
import coil.fetch.VideoFrameFileFetcher
import coil.fetch.VideoFrameUriFetcher
import com.google.accompanist.insets.LocalWindowInsets
import com.google.accompanist.insets.rememberInsetsPaddingValues
import com.skyyo.samples.features.exoPlayer.columnIndexed.ExoPlayerColumnIndexedViewModel
Expand All @@ -36,11 +35,9 @@ fun ExoPlayerColumnDynamicThumbScreen(viewModel: ExoPlayerColumnIndexedViewModel
// can / should? be provided by dagger if used in multiple places
val imageLoader = remember {
ImageLoader.Builder(context)
.componentRegistry {
add(VideoFrameFileFetcher(context))
add(VideoFrameUriFetcher(context))
add(VideoFrameDecoder(context))
}
.components(fun ComponentRegistry.Builder.() {
add(VideoFrameDecoder.Factory())
})
.build()
}

Expand Down
Expand Up @@ -6,18 +6,24 @@ import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import coil.annotation.ExperimentalCoilApi
import coil.compose.rememberImagePainter
import coil.compose.rememberAsyncImagePainter
import coil.request.ImageRequest

private const val IMAGE_SIZE = 512

@OptIn(ExperimentalCoilApi::class)
@Composable
fun VideoThumbnail(url: String) {
val context = LocalContext.current
Image(
painter = rememberImagePainter(data = url, builder = {
crossfade(true)
size(width = 512, height = 512)
}),
painter = rememberAsyncImagePainter(
ImageRequest.Builder(context)
.data(url)
.crossfade(true)
.size(IMAGE_SIZE)
.build()
),
contentDescription = null,
modifier = Modifier
// this can be optimized to prevent overdraw. Should be shown only
Expand Down