Skip to content

Commit e20143a

Browse files
authored
Merge pull request #100 from swingmx/fix/auth-channel-navigation
`refactor:` Upgrade Dependencies and Remove Custom WavySlider
2 parents a232c4d + ac4693e commit e20143a

46 files changed

Lines changed: 182 additions & 964 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.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@
1111
local.properties
1212
*.keystore
1313
keystore-base64.txt
14+
/.kotlin/sessions

app/build.gradle.kts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
plugins {
22
id("com.android.application")
33
id("org.jetbrains.kotlin.android")
4+
id("org.jetbrains.kotlin.plugin.compose")
45
id("com.google.dagger.hilt.android")
56
id("com.google.devtools.ksp")
67
}
78

89
android {
910
namespace = "com.android.swingmusic"
10-
compileSdk = 35
11+
compileSdk = 36
1112

1213
defaultConfig {
1314
applicationId = "com.android.swingmusic"
1415
minSdk = 26
15-
targetSdk = 35
16+
targetSdk = 36
1617
versionCode = project.findProperty("versionCode")?.toString()?.toInt() ?: 1
1718
versionName = project.findProperty("versionName")?.toString() ?: "1.0.0"
1819

@@ -32,6 +33,11 @@ android {
3233
}
3334

3435
buildTypes {
36+
debug {
37+
isDebuggable = true
38+
applicationIdSuffix = ".debug"
39+
resValue("string", "app_name", "[Debug]")
40+
}
3541
release {
3642
isMinifyEnabled = true
3743
signingConfig = signingConfigs.getByName("release")
@@ -49,14 +55,15 @@ android {
4955
}
5056
buildFeatures {
5157
compose = true
52-
}
53-
composeOptions {
54-
kotlinCompilerExtensionVersion = "1.5.0"
58+
buildConfig = true
5559
}
5660
packaging {
5761
resources {
5862
excludes += "/META-INF/{AL2.0,LGPL2.1}"
5963
}
64+
jniLibs {
65+
useLegacyPackaging = false
66+
}
6067
}
6168
}
6269

@@ -82,7 +89,7 @@ dependencies {
8289
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7")
8390

8491
// Compose
85-
implementation(platform("androidx.compose:compose-bom:2024.10.01"))
92+
implementation(platform("androidx.compose:compose-bom:2025.05.00"))
8693
implementation("androidx.compose.ui:ui")
8794
implementation("androidx.compose.ui:ui-graphics")
8895
implementation("androidx.compose.ui:ui-tooling-preview")
@@ -93,8 +100,8 @@ dependencies {
93100
testImplementation("junit:junit:4.13.2")
94101

95102
// Hilt DI
96-
implementation("com.google.dagger:hilt-android:2.50")
97-
ksp("com.google.dagger:hilt-android-compiler:2.50")
103+
implementation("com.google.dagger:hilt-android:2.53.1")
104+
ksp("com.google.dagger:hilt-android-compiler:2.53.1")
98105

99106
// Hilt Navigation-Compose
100107
implementation("androidx.hilt:hilt-navigation-compose:1.2.0")

app/proguard-rules.pro

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,14 @@
1616
-keep class com.android.swingmusic.core.** { *; }
1717
-keep class com.android.swingmusic.network.** { *; }
1818
-keep class com.android.swingmusic.database.** { *; }
19+
20+
# Timber - strip logging calls from release builds
21+
-assumenosideeffects class timber.log.Timber* {
22+
public static *** d(...);
23+
public static *** v(...);
24+
public static *** i(...);
25+
public static *** w(...);
26+
public static *** e(...);
27+
public static *** wtf(...);
28+
public static *** tag(...);
29+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<style name="Chucker.Theme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
4+
<item name="android:fitsSystemWindows">true</item>
5+
<item name="android:windowLightStatusBar">false</item>
6+
</style>
7+
</resources>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<style name="Chucker.Theme" parent="Theme.MaterialComponents.Light.NoActionBar">
4+
<item name="android:fitsSystemWindows">true</item>
5+
<item name="android:windowLightStatusBar">true</item>
6+
</style>
7+
</resources>

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
xmlns:tools="http://schemas.android.com/tools">
44

55
<uses-permission android:name="android.permission.INTERNET" />
6+
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
67
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
78
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
89
<uses-permission android:name="android.permission.WAKE_LOCK" tools:node="replace"/>
910
<uses-permission android:name="android.permission.VIBRATE" />
1011

1112
<application
1213
android:name=".app.SwingMusicApp"
14+
tools:replace="android:name"
1315
android:allowBackup="true"
1416
android:dataExtractionRules="@xml/data_extraction_rules"
1517
android:fullBackupContent="@xml/backup_rules"
@@ -35,7 +37,7 @@
3537
android:name=".presentation.activity.MainActivity"
3638
android:exported="true"
3739
android:screenOrientation="portrait"
38-
android:configChanges="orientation|screenSize|uiMode"
40+
android:configChanges="orientation"
3941
android:theme="@style/Theme.SwingMusic">
4042
<intent-filter>
4143
<action android:name="android.intent.action.MAIN" />

app/src/main/java/com/android/swingmusic/app/SwingMusicApp.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.android.swingmusic.app
33
import android.app.Application
44
import androidx.work.Configuration
55
import com.android.swingmusic.auth.data.workmanager.TokenRefreshWorkerFactory
6+
import com.android.swingmusic.BuildConfig
67
import dagger.hilt.android.HiltAndroidApp
78
import kotlinx.coroutines.Dispatchers
89
import kotlinx.coroutines.asExecutor
@@ -17,7 +18,9 @@ class SwingMusicApp : Application(), Configuration.Provider {
1718

1819
override fun onCreate() {
1920
super.onCreate()
20-
Timber.plant(Timber.DebugTree())
21+
if (BuildConfig.DEBUG) {
22+
Timber.plant(Timber.DebugTree())
23+
}
2124
}
2225

2326
override val workManagerConfiguration: Configuration by lazy {

app/src/main/java/com/android/swingmusic/presentation/activity/MainActivity.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ import com.ramcosta.composedestinations.animations.defaults.RootNavGraphDefaultA
8181
import com.ramcosta.composedestinations.animations.rememberAnimatedNavHostEngine
8282
import com.ramcosta.composedestinations.navigation.dependency
8383
import com.ramcosta.composedestinations.utils.destination
84+
import android.Manifest
85+
import android.os.Build
86+
import com.android.swingmusic.BuildConfig
8487
import dagger.hilt.android.AndroidEntryPoint
8588
import kotlinx.coroutines.flow.collectLatest
8689
import kotlinx.coroutines.launch
@@ -113,6 +116,10 @@ class MainActivity : ComponentActivity() {
113116
enableEdgeToEdge()
114117
super.onCreate(savedInstanceState)
115118

119+
if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
120+
requestPermissions(arrayOf(Manifest.permission.POST_NOTIFICATIONS), 0)
121+
}
122+
116123
scheduleTokenRefreshWork(applicationContext)
117124

118125
setContent {

app/src/main/java/com/android/swingmusic/service/PlaybackService.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ import androidx.media3.common.util.UnstableApi
1212
import androidx.media3.exoplayer.DefaultLoadControl
1313
import androidx.media3.exoplayer.ExoPlayer
1414
import androidx.media3.exoplayer.source.ProgressiveMediaSource
15+
import androidx.media3.session.DefaultMediaNotificationProvider
1516
import androidx.media3.session.MediaSession
1617
import androidx.media3.session.MediaSessionService
18+
import com.android.swingmusic.R
1719
import com.android.swingmusic.auth.data.tokenholder.AuthTokenHolder
1820
import com.android.swingmusic.auth.domain.repository.AuthRepository
1921
import dagger.hilt.android.AndroidEntryPoint
@@ -37,6 +39,11 @@ class PlaybackService : MediaSessionService() {
3739
override fun onCreate() {
3840
super.onCreate()
3941

42+
val notificationProvider = DefaultMediaNotificationProvider.Builder(this)
43+
.setChannelName(R.string.media3_notification_channel_name)
44+
.build()
45+
setMediaNotificationProvider(notificationProvider)
46+
4047
serviceScope.launch {
4148
val accessToken = authRepository.getAccessToken()
4249
?: "TAG: $this SERVICE -> TOKEN NOT FOUND"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="30"
5+
android:viewportHeight="30">
6+
<path
7+
android:pathData="M15.003,15.908C16.534,15.908 18.033,15.817 19.262,15.635C20.236,15.488 20.541,14.769 20.21,13.742L18.38,7.976C18.049,6.92 17.199,6.428 16.028,6.428H13.972C12.8,6.428 11.951,6.92 11.62,7.976L9.79,13.742C9.459,14.769 9.764,15.488 10.738,15.635C11.967,15.817 13.467,15.908 15.003,15.908ZM14.365,15.422V23.087H15.637V15.422H14.365ZM11.874,23.572H18.126C18.425,23.572 18.628,23.358 18.628,23.046C18.628,22.47 18.158,22.07 17.451,22.07H12.549C11.842,22.07 11.379,22.47 11.379,23.046C11.379,23.358 11.575,23.572 11.874,23.572Z"
8+
android:fillColor="#FFFFFF"/>
9+
</vector>

0 commit comments

Comments
 (0)