diff --git a/app/build.gradle b/app/build.gradle index 468c657..f9a15f8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,9 +1,8 @@ plugins { id 'com.android.application' - id 'kotlin-android' id 'com.google.dagger.hilt.android' - id 'kotlin-kapt' id 'com.google.devtools.ksp' + id 'org.jetbrains.kotlin.plugin.compose' } // Create a variable called keystorePropertiesFile, and initialize it to your @@ -29,7 +28,7 @@ android { defaultConfig { applicationId "me.zobrist.tichucounter" - minSdkVersion 21 + minSdkVersion 23 targetSdkVersion 36 versionCode versionProperties["versionCode"].toInteger() versionName "${versionMajor}.${versionMinor}.${versionProperties["versionCode"].toInteger()}" @@ -47,7 +46,7 @@ android { } } signingConfigs { - create("release") { + register("release") { keyAlias = keystoreProperties["keyAlias"] keyPassword = keystoreProperties["keyPassword"] storeFile = file(keystoreProperties["storeFile"]) @@ -65,19 +64,14 @@ android { buildFeatures { compose = true + buildConfig true } - composeOptions { - kotlinCompilerExtensionVersion = "1.5.14" - } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = '17' - } namespace 'me.zobrist.tichucounter' packagingOptions { resources { @@ -88,48 +82,42 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.core:core-ktx:1.13.1' - implementation 'androidx.appcompat:appcompat:1.7.0' - implementation "androidx.compose.material3:material3:1.2.1" - implementation 'com.google.android.play:review:2.0.1' - implementation 'com.google.android.play:review-ktx:2.0.1' - implementation 'com.google.code.gson:gson:2.10.1' - implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation 'androidx.navigation:navigation-fragment-ktx:2.7.7' - implementation 'androidx.navigation:navigation-ui-ktx:2.7.7' + implementation "org.jetbrains.kotlin:kotlin-stdlib:2.2.10" + implementation 'androidx.core:core-ktx:1.17.0' + implementation 'androidx.appcompat:appcompat:1.7.1' + implementation "androidx.compose.material3:material3:1.4.0" + implementation 'com.google.android.play:review:2.0.2' + implementation 'com.google.android.play:review-ktx:2.0.2' + implementation 'com.google.code.gson:gson:2.13.2' + implementation 'androidx.constraintlayout:constraintlayout:2.2.1' + implementation 'androidx.navigation:navigation-fragment-ktx:2.9.7' + implementation 'androidx.navigation:navigation-ui-ktx:2.9.7' implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.4' - implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4' - implementation 'androidx.fragment:fragment-ktx:1.8.2' + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.10.0' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.10.0' + implementation 'androidx.fragment:fragment-ktx:1.8.9' implementation 'androidx.preference:preference-ktx:1.2.1' - implementation 'androidx.recyclerview:recyclerview:1.3.2' - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.4' - implementation 'androidx.compose.material:material-icons-extended:1.6.8' - implementation "com.google.accompanist:accompanist-systemuicontroller:0.27.0" - implementation 'androidx.activity:activity-compose:1.9.1' - implementation "androidx.compose.ui:ui:1.6.8" - implementation "androidx.compose.ui:ui-tooling-preview:1.6.8" - implementation "androidx.compose.runtime:runtime-livedata:1.6.8" - implementation "androidx.navigation:navigation-compose:2.7.7" - implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4" + implementation 'androidx.recyclerview:recyclerview:1.4.0' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.10.0' + implementation 'androidx.compose.material:material-icons-extended:1.7.8' + implementation "com.google.accompanist:accompanist-systemuicontroller:0.36.0" + implementation 'androidx.activity:activity-compose:1.12.3' + implementation "androidx.compose.ui:ui:1.10.2" + implementation "androidx.compose.ui:ui-tooling-preview:1.10.2" + implementation "androidx.compose.runtime:runtime-livedata:1.10.2" + implementation "androidx.navigation:navigation-compose:2.9.7" + implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0" testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.2.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' - implementation "com.google.dagger:hilt-android:2.51.1" - androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.6.8" - debugImplementation "androidx.compose.ui:ui-tooling:1.6.8" - debugImplementation "androidx.compose.ui:ui-test-manifest:1.6.8" - kapt "com.google.dagger:hilt-compiler:2.51.1" - annotationProcessor "androidx.room:room-compiler:2.6.1" - implementation "androidx.room:room-runtime:2.6.1" - ksp "androidx.room:room-compiler:2.6.1" - implementation "androidx.room:room-ktx:2.6.1" - implementation "androidx.multidex:multidex:2.0.1" - api "androidx.navigation:navigation-fragment-ktx:2.7.7" + androidTestImplementation 'androidx.test.ext:junit:1.3.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0' + implementation "com.google.dagger:hilt-android:2.59" + androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.10.2" + debugImplementation "androidx.compose.ui:ui-tooling:1.10.2" + debugImplementation "androidx.compose.ui:ui-test-manifest:1.10.2" + ksp "com.google.dagger:hilt-compiler:2.59" + annotationProcessor "androidx.room:room-compiler:2.8.4" + implementation "androidx.room:room-runtime:2.8.4" + ksp "androidx.room:room-compiler:2.8.4" + implementation "androidx.room:room-ktx:2.8.4" + api "androidx.navigation:navigation-fragment-ktx:2.9.7" } - -// Allow references to generated code -kapt { - correctErrorTypes true -} \ No newline at end of file diff --git a/app/src/androidTest/java/me/zobrist/tichucounter/RepositoryInstrumentedTest.kt b/app/src/androidTest/java/me/zobrist/tichucounter/RepositoryInstrumentedTest.kt index 0373232..779528f 100644 --- a/app/src/androidTest/java/me/zobrist/tichucounter/RepositoryInstrumentedTest.kt +++ b/app/src/androidTest/java/me/zobrist/tichucounter/RepositoryInstrumentedTest.kt @@ -10,10 +10,11 @@ import me.zobrist.tichucounter.data.AppDatabase import me.zobrist.tichucounter.data.GameDao import me.zobrist.tichucounter.data.RoundDao import me.zobrist.tichucounter.repository.GameRepository -import org.junit.After +import org.junit.jupiter.api.AfterEach import org.junit.Assert.* -import org.junit.Before -import org.junit.Test +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.AfterEach import org.junit.runner.RunWith import java.io.IOException import java.util.* @@ -30,7 +31,7 @@ class RepositoryInstrumentedTest { private lateinit var repository: GameRepository private lateinit var db: AppDatabase - @Before + @BeforeEach fun createDb() { val context = ApplicationProvider.getApplicationContext() db = Room.inMemoryDatabaseBuilder( @@ -42,7 +43,7 @@ class RepositoryInstrumentedTest { repository = GameRepository(gameDao, roundDao) } - @After + @AfterEach @Throws(IOException::class) fun closeDb() { db.close() @@ -59,7 +60,7 @@ class RepositoryInstrumentedTest { } } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun modifyNames() = runTest { @@ -109,7 +110,7 @@ class RepositoryInstrumentedTest { } } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun setActive() = runTest { @@ -138,7 +139,7 @@ class RepositoryInstrumentedTest { } } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun addRoundToActiveGame() = runTest { @@ -211,7 +212,7 @@ class RepositoryInstrumentedTest { repository.deleteLastRound() } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun deleteInactive() = runTest { @@ -239,7 +240,7 @@ class RepositoryInstrumentedTest { assertEquals(6, roundDao.getAll().count()) } - @Test + @org.junit.jupiter.api.Test @Throws(Exception::class) fun deleteById() = runTest { diff --git a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt index 5aac582..1c2da52 100644 --- a/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt +++ b/app/src/main/java/me/zobrist/tichucounter/MainActivity.kt @@ -53,7 +53,6 @@ import me.zobrist.tichucounter.domain.SettingsAdapter import me.zobrist.tichucounter.domain.Theme import me.zobrist.tichucounter.domain.TopBarAction import me.zobrist.tichucounter.domain.TopBarState -import me.zobrist.tichucounter.domain.navigate import me.zobrist.tichucounter.repository.GameRepository import me.zobrist.tichucounter.ui.AppTheme import me.zobrist.tichucounter.ui.MainViewModel @@ -198,7 +197,7 @@ class MainActivity : AppCompatActivity() { drawerState.close() } - navController.navigate(it) + navController.navigate(it.name) } } ) { @@ -292,7 +291,7 @@ class MainActivity : AppCompatActivity() { HistoryList( historyViewModel, snackbarHostState - ) { navController.navigate(Route.COUNTER) } + ) { navController.navigate(Route.COUNTER.name) } } composable(Route.SETTINGS.name) { topBarState = diff --git a/app/src/main/java/me/zobrist/tichucounter/domain/ReviewService.kt b/app/src/main/java/me/zobrist/tichucounter/domain/ReviewService.kt index 3ee1b9a..d604eaf 100644 --- a/app/src/main/java/me/zobrist/tichucounter/domain/ReviewService.kt +++ b/app/src/main/java/me/zobrist/tichucounter/domain/ReviewService.kt @@ -7,27 +7,28 @@ import com.google.android.play.core.review.ReviewManagerFactory import dagger.hilt.android.qualifiers.ActivityContext import java.util.Date import javax.inject.Inject +import androidx.core.content.edit class ReviewService @Inject constructor(@ActivityContext private val appContext: Context) { private val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext) - private val THREE_MONTHS: Long = 7776000000 + private val threeMonths: Long = 7776000000 private var requestCalled: Int get() = sharedPreferences.getInt("requestCalled", 0) set(value) { - val editor = sharedPreferences.edit() - editor.putInt("requestCalled", value) - editor.apply() + sharedPreferences.edit { + putInt("requestCalled", value) + } } private var nextReviewedDate: Date get() = Date(sharedPreferences.getLong("lastReviewedDate", 0)) set(value) { - val editor = sharedPreferences.edit() - editor.putLong("lastReviewedDate", value.time) - editor.apply() + sharedPreferences.edit { + putLong("lastReviewedDate", value.time) + } } fun request() { @@ -36,7 +37,7 @@ class ReviewService @Inject constructor(@ActivityContext private val appContext: if (requestCalled >= 3) { if (nextReviewedDate.time < System.currentTimeMillis()) { requestCalled = 0 - nextReviewedDate = Date(System.currentTimeMillis() + THREE_MONTHS) + nextReviewedDate = Date(System.currentTimeMillis() + threeMonths) val manager = ReviewManagerFactory.create(appContext) diff --git a/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt b/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt index 27a4a77..ffe3476 100644 --- a/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt +++ b/app/src/main/java/me/zobrist/tichucounter/domain/SettingsAdapter.kt @@ -10,6 +10,7 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.launch import javax.inject.Inject import javax.inject.Singleton +import androidx.core.content.edit enum class Theme { DEFAULT, DARK, LIGHT } enum class Language(val value: LocaleListCompat) { @@ -93,20 +94,20 @@ class SettingsAdapter @Inject constructor(@ApplicationContext private val contex } private fun updatePreference(name: String?, value: String) { - val editor = sharedPreferences.edit() - editor.putString(name, value) - editor.apply() + sharedPreferences.edit { + putString(name, value) + } } private fun updatePreference(name: String?, value: Boolean) { - val editor = sharedPreferences.edit() - editor.putBoolean(name, value) - editor.apply() + sharedPreferences.edit { + putBoolean(name, value) + } } private fun updatePreference(name: String?, value: Int) { - val editor = sharedPreferences.edit() - editor.putInt(name, value) - editor.apply() + sharedPreferences.edit { + putInt(name, value) + } } } \ No newline at end of file diff --git a/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt b/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt index 1a5ac13..afc61f6 100644 --- a/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt +++ b/app/src/main/java/me/zobrist/tichucounter/repository/GameRepository.kt @@ -117,17 +117,15 @@ class GameRepository @Inject constructor( } suspend fun restoreLastDeletedGame() { - if (deletedGame == null) { - return - } - val revert = deletedGame!! + + val snapshot = deletedGame ?: return deletedGame = null withContext(Dispatchers.IO) { - gameDao.insert(revert.game) + val uid = gameDao.insert(snapshot.game.copy(uid = 0)) - revert.rounds.forEach { - roundDao.insert(it) + snapshot.rounds.forEach { + roundDao.insert(Round(uid, it.scoreA, it.scoreB)) } } } diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt index 8a02788..57a2df9 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/counter/KeyboardView.kt @@ -1,5 +1,6 @@ package me.zobrist.tichucounter.ui.counter +import android.annotation.SuppressLint import android.content.res.Configuration import androidx.compose.animation.core.RepeatMode import androidx.compose.animation.core.animateFloat @@ -343,6 +344,7 @@ fun CenteredTextField( } +@SuppressLint("RememberInComposition") @Preview(name = "Light Mode") @Preview(name = "Dark Mode", uiMode = Configuration.UI_MODE_NIGHT_YES, showBackground = true) @Composable diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt index 220cd31..bbaa492 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt @@ -3,7 +3,6 @@ package me.zobrist.tichucounter.ui.history import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateFloatAsState -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -26,7 +25,6 @@ import androidx.compose.material3.AlertDialog import androidx.compose.material3.Badge import androidx.compose.material3.Button import androidx.compose.material3.Card -import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.SnackbarDuration @@ -153,7 +151,6 @@ fun DeleteConfirmDialog(show: Boolean = true, onExecuted: (Boolean) -> Unit = {} } } -@OptIn(ExperimentalFoundationApi::class) @Composable fun HistoryList( games: List, @@ -166,18 +163,18 @@ fun HistoryList( LazyColumn(state = lazyListState) { items( items = games, - key = { it.hashCode() }) { + key = { it.game.uid} ) { if (it.game.active) { HistoryListItem( it, Modifier - .animateItemPlacement() + .animateItem() .padding(2.dp) ) } else { DismissibleHistoryListItem( it, - Modifier.animateItemPlacement(), + Modifier.animateItem(), onOpenClicked, onDeleteClicked ) @@ -190,7 +187,7 @@ fun HistoryList( .padding(start = 4.dp, end = 4.dp, top = 10.dp) .align(CenterVertically) .fillMaxWidth() - .animateItemPlacement(), + .animateItem(), onClick = { onDeleteAllClicked() }) { Icon(imageVector = Icons.Outlined.DeleteForever, contentDescription = null) Text(text = stringResource(id = R.string.deleteAll)) @@ -202,7 +199,6 @@ fun HistoryList( } -@OptIn(ExperimentalMaterial3Api::class) @Composable fun DismissibleHistoryListItem( game: GameWithScores, @@ -212,32 +208,25 @@ fun DismissibleHistoryListItem( ) { val density = LocalDensity.current - val dismissState = - rememberSwipeToDismissBoxState(positionalThreshold = { with(density) { 100.dp.toPx() } }, - - confirmValueChange = { - if (it == SwipeToDismissBoxValue.EndToStart) { - onDeleteClicked(game.game.uid) - } - if (it == SwipeToDismissBoxValue.StartToEnd) { - onOpenClicked(game.game.uid) - } - true - }) + val dismissState = rememberSwipeToDismissBoxState(positionalThreshold = { with(density) { 100.dp.toPx() } }) SwipeToDismissBox( modifier = modifier, state = dismissState, enableDismissFromEndToStart = true, enableDismissFromStartToEnd = true, - backgroundContent = { - ItemBackground(dismissState.targetValue) - }, content = { - HistoryListItem(game = game, modifier = Modifier.padding(2.dp)) + backgroundContent = { ItemBackground(dismissState.targetValue) }, + content = { HistoryListItem(game = game, modifier = Modifier.padding(2.dp)) }, + onDismiss = { + when(it) + { + SwipeToDismissBoxValue.EndToStart -> onDeleteClicked(game.game.uid) + SwipeToDismissBoxValue.StartToEnd -> onOpenClicked(game.game.uid) + else -> false + } }) } -@OptIn(ExperimentalMaterial3Api::class) @Composable fun ItemBackground( dismissBoxValue: SwipeToDismissBoxValue @@ -248,7 +237,7 @@ fun ItemBackground( SwipeToDismissBoxValue.StartToEnd -> MaterialTheme.colorScheme.primary else -> MaterialTheme.colorScheme.background - }, label = "" + } ) val textColor by animateColorAsState( when (dismissBoxValue) { @@ -256,10 +245,10 @@ fun ItemBackground( SwipeToDismissBoxValue.StartToEnd -> MaterialTheme.colorScheme.onPrimary else -> MaterialTheme.colorScheme.onBackground - }, label = "" + } ) val scale by animateFloatAsState( - if (dismissBoxValue == SwipeToDismissBoxValue.Settled) 0.75f else 1f, label = "" + if (dismissBoxValue == SwipeToDismissBoxValue.Settled) 0.75f else 1f ) Box( @@ -299,7 +288,6 @@ fun ItemBackground( } } -@OptIn(ExperimentalMaterial3Api::class) @Preview @Composable private fun BackgroundPreview() { diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index ac94b34..0000000 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 0ec5985..0000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index fdcbe44..0000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index f4fe3c7..0000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 83c9b55..0000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 5978362..0000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ec33beb..e9fc6c9 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -20,7 +20,6 @@ Löschen Alle löschen Aktives Spiel - Vergangene Spiele Counter About Schreib uns diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1cb4440..6909152 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,7 +23,6 @@ Delete Delete all Current Game - Old Games Counter About Contact us diff --git a/build.gradle b/build.gradle index b6d8524..03b695d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,11 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = "1.9.24" + ext.kotlin_version = '2.2.10' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.13.2' + classpath 'com.android.tools.build:gradle:9.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong @@ -15,9 +14,10 @@ buildscript { } plugins { - id 'com.google.dagger.hilt.android' version '2.51.1' apply false - id 'org.jetbrains.kotlin.android' version '1.7.20' apply false - id 'com.google.devtools.ksp' version '1.9.24-1.0.20' apply false + id 'com.google.dagger.hilt.android' version '2.59' apply false + id 'org.jetbrains.kotlin.android' version '2.2.10' apply false + id 'com.google.devtools.ksp' version '2.3.5' apply false + id 'org.jetbrains.kotlin.plugin.compose' version '2.2.10' apply false } allprojects { diff --git a/gradle.properties b/gradle.properties index 834a004..32bcab3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,6 +19,8 @@ android.useAndroidX=true android.enableJetifier=false # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official -android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=true -android.nonFinalResIds=false \ No newline at end of file +android.usesSdkInManifest.disallowed=false +android.uniquePackageNames=false +android.dependency.useConstraints=true +android.r8.strictFullModeForKeepRules=false \ No newline at end of file diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties new file mode 100644 index 0000000..3da0f73 --- /dev/null +++ b/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,13 @@ +#This file is generated by updateDaemonJvm +toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/ecd23fd7707c683afbcd6052998cb6a9/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/ecd23fd7707c683afbcd6052998cb6a9/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/e99bae143b75f9a10ead10248f02055e/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/04e088f8677de3b384108493cc9481d0/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/ecd23fd7707c683afbcd6052998cb6a9/redirect +toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/248ffb1098f61659502d0c09aa348294/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/056dc25d3b9d168ede8b94d3d2f99942/redirect +toolchainVendor=JETBRAINS +toolchainVersion=21 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 54a09d8..2b0f377 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-all.zip diff --git a/settings.gradle b/settings.gradle index 90dbc2d..2c65019 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,5 @@ +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' +} include ':app' rootProject.name = "Tichu Counter" \ No newline at end of file