Skip to content

Commit 83260f5

Browse files
authored
Merge pull request #129 from code-payments/build/bump-agp
build: update AGP, Kotlin, Compose Compiler and Gradle
2 parents fceb2ca + 2d57280 commit 83260f5

4 files changed

Lines changed: 100 additions & 102 deletions

File tree

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ android {
5252
compose = true
5353
}
5454
composeOptions {
55-
kotlinCompilerExtensionVersion = "1.5.3"
55+
kotlinCompilerExtensionVersion = Versions.compose_compiler
5656
}
5757

5858
buildTypes {

app/src/main/java/com/getcode/navigation/screens/Modals.kt

Lines changed: 91 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -27,121 +27,113 @@ import com.getcode.navigation.core.LocalCodeNavigator
2727
import com.getcode.theme.CodeTheme
2828
import com.getcode.theme.sheetHeight
2929
import com.getcode.util.keyboardAsState
30-
import com.getcode.util.recomposeHighlighter
3130
import com.getcode.view.components.SheetTitle
3231
import kotlinx.coroutines.delay
3332
import kotlinx.coroutines.launch
34-
import timber.log.Timber
3533

36-
internal interface ModalContent {
3734

38-
@Composable
39-
fun Screen.ModalContainer(
40-
closeButton: (Screen?) -> Boolean = { false },
41-
screenContent: @Composable () -> Unit
42-
) {
43-
ModalContainer(
44-
navigator = LocalCodeNavigator.current,
45-
displayLogo = false,
46-
backButton = { false },
47-
onLogoClicked = {},
48-
closeButton = closeButton,
49-
screenContent = screenContent,
50-
)
51-
}
35+
@Composable
36+
internal fun Screen.ModalContainer(
37+
closeButton: (Screen?) -> Boolean = { false },
38+
screenContent: @Composable () -> Unit
39+
) {
40+
ModalContainer(
41+
navigator = LocalCodeNavigator.current,
42+
displayLogo = false,
43+
backButton = { false },
44+
onLogoClicked = {},
45+
closeButton = closeButton,
46+
screenContent = screenContent,
47+
)
48+
}
5249

53-
@Composable
54-
fun Screen.ModalContainer(
55-
displayLogo: Boolean = false,
56-
onLogoClicked: () -> Unit = { },
57-
closeButton: (Screen?) -> Boolean = { false },
58-
screenContent: @Composable () -> Unit
59-
) {
60-
ModalContainer(
61-
navigator = LocalCodeNavigator.current,
62-
displayLogo = displayLogo,
63-
backButton = { false },
64-
onLogoClicked = onLogoClicked,
65-
closeButton = closeButton,
66-
screenContent = screenContent,
67-
)
68-
}
50+
@Composable
51+
internal fun Screen.ModalContainer(
52+
displayLogo: Boolean = false,
53+
onLogoClicked: () -> Unit = { },
54+
closeButton: (Screen?) -> Boolean = { false },
55+
screenContent: @Composable () -> Unit
56+
) {
57+
ModalContainer(
58+
navigator = LocalCodeNavigator.current,
59+
displayLogo = displayLogo,
60+
backButton = { false },
61+
onLogoClicked = onLogoClicked,
62+
closeButton = closeButton,
63+
screenContent = screenContent,
64+
)
65+
}
6966

70-
@OptIn(ExperimentalFoundationApi::class)
71-
@Composable
72-
fun Screen.ModalContainer(
73-
navigator: CodeNavigator = LocalCodeNavigator.current,
74-
displayLogo: Boolean = false,
75-
backButton: (Screen?) -> Boolean = { false },
76-
onBackClicked: (() -> Unit)? = null,
77-
closeButton: (Screen?) -> Boolean = { false },
78-
onCloseClicked: (() -> Unit)? = null,
79-
onLogoClicked: () -> Unit = { },
80-
screenContent: @Composable () -> Unit
67+
@OptIn(ExperimentalFoundationApi::class)
68+
@Composable
69+
internal fun Screen.ModalContainer(
70+
navigator: CodeNavigator = LocalCodeNavigator.current,
71+
displayLogo: Boolean = false,
72+
backButton: (Screen?) -> Boolean = { false },
73+
onBackClicked: (() -> Unit)? = null,
74+
closeButton: (Screen?) -> Boolean = { false },
75+
onCloseClicked: (() -> Unit)? = null,
76+
onLogoClicked: () -> Unit = { },
77+
screenContent: @Composable () -> Unit
78+
) {
79+
Column(
80+
modifier = Modifier
81+
.fillMaxWidth()
82+
.fillMaxHeight(sheetHeight)
8183
) {
82-
Column(
83-
modifier = Modifier
84-
.fillMaxWidth()
85-
.fillMaxHeight(sheetHeight)
86-
) {
87-
val lastItem by remember(navigator.lastModalItem) {
88-
derivedStateOf { navigator.lastModalItem }
89-
}
90-
91-
val isBackEnabled by remember(backButton, lastItem) {
92-
derivedStateOf { backButton(lastItem) }
93-
}
84+
val lastItem by remember(navigator.lastModalItem) {
85+
derivedStateOf { navigator.lastModalItem }
86+
}
9487

95-
val isCloseEnabled by remember(closeButton, lastItem) {
96-
derivedStateOf { closeButton(lastItem) }
97-
}
88+
val isBackEnabled by remember(backButton, lastItem) {
89+
derivedStateOf { backButton(lastItem) }
90+
}
9891

99-
val keyboardController = LocalSoftwareKeyboardController.current
100-
val composeScope = rememberCoroutineScope()
92+
val isCloseEnabled by remember(closeButton, lastItem) {
93+
derivedStateOf { closeButton(lastItem) }
94+
}
10195

102-
val keyboardVisible by keyboardAsState()
96+
val keyboardController = LocalSoftwareKeyboardController.current
97+
val composeScope = rememberCoroutineScope()
10398

104-
val hideSheet = {
105-
composeScope.launch {
106-
if (keyboardVisible) {
107-
keyboardController?.hide()
108-
delay(500)
109-
}
110-
navigator.hide()
111-
}
99+
val hideSheet = {
100+
composeScope.launch {
101+
keyboardController?.hide()
102+
delay(500)
103+
navigator.hide()
112104
}
113-
114-
SheetTitle(
115-
modifier = Modifier,
116-
title = {
117-
val name = (lastItem as? NamedScreen)?.name
118-
val sheetName by remember(lastItem) {
119-
derivedStateOf { name }
120-
}
121-
sheetName.takeIf { !displayLogo && lastItem == this@ModalContainer }
122-
},
123-
displayLogo = displayLogo,
124-
onLogoClicked = onLogoClicked,
125-
// hide while transitioning to/from other destinations
126-
backButton = isBackEnabled,
127-
closeButton = isCloseEnabled,
128-
onBackIconClicked = onBackClicked?.let { { it() } } ?: { navigator.pop() },
129-
onCloseIconClicked = onCloseClicked?.let { { it() } } ?: { hideSheet() }
130-
)
131-
Box(
132-
modifier = Modifier
133-
.windowInsetsPadding(WindowInsets.navigationBars)
134-
) {
135-
CompositionLocalProvider(
136-
LocalOverscrollConfiguration provides null
137-
) {
138-
screenContent()
105+
}
106+
SheetTitle(
107+
modifier = Modifier,
108+
title = {
109+
val name = (lastItem as? NamedScreen)?.name
110+
val sheetName by remember(lastItem) {
111+
derivedStateOf { name }
139112
}
113+
sheetName.takeIf { !displayLogo && lastItem == this@ModalContainer }
114+
},
115+
displayLogo = displayLogo,
116+
onLogoClicked = onLogoClicked,
117+
// hide while transitioning to/from other destinations
118+
backButton = isBackEnabled,
119+
closeButton = isCloseEnabled,
120+
onBackIconClicked = onBackClicked?.let { { it() } } ?: { navigator.pop() },
121+
onCloseIconClicked = onCloseClicked?.let { { it() } } ?: { hideSheet() }
122+
)
123+
Box(
124+
modifier = Modifier
125+
.windowInsetsPadding(WindowInsets.navigationBars)
126+
) {
127+
CompositionLocalProvider(
128+
LocalOverscrollConfiguration provides null
129+
) {
130+
screenContent()
140131
}
141132
}
142133
}
143134
}
144135

136+
internal interface ModalContent
145137
internal sealed interface ModalRoot : ModalContent
146138

147139
data object MainRoot : Screen {
@@ -153,6 +145,8 @@ data object MainRoot : Screen {
153145
// TODO: potentially add a loading state here
154146
// so app doesn't appear stuck in a dead state
155147
// while we wait for auth check to complete
156-
Box(modifier = Modifier.fillMaxSize().background(CodeTheme.colors.background))
148+
Box(modifier = Modifier
149+
.fillMaxSize()
150+
.background(CodeTheme.colors.background))
157151
}
158152
}

buildSrc/src/main/java/Dependencies.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ object Android {
33
const val minSdkVersion = 22
44
const val targetSdkVersion = 33
55
const val testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
6-
const val buildToolsVersion = "33.0.1"
6+
const val buildToolsVersion = "34.0.0"
77
}
88

99
object Versions {
1010
const val java = "17"
11-
const val kotlin = "1.9.10"
11+
const val kotlin = "1.9.22"
1212
const val kotlinx_coroutines = "1.7.3"
1313
const val kotlinx_serialization = "1.6.2"
14-
const val android_gradle_build_tools = "8.1.0"
14+
const val android_gradle_build_tools = "8.2.2"
1515
const val google_services = "4.3.15"
1616

1717
const val androidx_core = "1.12.0"
@@ -24,6 +24,10 @@ object Versions {
2424
const val sqlcipher = "4.5.1@aar"
2525

2626
const val compose = "2024.01.00"
27+
// compose compiler is tied to [Versions.kotlin]
28+
// See compatibility mapping here:
29+
// https://developer.android.com/jetpack/androidx/releases/compose-compiler
30+
const val compose_compiler = "1.5.8"
2731
const val compose_activities: String = "1.8.2"
2832
const val compose_view_models: String = "2.6.2"
2933
const val compose_navigation: String = "2.7.3"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Mon Feb 07 10:15:57 EST 2022
22
distributionBase=GRADLE_USER_HOME
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-rc-1-bin.zip
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists
66
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)