Skip to content

Commit 6973773

Browse files
Merge pull request #23 from UmairKhalid786/feature/compose_bom_added
Compose BOM added
2 parents 2be680d + e70a6a3 commit 6973773

File tree

4 files changed

+86
-62
lines changed

4 files changed

+86
-62
lines changed

app/build.gradle.kts

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ android {
3131
}
3232

3333
composeOptions {
34-
kotlinCompilerExtensionVersion = "1.3.2"
34+
kotlinCompilerExtensionVersion = "1.4.4"
3535
}
3636

3737
kotlinOptions {
@@ -44,24 +44,38 @@ dependencies {
4444
implementation(libs.leanback)
4545
implementation(libs.androidx.appcompat)
4646
implementation(libs.google.android.material)
47-
implementation(libs.androidx.constraintlayout.compose)
48-
implementation(libs.androidx.compose.material3)
49-
implementation(libs.androidx.compose.materialWindow)
5047
implementation(libs.accompanist.navigation.animation)
5148
implementation(libs.accompanist.placeholder)
52-
implementation(libs.androidx.compose.material.iconsExtended)
53-
implementation(libs.androidx.tv.foundation)
54-
implementation(libs.androidx.lifecycle.runtime.compose)
55-
implementation(libs.androidx.lifecycle.viewModelCompose)
5649
implementation(libs.androidx.lifecycle.runtime)
57-
implementation(libs.androidx.navigation.compose)
5850
implementation(libs.qrcode)
5951
implementation(libs.line.awesome.icons)
60-
implementation(libs.androidx.compose.ui.tooling.preview)
52+
53+
/* Jetpack Compose */
54+
/* Compose BOM */
55+
val composeBom = platform(libs.androidx.compose.bom)
56+
implementation(composeBom)
57+
androidTestImplementation(composeBom)
58+
59+
implementation(libs.androidx.compose.material3)
60+
implementation(libs.androidx.compose.materialWindow)
61+
implementation(libs.androidx.compose.material.iconsExtended)
62+
63+
/* Debug */
64+
debugImplementation(libs.androidx.compose.ui.tooling.preview)
65+
debugImplementation(libs.androidx.compose.ui.tooling)
66+
/* End Compose BOM */
67+
68+
implementation(libs.androidx.navigation.compose)
69+
implementation(libs.androidx.constraintlayout.compose)
70+
implementation(libs.androidx.lifecycle.runtime.compose)
71+
implementation(libs.androidx.lifecycle.viewModelCompose)
72+
73+
// Specific APIs
74+
implementation(libs.androidx.tv.material)
75+
implementation(libs.androidx.tv.foundation)
6176
// Hilt
6277
implementation(libs.hilt.android)
6378
kapt(libs.hilt.compiler)
6479
// Hilt navigation
6580
implementation(libs.androidx.hilt.navigation.compose)
66-
debugImplementation(libs.androidx.compose.ui.tooling)
6781
}

app/src/main/java/com/techlads/composetv/theme/Theme.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import androidx.compose.ui.graphics.toArgb
1818
import androidx.compose.ui.platform.LocalContext
1919
import androidx.compose.ui.platform.LocalView
2020
import androidx.compose.ui.unit.dp
21-
import androidx.core.view.ViewCompat
21+
import androidx.core.view.WindowCompat
2222

2323
private val DarkColorScheme = darkColorScheme(
2424
primary = Purple80,
@@ -59,8 +59,10 @@ fun Material3Theme(
5959
val view = LocalView.current
6060
if (!view.isInEditMode) {
6161
SideEffect {
62-
(view.context as Activity).window.statusBarColor = colorScheme.primary.toArgb()
63-
ViewCompat.getWindowInsetsController(view)?.isAppearanceLightStatusBars = darkTheme
62+
(view.context as? Activity)?.window?.run {
63+
statusBarColor = colorScheme.primary.toArgb()
64+
WindowCompat.getInsetsController(this, view).isAppearanceLightStatusBars = darkTheme
65+
}
6466
}
6567
}
6668

gradle/libs.versions.toml

Lines changed: 54 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,37 @@
11
[versions]
2-
accompanist = "0.26.2-beta"
3-
androidGradlePlugin = "7.2.2"
4-
androidx-activity-compose = "1.5.1"
5-
androidx-fragment-compose = "1.4.1"
2+
accompanist = "0.31.0-alpha"
3+
androidGradlePlugin = "7.4.1"
4+
androidx-activity-compose = "1.7.0"
5+
androidx-fragment-compose = "1.5.6"
66
androidx-appcompat = "1.5.0"
77
androidx-benchmark = "1.1.0"
88
androidx-benchmark-junit4 = "1.1.0-beta04"
9-
androidx-constraintlayout = "1.0.1"
9+
androidx-constraintlayout = "1.1.0-alpha09"
1010
androidx-corektx = "1.8.0"
11-
androidx-lifecycle-compose = "2.5.1"
12-
androidx-lifecycle-compose-runtime = "2.6.0-alpha02"
13-
androidx-navigation = "2.5.1"
11+
androidx-navigation = "2.5.3"
12+
androidx-lifecycle = "2.6.1"
1413
androidx-palette = "1.0.0"
1514
androidx-test = "1.4.0"
1615
androidx-test-espresso = "3.4.0"
1716
androidx-test-ext-junit = "1.1.3"
1817
androidx-test-ext-truth = "1.4.0"
1918
androidx-window = "1.1.0-alpha03"
20-
androidxHiltNavigationCompose = "1.0.0"
19+
androidxHiltNavigationCompose = "1.1.0-alpha01"
2120
androix-test-uiautomator = "2.2.0"
2221
coil = "2.2.2"
2322
mockk = "1.13.2"
2423
qr_code = "1.5.3"
2524
# @keep
2625
compileSdk = "33"
27-
compose = "1.2.1"
28-
compose-compiler = "1.3.0"
29-
compose-material3 = "1.0.0-beta02"
30-
compose-materialWindow = "1.0.0-alpha15"
3126
compose-snapshot = "-"
3227
coroutines = "1.6.4"
3328
google-maps = "18.1.0"
34-
hilt = "2.43.2"
29+
hilt = "2.45"
3530
hiltExt = "1.0.0"
3631
# @pin When updating to AGP 7.3.0-beta03 and up we can update this https://developer.android.com/studio/write/java8-support#library-desugaring-versions
3732
jdkDesugar = "1.1.5"
3833
junit = "4.13.2"
39-
kotlin = "1.7.20"
34+
kotlin = "1.8.10"
4035
maps-compose = "2.5.3"
4136
material = "1.7.0-beta01"
4237
# @keep
@@ -49,14 +44,14 @@ rome = "1.18.0"
4944
secrets = "2.0.1"
5045
spotless = "6.10.0"
5146
datastore-preferences = "1.0.0"
52-
lottie-compose = "5.2.0"
47+
lottie-compose = "6.0.0"
5348
security-crypto = "1.0.0"
5449
leanback = "1.0.0"
5550
retrofit = "2.9.0"
5651
paging = "3.1.1"
57-
paging-compose = "1.0.0-alpha17"
52+
paging-compose = "1.0.0"
5853
room = "2.4.3"
59-
tv-foundation = "1.0.0-alpha01"
54+
tv-foundation = "1.0.0-alpha05"
6055
sqldelight = "1.5.4"
6156
# @keep
6257
ktlint = "0.40.0"
@@ -65,6 +60,8 @@ targetSdk = "33"
6560
palette = "1.0.0"
6661
line_awesome = "1.0.0"
6762

63+
compose_bom = "2023.04.00"
64+
6865
[libraries]
6966
accompanist-flowlayout = { module = "com.google.accompanist:accompanist-flowlayout", version.ref = "accompanist" }
7067
accompanist-pager = { module = "com.google.accompanist:accompanist-pager", version.ref = "accompanist" }
@@ -81,37 +78,48 @@ androidx-palette-ktx = { module = "androidx.palette:palette-ktx", version.ref =
8178
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }
8279
androidx-benchmark-macrobenchmark = { module = "androidx.benchmark:benchmark-macro", version.ref = "androidx-benchmark" }
8380
androidx-benchmark-macrobenchmark-junit4 = { module = "androidx.benchmark:benchmark-macro-junit4", version.ref = "androidx-benchmark-junit4" }
84-
androidx-compose-animation = { module = "androidx.compose.animation:animation", version.ref = "compose" }
85-
androidx-compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose" }
86-
androidx-compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout", version.ref = "compose" }
87-
androidx-compose-material = { module = "androidx.compose.material:material", version.ref = "compose" }
88-
androidx-compose-material-iconsExtended = { module = "androidx.compose.material:material-icons-extended", version.ref = "compose" }
89-
androidx-compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "compose-material3" }
90-
androidx-compose-materialWindow = { module = "androidx.compose.material3:material3-window-size-class", version.ref = "compose-materialWindow" }
91-
androidx-compose-runtime = { module = "androidx.compose.runtime:runtime", version.ref = "compose" }
92-
androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata", version.ref = "compose" }
93-
androidx-compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" }
94-
androidx-compose-ui-googlefonts = { module = "androidx.compose.ui:ui-text-google-fonts", version.ref = "compose" }
95-
androidx-compose-ui-test = { module = "androidx.compose.ui:ui-test", version.ref = "compose" }
96-
androidx-compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "compose" }
97-
androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose" }
98-
androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" }
99-
androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose" }
100-
androidx-compose-ui-util = { module = "androidx.compose.ui:ui-util", version.ref = "compose" }
101-
androidx-compose-ui-viewbinding = { module = "androidx.compose.ui:ui-viewbinding", version.ref = "compose" }
102-
androidx-constraintlayout-compose = { module = "androidx.constraintlayout:constraintlayout-compose", version.ref = "androidx-constraintlayout" }
81+
82+
# Compose BOM
83+
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose_bom" }
84+
85+
androidx-compose-animation = { module = "androidx.compose.animation:animation" }
86+
androidx-compose-foundation = { module = "androidx.compose.foundation:foundation" }
87+
androidx-compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" }
88+
androidx-compose-material = { module = "androidx.compose.material:material" }
89+
androidx-compose-material-iconsExtended = { module = "androidx.compose.material:material-icons-extended" }
90+
androidx-compose-material3 = { module = "androidx.compose.material3:material3" }
91+
androidx-compose-materialWindow = { module = "androidx.compose.material3:material3-window-size-class" }
92+
androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" }
93+
androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" }
94+
androidx-compose-ui = { module = "androidx.compose.ui:ui" }
95+
androidx-compose-ui-googlefonts = { module = "androidx.compose.ui:ui-text-google-fonts" }
96+
androidx-compose-ui-test = { module = "androidx.compose.ui:ui-test" }
97+
androidx-compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" }
98+
androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" }
99+
androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
100+
androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
101+
androidx-compose-ui-util = { module = "androidx.compose.ui:ui-util" }
102+
androidx-compose-ui-viewbinding = { module = "androidx.compose.ui:ui-viewbinding" }
103+
104+
# https://developer.android.com/jetpack/androidx/releases/lifecycle
105+
androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
106+
androidx-lifecycle-viewModelCompose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
107+
108+
androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" }
109+
androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" }
110+
androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" }
111+
androidx-lifecycle-viewmodel-savedstate = { module = "androidx.lifecycle:lifecycle-viewmodel-savedstate", version.ref = "androidx-lifecycle" }
112+
113+
# https://developer.android.com/jetpack/androidx/releases/navigation
114+
androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidx-navigation" }
115+
androidx-navigation-fragment = { module = "androidx.navigation:navigation-fragment-ktx" , version.ref = "androidx-navigation" }
116+
androidx-navigation-ui-ktx = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "androidx-navigation" }
117+
118+
androidx-constraintlayout-compose = { module = "androidx.constraintlayout:constraintlayout-compose", version.ref = "androidx-constraintlayout" }
103119
androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastore-preferences" }
104120
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-corektx" }
105121
androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" }
106-
androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle-compose" }
107-
androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle-compose" }
108-
androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle-compose-runtime" }
109-
androidx-lifecycle-viewModelCompose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle-compose" }
110-
androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle-compose" }
111-
androidx-lifecycle-viewmodel-savedstate = { module = "androidx.lifecycle:lifecycle-viewmodel-savedstate", version.ref = "androidx-lifecycle-compose" }
112-
androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidx-navigation" }
113-
androidx-navigation-fragment = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "androidx-navigation" }
114-
androidx-navigation-ui-ktx = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "androidx-navigation" }
122+
115123
androidx-palette = { module = "androidx.palette:palette", version.ref = "androidx-palette" }
116124
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
117125
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" }
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Thu Mar 23 00:58:33 CET 2023
1+
#Mon Apr 10 00:15:17 CEST 2023
22
distributionBase=GRADLE_USER_HOME
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists
66
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)