[go: nahoru, domu]

Skip to content

Commit

Permalink
Migrate to Kotlin DSL, upgrade dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
oblakr24 committed Mar 17, 2024
1 parent 9bcb866 commit f495217
Show file tree
Hide file tree
Showing 17 changed files with 203 additions and 181 deletions.
2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/migrations.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

124 changes: 0 additions & 124 deletions app/build.gradle

This file was deleted.

124 changes: 124 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("kotlin-kapt")
id("com.google.dagger.hilt.android")
id("org.jetbrains.kotlin.plugin.serialization") version "1.9.22"
}

android {
namespace = "com.rokoblak.chatbackup"
compileSdk = 34

defaultConfig {
applicationId = "com.rokoblak.chatbackup"
minSdk = 29
targetSdk = 34
versionCode = 6
versionName = "1.0.4"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
debug {
isMinifyEnabled = false
isShrinkResources = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.10"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}

dependencies {
val composeHiltNavigationVersion = "1.2.0"
val nav_version = "2.7.7"
val compose_ui_version = "1.6.3"

// Core/activity/lifecycle
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.activity:activity-compose:1.8.2")

// Hilt
implementation("com.google.dagger:hilt-android:2.49")
kapt("com.google.dagger:hilt-compiler:2.49")

// Compose
implementation("androidx.compose.ui:ui:$compose_ui_version")
implementation("androidx.compose.ui:ui-tooling-preview:$compose_ui_version")
implementation("androidx.compose.material:material:1.6.3")
// Compose constraint layout
implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1")
// Compose tooling
debugImplementation("androidx.compose.ui:ui-tooling:$compose_ui_version")
debugImplementation("androidx.compose.ui:ui-test-manifest:$compose_ui_version")
// Compose Navigation
implementation("androidx.navigation:navigation-compose:$nav_version")
implementation("androidx.hilt:hilt-navigation-compose:$composeHiltNavigationVersion")
// Compose permissions
implementation("com.google.accompanist:accompanist-permissions:0.31.2-alpha")
// Compose extended material icons
implementation("androidx.compose.material:material-icons-extended:1.6.3")
// Compose Material 3
implementation(platform("androidx.compose:compose-bom:2024.02.02"))
implementation("androidx.compose.material3:material3")
// Coil
implementation("io.coil-kt:coil-compose:2.6.0")

// Timber
val timber = "5.0.1"
implementation("com.jakewharton.timber:timber:$timber")

// Datastore
implementation("androidx.datastore:datastore-preferences:1.0.0")

// KotlinX immutable collections
api("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5")

// KotlinX Serialization
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0")

// SMS-MMS parsing lib, used for MMS
implementation("com.klinkerapps:android-smsmms:5.2.6")

// Test dependencies
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
androidTestImplementation("androidx.compose.ui:ui-test-junit4:$compose_ui_version")
}

kapt {
correctErrorTypes = true
}

apply {
plugin("app.cash.molecule")
}
2 changes: 1 addition & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# proguardFiles setting in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import androidx.compose.ui.platform.AndroidUiDispatcher
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import app.cash.molecule.RecompositionClock
import app.cash.molecule.RecompositionMode
import app.cash.molecule.launchMolecule
import com.rokoblak.chatbackup.data.model.Conversation
import com.rokoblak.chatbackup.domain.usecases.ConversationUseCase
Expand Down Expand Up @@ -45,7 +45,7 @@ class ConversationViewModel @Inject constructor(
private val inputs = MutableStateFlow("")

val uiState: StateFlow<ConversationScreenUIState> by lazy {
scope.launchMolecule(clock = RecompositionClock.ContextClock) {
scope.launchMolecule(mode = RecompositionMode.ContextClock) {
ConversationPresenter(convsFlow)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,22 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.ui.platform.AndroidUiDispatcher
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import app.cash.molecule.RecompositionClock
import app.cash.molecule.RecompositionMode
import app.cash.molecule.launchMolecule
import com.rokoblak.chatbackup.ui.commonui.ContactDisplayData
import com.rokoblak.chatbackup.conversation.ConversationRoute
import com.rokoblak.chatbackup.createchat.CreateChatUIState.*
import com.rokoblak.chatbackup.createchat.CreateChatUIState.Content
import com.rokoblak.chatbackup.data.model.Contact
import com.rokoblak.chatbackup.data.model.OperationResult
import com.rokoblak.chatbackup.domain.usecases.ContactsFilteringUseCase
import com.rokoblak.chatbackup.ui.navigation.RouteNavigator
import com.rokoblak.chatbackup.ui.commonui.ContactDisplayData
import com.rokoblak.chatbackup.ui.mapper.ConversationUIMapper
import com.rokoblak.chatbackup.ui.navigation.RouteNavigator
import com.rokoblak.chatbackup.util.SingleEventFlow
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.collections.immutable.toImmutableList
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
import javax.inject.Inject


Expand All @@ -36,7 +37,7 @@ class CreateChatViewModel @Inject constructor(
val effects = SingleEventFlow<CreateChatEffect>()

val uiState: StateFlow<CreateChatUIState> by lazy {
scope.launchMolecule(clock = RecompositionClock.ContextClock) {
scope.launchMolecule(mode = RecompositionMode.ContextClock) {
CreateChatPresenter(contactsFilteringUseCase.filteredContacts())
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@ import androidx.compose.runtime.collectAsState
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import app.cash.molecule.AndroidUiDispatcher
import app.cash.molecule.RecompositionClock
import app.cash.molecule.RecompositionMode
import app.cash.molecule.launchMolecule
import com.rokoblak.chatbackup.home.*
import com.rokoblak.chatbackup.ui.navigation.RouteNavigator
import com.rokoblak.chatbackup.data.repo.ConversationsRepository
import com.rokoblak.chatbackup.data.util.FileManager
Expand Down Expand Up @@ -41,7 +40,7 @@ class ExportViewModel @Inject constructor(
val effects = SingleEventFlow<ExportEffect>()

val uiState: StateFlow<ExportScreenUIState> by lazy {
scope.launchMolecule(clock = RecompositionClock.ContextClock) {
scope.launchMolecule(mode = RecompositionMode.ContextClock) {
ExportPresenter(exportFlow)
}
}
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/rokoblak/chatbackup/faq/FAQViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.ui.platform.AndroidUiDispatcher
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import app.cash.molecule.RecompositionClock
import app.cash.molecule.RecompositionMode
import app.cash.molecule.launchMolecule
import com.rokoblak.chatbackup.R
import com.rokoblak.chatbackup.ui.navigation.RouteNavigator
Expand All @@ -30,7 +30,7 @@ class FAQViewModel @Inject constructor(
private val expandedIndices = MutableStateFlow(emptyMap<Int, Boolean>())

val uiState: StateFlow<FAQScreenUIState> by lazy {
scope.launchMolecule(clock = RecompositionClock.ContextClock) {
scope.launchMolecule(mode = RecompositionMode.ContextClock) {
FAQPresenter(items, expandedIndices)
}
}
Expand Down
Loading

0 comments on commit f495217

Please sign in to comment.