Skip to content

Commit 9c7f2c6

Browse files
authored
Upgrade to latest dependencies (#32)
- 3640d9d - Fix build issue - 2ed9673 - Upgrade most libraries to latest - c483560 - Update workflows - 98f27ed - Remove multidex - dcdb19b - Update qonversion to latest - d13bf0b - Spotless apply - 61ab387 - Update build.gradle - d910bd2 - Update DownloaderNotificationManager.kt - bbc61e6 - Update DownloaderImplTest.kt - be83d58 - Update DownloaderNotificationManager.kt
1 parent 6e286ed commit 9c7f2c6

77 files changed

Lines changed: 558 additions & 709 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/android-pr.yml‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@ jobs:
88

99
steps:
1010
- uses: actions/checkout@v1
11-
- name: Set up JDK 11
12-
uses: actions/setup-java@v1
11+
- name: Set up JDK 21
12+
uses: actions/setup-java@v4
1313
with:
14-
java-version: 11
14+
java-version: 21
15+
distribution: temurin
1516

1617
- name: Setup Android SDK
17-
uses: android-actions/setup-android@v2
18+
uses: android-actions/setup-android@v4
1819

1920
- name: Run Tests
20-
uses: burrunan/gradle-cache-action@v1
21+
uses: burrunan/gradle-cache-action@v3.0.2
2122
with:
2223
gradle-dependencies-cache-key: |
2324
buildSrc/**/Deps.kt
@@ -33,7 +34,7 @@ jobs:
3334
find . -name "reports" -exec cp -r {} build-reports/ \;
3435
- name: Upload build reports
3536
if: always()
36-
uses: actions/upload-artifact@v1
37+
uses: actions/upload-artifact@v4
3738
with:
3839
name: build-reports
3940
path: build-reports
@@ -45,7 +46,7 @@ jobs:
4546
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} junit/ \;
4647
- name: Upload test results
4748
if: always()
48-
uses: actions/upload-artifact@v1
49+
uses: actions/upload-artifact@v4
4950
with:
5051
name: junit-results
5152
path: junit

‎.github/workflows/android.yml‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@ jobs:
1212

1313
steps:
1414
- uses: actions/checkout@v1
15-
- name: Set up JDK 11
16-
uses: actions/setup-java@v1
15+
- name: Set up JDK 21
16+
uses: actions/setup-java@v4
1717
with:
18-
java-version: 11
18+
java-version: 21
19+
distribution: temurin
1920

2021
- name: Setup Android SDK
21-
uses: android-actions/setup-android@v2
22+
uses: android-actions/setup-android@v4
2223

2324
- name: Run Tests
24-
uses: burrunan/gradle-cache-action@v1
25+
uses: burrunan/gradle-cache-action@v3.0.2
2526
with:
2627
gradle-dependencies-cache-key: |
2728
buildSrc/**/Deps.kt
@@ -37,7 +38,7 @@ jobs:
3738
find . -name "reports" -exec cp -r {} build-reports/ \;
3839
- name: Upload build reports
3940
if: always()
40-
uses: actions/upload-artifact@v1
41+
uses: actions/upload-artifact@v4
4142
with:
4243
name: build-reports
4344
path: build-reports
@@ -49,7 +50,7 @@ jobs:
4950
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} junit/ \;
5051
- name: Upload test results
5152
if: always()
52-
uses: actions/upload-artifact@v1
53+
uses: actions/upload-artifact@v4
5354
with:
5455
name: junit-results
5556
path: junit

‎.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ local.properties
4444
_sandbox
4545

4646
captures/
47+
.kotlin/
4748

4849
# Do not commit plain signing files
4950
signing/*-release.jks

‎app/build.gradle‎

Lines changed: 20 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,12 @@
66
import tm.alashow.buildSrc.App
77
import tm.alashow.buildSrc.Deps
88

9-
plugins {
10-
id("com.android.application")
11-
id("dagger.hilt.android.plugin")
12-
id("kotlin-android")
13-
id("kotlin-kapt")
14-
id("kotlin-parcelize")
15-
id("org.jetbrains.kotlin.plugin.serialization")
16-
id("androidx.navigation.safeargs.kotlin")
17-
}
18-
19-
apply plugin: "com.github.triplet.play"
20-
play {
21-
defaultToAppBundles = true
22-
track = prop("PUBLISH_TRACK", "alpha")
23-
serviceAccountCredentials = rootProject.file("signing/play-account.json")
24-
}
25-
9+
apply plugin: "com.android.application"
10+
apply plugin: "dagger.hilt.android.plugin"
11+
apply plugin: "kotlin-parcelize"
12+
apply plugin: "org.jetbrains.kotlin.plugin.serialization"
13+
apply plugin: "com.google.devtools.ksp"
14+
apply plugin: "org.jetbrains.kotlin.plugin.compose"
2615

2716
def gitSha = "git rev-parse --short HEAD".execute([], project.rootDir).text.trim()
2817

@@ -37,7 +26,6 @@ android {
3726
targetSdkVersion(App.targetSdkVersion)
3827
minSdkVersion(App.minSdkVersion)
3928

40-
multiDexEnabled = true
4129
vectorDrawables.useSupportLibrary = true
4230
}
4331

@@ -48,18 +36,9 @@ android {
4836
main.res.srcDirs += "src/main/res-drawable"
4937
}
5038

51-
compileOptions {
52-
sourceCompatibility = 1.8
53-
targetCompatibility = 1.8
54-
}
55-
56-
5739
buildFeatures {
5840
compose = true
59-
}
60-
61-
composeOptions {
62-
kotlinCompilerExtensionVersion = Deps.Android.Compose.compilerVersion
41+
buildConfig = true
6342
}
6443

6544
signingConfigs {
@@ -83,17 +62,13 @@ android {
8362
signingConfig = signingConfigs.debug
8463
versionNameSuffix = "-DEBUG"
8564
applicationIdSuffix = ".debug"
86-
87-
multiDexKeepProguard = file("multidex-config.pro")
8865
}
8966

9067
release {
9168
signingConfig = signingConfigs.release
9269
minifyEnabled = true
9370
shrinkResources = true
94-
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
95-
96-
multiDexKeepProguard = file("multidex-config.pro")
71+
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
9772
}
9873
}
9974

@@ -103,21 +78,11 @@ android {
10378
enableSplit = false // don't split language resources, as the app supports locale changing
10479
}
10580
}
106-
kotlinOptions {
107-
jvmTarget = "1.8"
108-
}
10981
lint {
11082
abortOnError = false
11183
}
11284
}
11385

114-
repositories {
115-
mavenCentral()
116-
maven { url "https://jitpack.io" }
117-
maven { url "https://oss.jfrog.org/artifactory/oss-snapshot-local/" }
118-
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
119-
}
120-
12186
dependencies {
12287
implementation(project(":modules:common-compose"))
12388
implementation(project(":modules:common-ui-theme"))
@@ -137,24 +102,27 @@ dependencies {
137102
implementation(Deps.Kotlin.coroutinesAndroid)
138103

139104
// utils
140-
implementation(Deps.Utils.proguardSnippets)
105+
//implementation(Deps.Utils.proguardSnippets)
141106

142-
kapt(Deps.Android.Lifecycle.compiler)
107+
ksp(Deps.Android.Lifecycle.compiler)
143108

144109
// dagger-2
145110
implementation(Deps.Dagger.hilt)
146-
kapt(Deps.Dagger.compiler)
147-
kapt(Deps.Dagger.hiltCompiler)
111+
ksp(Deps.Dagger.compiler)
112+
ksp(Deps.Dagger.hiltCompiler)
148113

149114
// leak canary
150115
//debugImplementation Deps.LeakCanary.leakCanary
151-
152-
// android
153-
implementation(Deps.Android.multiDex)
154116
}
155117

118+
apply plugin: "com.google.gms.google-services"
119+
apply plugin: "com.google.firebase.crashlytics"
156120

121+
apply plugin: "com.github.triplet.play"
122+
play {
123+
defaultToAppBundles = true
124+
track = prop("PUBLISH_TRACK", "alpha")
125+
serviceAccountCredentials = rootProject.file("signing/play-account.json")
126+
}
157127

158-
apply(plugin: "com.google.gms.google-services")
159-
apply(plugin: "com.google.firebase.crashlytics")
160128
apply(plugin: "kotlinx-serialization")

‎app/multidex-config.pro‎

Whitespace-only changes.

‎app/src/main/AndroidManifest.xml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
77
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
88
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
9+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
910
<uses-permission android:name="android.permission.WAKE_LOCK" />
1011
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
1112
<uses-permission android:name="com.android.vending.BILLING" />
@@ -44,6 +45,7 @@
4445

4546
<service
4647
android:name="tm.alashow.datmusic.playback.services.PlayerService"
48+
android:foregroundServiceType="mediaPlayback"
4749
android:enabled="true"
4850
android:exported="true">
4951
<intent-filter>

‎app/src/main/kotlin/tm/alashow/datmusic/App.kt‎

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
*/
55
package tm.alashow.datmusic
66

7-
import android.content.Context
8-
import androidx.multidex.MultiDex
97
import dagger.hilt.android.HiltAndroidApp
108
import javax.inject.Inject
119
import tm.alashow.base.BaseApp
@@ -26,9 +24,4 @@ class App : BaseApp() {
2624
initializers.init(this)
2725
appMigrator.migrate()
2826
}
29-
30-
override fun attachBaseContext(base: Context) {
31-
super.attachBaseContext(base)
32-
MultiDex.install(this)
33-
}
3427
}

‎app/src/main/kotlin/tm/alashow/datmusic/ui/AppNavigation.kt‎

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55
package tm.alashow.datmusic.ui
66

7-
import androidx.compose.animation.AnimatedContentScope
7+
import androidx.compose.animation.AnimatedContentTransitionScope
88
import androidx.compose.animation.EnterTransition
99
import androidx.compose.animation.ExitTransition
1010
import androidx.compose.animation.ExperimentalAnimationApi
@@ -25,8 +25,8 @@ import androidx.navigation.NavGraph
2525
import androidx.navigation.NavGraph.Companion.findStartDestination
2626
import androidx.navigation.NavGraphBuilder
2727
import androidx.navigation.NavHostController
28-
import com.google.accompanist.navigation.animation.AnimatedNavHost
29-
import com.google.accompanist.navigation.animation.navigation
28+
import androidx.navigation.compose.NavHost
29+
import androidx.navigation.navigation
3030
import tm.alashow.base.util.Analytics
3131
import tm.alashow.common.compose.LocalAnalytics
3232
import tm.alashow.common.compose.collectEvent
@@ -82,7 +82,7 @@ internal fun AppNavigation(
8282
else -> Unit
8383
}
8484
}
85-
AnimatedNavHost(
85+
NavHost(
8686
navController = navController,
8787
startDestination = RootScreen.Search.route,
8888
modifier = modifier,
@@ -232,7 +232,7 @@ internal fun NavController.currentScreenAsState(): State<RootScreen> {
232232
}
233233

234234
@ExperimentalAnimationApi
235-
private fun AnimatedContentScope<*>.defaultEnterTransition(
235+
private fun AnimatedContentTransitionScope<*>.defaultEnterTransition(
236236
initial: NavBackStackEntry,
237237
target: NavBackStackEntry,
238238
): EnterTransition {
@@ -243,11 +243,11 @@ private fun AnimatedContentScope<*>.defaultEnterTransition(
243243
return fadeIn()
244244
}
245245
// Otherwise we're in the same nav graph, we can imply a direction
246-
return fadeIn() + slideIntoContainer(AnimatedContentScope.SlideDirection.Start)
246+
return fadeIn() + slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Start)
247247
}
248248

249249
@ExperimentalAnimationApi
250-
private fun AnimatedContentScope<*>.defaultExitTransition(
250+
private fun AnimatedContentTransitionScope<*>.defaultExitTransition(
251251
initial: NavBackStackEntry,
252252
target: NavBackStackEntry,
253253
): ExitTransition {
@@ -258,18 +258,18 @@ private fun AnimatedContentScope<*>.defaultExitTransition(
258258
return fadeOut()
259259
}
260260
// Otherwise we're in the same nav graph, we can imply a direction
261-
return fadeOut() + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start)
261+
return fadeOut() + slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Start)
262262
}
263263

264264
internal val NavDestination.hostNavGraph: NavGraph
265265
get() = hierarchy.first { it is NavGraph } as NavGraph
266266

267267
@ExperimentalAnimationApi
268-
private fun AnimatedContentScope<*>.defaultPopEnterTransition(): EnterTransition {
269-
return fadeIn() + slideIntoContainer(AnimatedContentScope.SlideDirection.End)
268+
private fun AnimatedContentTransitionScope<*>.defaultPopEnterTransition(): EnterTransition {
269+
return fadeIn() + slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.End)
270270
}
271271

272272
@ExperimentalAnimationApi
273-
private fun AnimatedContentScope<*>.defaultPopExitTransition(): ExitTransition {
274-
return fadeOut() + slideOutOfContainer(AnimatedContentScope.SlideDirection.End)
273+
private fun AnimatedContentTransitionScope<*>.defaultPopExitTransition(): ExitTransition {
274+
return fadeOut() + slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.End)
275275
}

‎app/src/main/kotlin/tm/alashow/datmusic/ui/DatmusicApp.kt‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
package tm.alashow.datmusic.ui
66

77
import androidx.compose.animation.ExperimentalAnimationApi
8+
import androidx.compose.material.ModalBottomSheetLayout
9+
import androidx.compose.material.navigation.ModalBottomSheetLayout
810
import androidx.compose.material3.SnackbarHostState
911
import androidx.compose.runtime.Composable
1012
import androidx.compose.runtime.CompositionLocalProvider
@@ -14,10 +16,8 @@ import androidx.compose.ui.Modifier
1416
import androidx.hilt.navigation.compose.hiltViewModel
1517
import androidx.lifecycle.ViewModel
1618
import androidx.navigation.NavHostController
19+
import androidx.navigation.compose.rememberNavController
1720
import androidx.navigation.plusAssign
18-
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
19-
import com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi
20-
import com.google.accompanist.navigation.material.ModalBottomSheetLayout
2121
import dagger.hilt.android.lifecycle.HiltViewModel
2222
import javax.inject.Inject
2323
import tm.alashow.base.util.Analytics
@@ -58,13 +58,13 @@ fun DatmusicApp(
5858
)
5959
}
6060

61-
@OptIn(ExperimentalMaterialNavigationApi::class, ExperimentalAnimationApi::class)
61+
@OptIn(ExperimentalAnimationApi::class)
6262
@Composable
6363
private fun DatmusicAppContent(
6464
onPlayingTitleClick: () -> Unit,
6565
onPlayingArtistClick: () -> Unit,
6666
modifier: Modifier = Modifier,
67-
navController: NavHostController = rememberAnimatedNavController(),
67+
navController: NavHostController = rememberNavController(),
6868
) {
6969
val bottomSheetNavigator = rememberBottomSheetNavigator()
7070
navController.navigatorProvider += bottomSheetNavigator
@@ -79,7 +79,7 @@ private fun DatmusicAppContent(
7979

8080
// Could be renamed to DatmusicCoreViewModel if more things are injected
8181
@HiltViewModel
82-
private class AnalyticsViewModel @Inject constructor(val analytics: Analytics) : ViewModel()
82+
internal class AnalyticsViewModel @Inject constructor(val analytics: Analytics) : ViewModel()
8383

8484
@Composable
8585
private fun DatmusicCore(

0 commit comments

Comments
 (0)