Skip to content

Commit

Permalink
#130 update dependencies
Browse files Browse the repository at this point in the history
- finally the M2 dependency removed to use M3 swipeRefresh
- update the README.md versions.
  • Loading branch information
javadjafari1 committed Jan 11, 2024
1 parent ec28c32 commit c919efa
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 70 deletions.
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,21 +54,21 @@ This app is built with the help of the following libraries and dependencies:

- Android Gradle Plugin (Version 8.1.2).
- [Accompanist]([link_to_library2](https://github.com/google/accompanist)) (Version 0.32.0).
- [Coil](https://github.com/coil-kt/coil) (Version 2.4.0).
- [Coil](https://github.com/coil-kt/coil) (Version 2.5.0).
- Compose (Version 1.5.4).
- [Detekt](https://github.com/detekt/detekt) (Version 1.23.1).
- [Dagger](https://dagger.dev/) (Version 2.48.1).
- [Detekt](https://github.com/detekt/detekt) (Version 1.23.4).
- [Dagger](https://dagger.dev/) (Version 2.50.0).
- [Chucker](https://github.com/ChuckerTeam/chucker/) (Version 4.0.0).
- Datastore (Version 1.0.0).
- [Telephoto](https://github.com/saket/telephoto) (Version 0.6.2).
- KotlinxSerialization (Version 1.6.0).
- Kotlin (Version 1.9.20).
- Navigation Compose (Version 2.7.5).
- [Telephoto](https://github.com/saket/telephoto) (Version 0.7.1).
- KotlinxSerialization (Version 1.6.2).
- Kotlin (Version 1.9.22).
- Navigation Compose (Version 2.7.6).
- Paging3 (Version 3.2.1).
- [Retrofit2](https://github.com/square/retrofit) (Version 2.9.0).
- [Okhttp3](https://github.com/square/okhttp) (Version 4.12.0).
- Room (Version 2.6.0).
- KSP (Version 1.9.20-1.0.14).
- Room (Version 2.6.1).
- KSP (Version 1.9.22-1.0.16).

Test Libraries

Expand Down
20 changes: 9 additions & 11 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -160,14 +160,15 @@ android {
}
kotlinOptions {
jvmTarget = "17"
freeCompilerArgs += "-opt-in=androidx.compose.foundation.ExperimentalFoundationApi"
freeCompilerArgs += "-opt-in=androidx.compose.material3.ExperimentalMaterial3Api"
freeCompilerArgs += "-opt-in=androidx.paging.ExperimentalPagingApi"
freeCompilerArgs += "-opt-in=com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi"
freeCompilerArgs += "-opt-in=kotlinx.serialization.ExperimentalSerializationApi"
freeCompilerArgs += "-opt-in=kotlinx.coroutines.FlowPreview"
freeCompilerArgs += "-opt-in=androidx.compose.material.ExperimentalMaterialApi"
freeCompilerArgs += "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi"
freeCompilerArgs += listOf(
"-opt-in=androidx.compose.foundation.ExperimentalFoundationApi",
"-opt-in=androidx.compose.material3.ExperimentalMaterial3Api",
"-opt-in=androidx.paging.ExperimentalPagingApi",
"-opt-in=com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi",
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
"-opt-in=kotlinx.coroutines.FlowPreview",
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
)
}
buildFeatures {
compose = true
Expand Down Expand Up @@ -215,9 +216,6 @@ dependencies {
implementation(libs.composeUi)
implementation(libs.composeMaterial3)
implementation(libs.lifecycleRuntimeCompose)
implementation(libs.composeMaterial) {
because("just for the swipe refresh")
}
implementation(libs.coilCompose)

/*coroutine*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,13 @@ package ir.thatsmejavad.backgroundable.common.ui

import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.material.pullrefresh.PullRefreshIndicator
import androidx.compose.material.pullrefresh.pullRefresh
import androidx.compose.material.pullrefresh.rememberPullRefreshState
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.pulltorefresh.PullToRefreshContainer
import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import kotlinx.coroutines.launch
import androidx.compose.ui.input.nestedscroll.nestedScroll

@Composable
fun BoxWithSwipeRefresh(
Expand All @@ -22,27 +17,25 @@ fun BoxWithSwipeRefresh(
modifier: Modifier = Modifier,
content: @Composable BoxScope.() -> Unit
) {
val refreshScope = rememberCoroutineScope()
fun refresh() = refreshScope.launch { onSwipe() }
val refreshing by remember(isRefreshing) { mutableStateOf(isRefreshing) }
val pullRefreshState = rememberPullRefreshState(refreshing, ::refresh)
val state = rememberPullToRefreshState()

Box(
modifier = modifier
.pullRefresh(
state = pullRefreshState,
enabled = !refreshing
),
) {
content()
if (state.isRefreshing) {
LaunchedEffect(true) {
onSwipe()
}
}

PullRefreshIndicator(
refreshing = refreshing,
state = pullRefreshState,
if (!isRefreshing) {
LaunchedEffect(true) {
state.endRefresh()
}
}

Box(modifier = modifier.nestedScroll(state.nestedScrollConnection)) {
content()
PullToRefreshContainer(
modifier = Modifier.align(Alignment.TopCenter),
scale = true,
backgroundColor = MaterialTheme.colorScheme.primaryContainer,
contentColor = MaterialTheme.colorScheme.onPrimaryContainer,
state = state,
)
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
@file:Suppress("UsingMaterialAndMaterial3Libraries")

package ir.thatsmejavad.backgroundable.main

import android.Manifest
Expand All @@ -22,8 +20,6 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.shape.CornerSize
import androidx.compose.material.ModalBottomSheetValue
import androidx.compose.material.rememberModalBottomSheetState
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.NavigationBar
Expand All @@ -35,7 +31,6 @@ import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
Expand All @@ -48,8 +43,8 @@ import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import com.google.accompanist.navigation.material.BottomSheetNavigator
import com.google.accompanist.navigation.material.ModalBottomSheetLayout
import com.google.accompanist.navigation.material.rememberBottomSheetNavigator
import ir.thatsmejavad.backgroundable.BackgroundableApplication
import ir.thatsmejavad.backgroundable.BuildConfig
import ir.thatsmejavad.backgroundable.common.ui.NavigationBarDestinations
Expand Down Expand Up @@ -119,11 +114,7 @@ class MainActivity : AppCompatActivity() {

@Composable
private fun BackgroundableApp() {
val sheetState = rememberModalBottomSheetState(
initialValue = ModalBottomSheetValue.Hidden,
skipHalfExpanded = true
)
val bottomSheetNavigator = remember { BottomSheetNavigator(sheetState) }
val bottomSheetNavigator = rememberBottomSheetNavigator()
val navController = rememberNavController(bottomSheetNavigator)

ModalBottomSheetLayout(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ import androidx.compose.material3.MediumTopAppBar
import androidx.compose.material3.PrimaryTabRow
import androidx.compose.material3.Switch
import androidx.compose.material3.Tab
import androidx.compose.material3.TabRowDefaults.tabIndicatorOffset
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberTopAppBarState
Expand Down Expand Up @@ -134,10 +133,10 @@ fun ThemeSettingScreen(
selectedTabIndex = selectedTabIndex,
divider = {},
containerColor = MaterialTheme.colorScheme.surfaceContainerHigh,
indicator = { tabPositions ->
indicator = {
Box(
modifier = Modifier
.tabIndicatorOffset(tabPositions[selectedTabIndex])
.tabIndicatorOffset(selectedTabIndex)
.fillMaxHeight()
.clip(MaterialTheme.shapes.extraLarge)
.padding(10.dp)
Expand Down
16 changes: 7 additions & 9 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[versions]
accompanist = "0.32.0"
activityCompose = "1.8.1"
activityCompose = "1.8.2"
agp = "8.1.2"
androidxJunit = "1.1.5"
appMetrica = "5.3.0"
Expand All @@ -9,29 +9,28 @@ caoc = "2.4.0"
chucker = "4.0.0"
coilCompose = "2.5.0"
composeAnimation = "1.5.4"
composeCompiler = "1.5.6"
composeCompiler = "1.5.8"
composeRuntime = "1.5.4"
composeUi = "1.5.4"
compsoeFoundation = "1.5.4"
coreKtx = "1.12.0"
coroutine = "1.7.3"
dagger = "2.49"
dagger = "2.50"
datastore = "1.0.0"
detekt = "1.23.4"
espressoCore = "3.5.1"
jacoco = "0.8.11"
javalite = "3.23.0"
junit = "5.10.1"
kotestAssertion = "5.8.0"
kotlin = "1.9.21"
kotlin = "1.9.22"
kotlinxSerialization = "1.6.2"
kover = "0.7.4"
ksp = "1.9.21-1.0.15"
ksp = "1.9.22-1.0.16"
lifecycleRuntime = "2.6.2"
material = "1.5.4"
material3 = "1.2.0-alpha12"
material3 = "1.2.0-beta02"
mockK = "1.13.8"
navigationCompose = "2.7.5"
navigationCompose = "2.7.6"
okhttp = "4.12.0"
paging = "3.2.1"
protobuf = "0.9.4"
Expand All @@ -54,7 +53,6 @@ chuckerNoOp = { module = "com.github.chuckerteam.chucker:library-no-op", version
coilCompose = { module = "io.coil-kt:coil-compose", version.ref = "coilCompose" }
composeAnimation = { module = "androidx.compose.animation:animation", version.ref = "composeAnimation" }
composeFoundation = { module = "androidx.compose.foundation:foundation", version.ref = "compsoeFoundation" }
composeMaterial = { module = "androidx.compose.material:material", version.ref = "material" }
composeMaterial3 = { module = "androidx.compose.material3:material3", version.ref = "material3" }
composeRuntime = { module = "androidx.compose.runtime:runtime", version.ref = "composeRuntime" }
composeUi = { module = "androidx.compose.ui:ui", version.ref = "composeUi" }
Expand Down

0 comments on commit c919efa

Please sign in to comment.