Skip to content

Commit

Permalink
Compose Previews & random refactorings & fixes everywhere
Browse files Browse the repository at this point in the history
Added previews to most components and DatmusicApp now can be run fully run in the preview mode (with the only exception being resizable layouts, which might be possible to preview when we can inject HiltViewModels in Compose Previews)

Animate M3 ColorScheme color changes

Prepare v2.3.0-beta.3 release
  • Loading branch information
alashow committed Sep 19, 2022
1 parent f8722b0 commit 35e7417
Show file tree
Hide file tree
Showing 175 changed files with 3,790 additions and 1,759 deletions.
125 changes: 64 additions & 61 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ import tm.alashow.buildSrc.App
import tm.alashow.buildSrc.Deps

plugins {
id "com.android.application"
id "dagger.hilt.android.plugin"
id "kotlin-android"
id "kotlin-kapt"
id "kotlin-parcelize"
id "org.jetbrains.kotlin.plugin.serialization"
id "androidx.navigation.safeargs.kotlin"
id("com.android.application")
id("dagger.hilt.android.plugin")
id("kotlin-android")
id("kotlin-kapt")
id("kotlin-parcelize")
id("org.jetbrains.kotlin.plugin.serialization")
id("androidx.navigation.safeargs.kotlin")
}

apply plugin: "com.github.triplet.play"
Expand All @@ -27,16 +27,17 @@ play {
def gitSha = "git rev-parse --short HEAD".execute([], project.rootDir).text.trim()

android {
compileSdkVersion App.compileSdkVersion
compileSdkVersion = App.compileSdkVersion

defaultConfig {
applicationId App.id
targetSdkVersion App.targetSdkVersion
minSdkVersion App.minSdkVersion
versionCode App.versionCode
versionName "${App.versionName}-${gitSha}"

multiDexEnabled true
namespace = "tm.alashow.datmusic"
applicationId = App.id
versionCode = App.versionCode
versionName = "${App.versionName}-${gitSha}"
targetSdkVersion(App.targetSdkVersion)
minSdkVersion(App.minSdkVersion)

multiDexEnabled = true
vectorDrawables.useSupportLibrary = true
}

Expand All @@ -48,8 +49,8 @@ android {
}

compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
sourceCompatibility = 1.8
targetCompatibility = 1.8
}


Expand All @@ -58,41 +59,41 @@ android {
}

composeOptions {
kotlinCompilerExtensionVersion Deps.Android.Compose.compilerVersion
kotlinCompilerExtensionVersion = Deps.Android.Compose.compilerVersion
}

signingConfigs {
debug {
storeFile rootProject.file("signing/alashov-debug.jks")
storePassword "alashov"
keyPassword "alashov"
keyAlias "alashov"
storeFile = rootProject.file("signing/alashov-debug.jks")
storePassword = "alashov"
keyPassword = "alashov"
keyAlias = "alashov"
}

release {
storeFile getFile("signing/datmusic-release.jks", "signing/alashov-debug.jks")
storePassword prop("DATMUSIC_RELEASE_KEYSTORE_PWD", "alashov")
keyPassword prop("DATMUSIC_RELEASE_KEY_PWD", "alashov")
keyAlias prop("DATMUSIC_RELEASE_KEY_ALIAS", "alashov")
storeFile = getFile("signing/datmusic-release.jks", "signing/alashov-debug.jks")
storePassword = prop("DATMUSIC_RELEASE_KEYSTORE_PWD", "alashov")
keyPassword = prop("DATMUSIC_RELEASE_KEY_PWD", "alashov")
keyAlias = prop("DATMUSIC_RELEASE_KEY_ALIAS", "alashov")
}
}

buildTypes {
debug {
signingConfig signingConfigs.debug
versionNameSuffix "-DEBUG"
applicationIdSuffix ".debug"
signingConfig = signingConfigs.debug
versionNameSuffix = "-DEBUG"
applicationIdSuffix = ".debug"

multiDexKeepProguard file("multidex-config.pro")
multiDexKeepProguard = file("multidex-config.pro")
}

release {
signingConfig signingConfigs.release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig = signingConfigs.release
minifyEnabled = true
shrinkResources = true
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")

multiDexKeepProguard file("multidex-config.pro")
multiDexKeepProguard = file("multidex-config.pro")
}
}

Expand All @@ -106,9 +107,8 @@ android {
jvmTarget = "1.8"
}
lint {
abortOnError false
abortOnError = false
}
namespace 'tm.alashow.datmusic'
}

repositories {
Expand All @@ -119,39 +119,42 @@ repositories {
}

dependencies {
implementation project(':modules:common-compose')
implementation project(":modules:common-ui-theme")
implementation project(":modules:common-ui-components")
implementation project(":modules:core-playback")
implementation project(":modules:core-ui-playback")
implementation project(":modules:core-ui-downloader")
implementation project(":modules:ui-library")
implementation project(":modules:navigation")
implementation project(":modules:ui-search")
implementation project(":modules:ui-settings")
implementation project(":modules:ui-artist")
implementation project(":modules:ui-album")
implementation project(":modules:ui-downloads")

implementation Deps.Kotlin.coroutinesAndroid
implementation(project(":modules:common-compose"))
implementation(project(":modules:common-ui-theme"))
implementation(project(":modules:common-ui-components"))
implementation(project(":modules:core-ui"))
implementation(project(":modules:core-playback"))
implementation(project(":modules:core-ui-playback"))
implementation(project(":modules:core-ui-downloader"))
implementation(project(":modules:navigation"))
implementation(project(":modules:ui-library"))
implementation(project(":modules:ui-search"))
implementation(project(":modules:ui-settings"))
implementation(project(":modules:ui-artist"))
implementation(project(":modules:ui-album"))
implementation(project(":modules:ui-downloads"))

implementation(Deps.Kotlin.coroutinesAndroid)

// utils
implementation Deps.Utils.proguardSnippets
implementation(Deps.Utils.proguardSnippets)

kapt Deps.Android.Lifecycle.compiler
kapt(Deps.Android.Lifecycle.compiler)

// dagger-2
implementation Deps.Dagger.hilt
kapt Deps.Dagger.compiler
kapt Deps.Dagger.hiltCompiler
implementation(Deps.Dagger.hilt)
kapt(Deps.Dagger.compiler)
kapt(Deps.Dagger.hiltCompiler)

// leak canary
//debugImplementation Deps.LeakCanary.leakCanary

// android
implementation Deps.Android.multiDex
implementation(Deps.Android.multiDex)
}

apply plugin: "com.google.gms.google-services"
apply plugin: "com.google.firebase.crashlytics"
apply plugin: "kotlinx-serialization"


apply(plugin: "com.google.gms.google-services")
apply(plugin: "com.google.firebase.crashlytics")
apply(plugin: "kotlinx-serialization")
41 changes: 20 additions & 21 deletions app/src/main/kotlin/tm/alashow/datmusic/ui/AppNavigation.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,19 @@ import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import com.google.accompanist.navigation.animation.AnimatedNavHost
import com.google.accompanist.navigation.animation.navigation
import com.google.firebase.analytics.FirebaseAnalytics
import tm.alashow.base.util.event
import tm.alashow.base.util.Analytics
import tm.alashow.common.compose.LocalAnalytics
import tm.alashow.common.compose.collectEvent
import tm.alashow.datmusic.ui.album.AlbumDetail
import tm.alashow.datmusic.ui.artist.ArtistDetail
import tm.alashow.datmusic.ui.downloads.Downloads
import tm.alashow.datmusic.ui.library.Library
import tm.alashow.datmusic.ui.library.playlists.create.CreatePlaylist
import tm.alashow.datmusic.ui.library.playlists.detail.PlaylistDetail
import tm.alashow.datmusic.ui.library.playlists.edit.EditPlaylist
import tm.alashow.datmusic.ui.playback.PlaybackSheet
import tm.alashow.datmusic.ui.album.AlbumDetailRoute
import tm.alashow.datmusic.ui.artist.ArtistDetailRoute
import tm.alashow.datmusic.ui.downloads.DownloadsRoute
import tm.alashow.datmusic.ui.library.LibraryRoute
import tm.alashow.datmusic.ui.library.playlists.create.CreatePlaylistRoute
import tm.alashow.datmusic.ui.library.playlists.detail.PlaylistDetailRoute
import tm.alashow.datmusic.ui.library.playlists.edit.EditPlaylistRoute
import tm.alashow.datmusic.ui.playback.PlaybackSheetRoute
import tm.alashow.datmusic.ui.search.SearchRoute
import tm.alashow.datmusic.ui.settings.Settings
import tm.alashow.datmusic.ui.settings.SettingsRoute
import tm.alashow.navigation.LocalNavigator
import tm.alashow.navigation.NavigationEvent
import tm.alashow.navigation.Navigator
Expand All @@ -56,7 +55,7 @@ internal fun AppNavigation(
navController: NavHostController,
modifier: Modifier = Modifier,
navigator: Navigator = LocalNavigator.current,
analytics: FirebaseAnalytics = LocalAnalytics.current,
analytics: Analytics = LocalAnalytics.current,
) {
collectEvent(navigator.queue) { event ->
analytics.event("navigator.navigate", mapOf("route" to event.route))
Expand Down Expand Up @@ -155,55 +154,55 @@ private fun NavGraphBuilder.addSearch() {

private fun NavGraphBuilder.addSettings() {
composableScreen(LeafScreen.Settings()) {
Settings()
SettingsRoute()
}
}

private fun NavGraphBuilder.addDownloads() {
composableScreen(LeafScreen.Downloads()) {
Downloads()
DownloadsRoute()
}
}

private fun NavGraphBuilder.addLibrary() {
composableScreen(LeafScreen.Library()) {
Library()
LibraryRoute()
}
}

private fun NavGraphBuilder.addCreatePlaylist() {
bottomSheetScreen(LeafScreen.CreatePlaylist()) {
CreatePlaylist()
CreatePlaylistRoute()
}
}

private fun NavGraphBuilder.addEditPlaylist() {
bottomSheetScreen(EditPlaylistScreen()) {
EditPlaylist()
EditPlaylistRoute()
}
}

private fun NavGraphBuilder.addPlaylistDetails(root: RootScreen) {
composableScreen(LeafScreen.PlaylistDetail(rootRoute = root.route)) {
PlaylistDetail()
PlaylistDetailRoute()
}
}

private fun NavGraphBuilder.addArtistDetails(root: RootScreen) {
composableScreen(LeafScreen.ArtistDetails(rootRoute = root.route)) {
ArtistDetail()
ArtistDetailRoute()
}
}

private fun NavGraphBuilder.addAlbumDetails(root: RootScreen) {
composableScreen(LeafScreen.AlbumDetails(rootRoute = root.route)) {
AlbumDetail()
AlbumDetailRoute()
}
}

private fun NavGraphBuilder.addPlaybackSheet() {
bottomSheetScreen(LeafScreen.PlaybackSheet()) {
PlaybackSheet()
PlaybackSheetRoute()
}
}

Expand Down
Loading

0 comments on commit 35e7417

Please sign in to comment.