diff --git a/.gitignore b/.gitignore index 0c420c28..24a71787 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,11 @@ *.iml .gradle -/local.properties -/package.properties -/.idea -/.kotlin +.idea +.kotlin .DS_Store /build /captures .externalNativeBuild .cxx local.properties +package.properties diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d33521..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index c8fe0e46..00000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml deleted file mode 100644 index 5ed8ccb3..00000000 --- a/.idea/kotlinc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index cc466730..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore index 327034ee..f8f07c4e 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1,3 +1,4 @@ /build +/schemas /release /debug diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b2d7523f..594653bf 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,9 +6,9 @@ import java.util.Properties plugins { id("com.android.application") - id("org.jetbrains.kotlin.android") + kotlin("android") + kotlin("plugin.parcelize") id("com.google.devtools.ksp") - id("org.jetbrains.kotlin.plugin.parcelize") } android { @@ -20,7 +20,7 @@ android { namespace = "org.akanework.gramophone" compileSdk = 35 buildToolsVersion = "35.0.0" - ndkVersion = "28.0.12433566-rc1" + ndkVersion = "28.0.12674087-rc2" androidResources { generateLocaleConfig = true @@ -84,23 +84,21 @@ android { } } - splits { - abi { - // Enables building multiple APKs per ABI. - isEnable = true + splits.abi { + // Enables building multiple APKs per ABI. + isEnable = true - // By default all ABIs are included, so use reset() and include to specify that you only - // want APKs for x86 and x86_64. + // By default all ABIs are included, so use reset() and include to specify that you only + // want APKs for x86 and x86_64. - // Resets the list of ABIs for Gradle to create APKs for to none. - reset() + // Resets the list of ABIs for Gradle to create APKs for to none. + reset() - // Specifies a list of ABIs for Gradle to create APKs for. - include("armeabi-v7a", "arm64-v8a", "x86", "x86_64") + // Specifies a list of ABIs for Gradle to create APKs for. + include("armeabi-v7a", "arm64-v8a", "x86", "x86_64") - // Specifies that you don't want to also generate a universal APK that includes all ABIs. - isUniversalApk = true - } + // Specifies that you don't want to also generate a universal APK that includes all ABIs. + isUniversalApk = true } buildTypes { @@ -133,11 +131,11 @@ android { includeInApk = false includeInBundle = false } +} - // https://stackoverflow.com/a/77745844 - tasks.withType { - doFirst { appMetadata.asFile.orNull?.writeText("") } - } +// https://stackoverflow.com/a/77745844 +tasks.withType { + doFirst { appMetadata.asFile.orNull?.writeText("") } } java { @@ -168,29 +166,29 @@ configurations.configureEach { } dependencies { - val media3Version = "1.5.0-rc01" - val roomVersion = "2.7.0-alpha11" + val media3Version = "1.5.0" + val roomVersion = "2.7.0-alpha12" ksp("androidx.room:room-compiler:$roomVersion") implementation("androidx.room:room-runtime:$roomVersion") implementation("androidx.room:room-ktx:$roomVersion") implementation("androidx.core:core-ktx:1.15.0") - implementation("androidx.activity:activity-ktx:1.10.0-beta01") + implementation("androidx.activity:activity-ktx:1.10.0-rc01") implementation("androidx.concurrent:concurrent-futures-ktx:1.2.0") implementation("androidx.transition:transition-ktx:1.5.1") // <-- for predictive back implementation("androidx.fragment:fragment-ktx:1.8.5") implementation("androidx.core:core-splashscreen:1.2.0-alpha02") - implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.0-alpha07") + implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.0-alpha08") implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.constraintlayout:constraintlayout:2.2.0") implementation("androidx.media3:media3-exoplayer:$media3Version") implementation("androidx.media3:media3-exoplayer-midi:$media3Version") implementation("androidx.media3:media3-session:$media3Version") implementation("androidx.preference:preference-ktx:1.2.1") - implementation("com.google.android.material:material:1.13.0-alpha07") + implementation("com.google.android.material:material:1.13.0-alpha08") implementation("com.google.android.flexbox:flexbox:3.0.0") implementation("me.zhanghai.android.fastscroll:library:1.3.0") - implementation("io.coil-kt.coil3:coil:3.0.3") + implementation("io.coil-kt.coil3:coil:3.0.4") implementation(files("../libs/lib-decoder-ffmpeg-release.aar")) implementation(projects.recyclerview) // --- below does not apply to release builds --- @@ -209,4 +207,4 @@ fun readProperties(propertiesFile: File) = Properties().apply { propertiesFile.inputStream().use { fis -> load(fis) } -} \ No newline at end of file +} diff --git a/app/schemas/org.akanework.gramophone.logic.data.db.AppDatabase/1.json b/app/schemas/org.akanework.gramophone.logic.data.db.AppDatabase/1.json deleted file mode 100644 index 60b265e5..00000000 --- a/app/schemas/org.akanework.gramophone.logic.data.db.AppDatabase/1.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "formatVersion": 1, - "database": { - "version": 1, - "identityHash": "8afa3a6fcdd90a0ca31c4947e9663786", - "entities": [ - { - "tableName": "playlistTable", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`playlistId` INTEGER NOT NULL, `name` TEXT NOT NULL, `playlistCover` TEXT, PRIMARY KEY(`playlistId`))", - "fields": [ - { - "fieldPath": "playlistId", - "columnName": "playlistId", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "name", - "columnName": "name", - "affinity": "TEXT", - "notNull": true - }, - { - "fieldPath": "playlistCover", - "columnName": "playlistCover", - "affinity": "TEXT", - "notNull": false - } - ], - "primaryKey": { - "autoGenerate": false, - "columnNames": [ - "playlistId" - ] - }, - "indices": [], - "foreignKeys": [] - }, - { - "tableName": "mediaItemTable", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`mediaItemId` INTEGER NOT NULL, PRIMARY KEY(`mediaItemId`))", - "fields": [ - { - "fieldPath": "mediaItemId", - "columnName": "mediaItemId", - "affinity": "INTEGER", - "notNull": true - } - ], - "primaryKey": { - "autoGenerate": false, - "columnNames": [ - "mediaItemId" - ] - }, - "indices": [], - "foreignKeys": [] - }, - { - "tableName": "playlistMediaItemCrossRef", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`playlistId` INTEGER NOT NULL, `mediaItemId` INTEGER NOT NULL, PRIMARY KEY(`playlistId`, `mediaItemId`), FOREIGN KEY(`playlistId`) REFERENCES `playlistTable`(`playlistId`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`mediaItemId`) REFERENCES `mediaItemTable`(`mediaItemId`) ON UPDATE NO ACTION ON DELETE CASCADE )", - "fields": [ - { - "fieldPath": "playlistId", - "columnName": "playlistId", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "mediaItemId", - "columnName": "mediaItemId", - "affinity": "INTEGER", - "notNull": true - } - ], - "primaryKey": { - "autoGenerate": false, - "columnNames": [ - "playlistId", - "mediaItemId" - ] - }, - "indices": [ - { - "name": "index_playlistMediaItemCrossRef_mediaItemId", - "unique": false, - "columnNames": [ - "mediaItemId" - ], - "orders": [], - "createSql": "CREATE INDEX IF NOT EXISTS `index_playlistMediaItemCrossRef_mediaItemId` ON `${TABLE_NAME}` (`mediaItemId`)" - } - ], - "foreignKeys": [ - { - "table": "playlistTable", - "onDelete": "CASCADE", - "onUpdate": "NO ACTION", - "columns": [ - "playlistId" - ], - "referencedColumns": [ - "playlistId" - ] - }, - { - "table": "mediaItemTable", - "onDelete": "CASCADE", - "onUpdate": "NO ACTION", - "columns": [ - "mediaItemId" - ], - "referencedColumns": [ - "mediaItemId" - ] - } - ] - } - ], - "views": [], - "setupQueries": [ - "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '8afa3a6fcdd90a0ca31c4947e9663786')" - ] - } -} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index ee99074c..06f79f46 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,14 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - val agpVersion = "8.7.2" + val agpVersion = "8.8.0-rc01" id("com.android.application") version agpVersion apply false id("com.android.library") version agpVersion apply false - val kotlinVersion = "2.1.0-RC" - id("org.jetbrains.kotlin.android") version kotlinVersion apply false - id("com.google.devtools.ksp") version "$kotlinVersion-1.0.27" apply false - id("org.jetbrains.kotlin.plugin.parcelize") version kotlinVersion apply false + val kotlinVersion = "2.1.0" + kotlin("android") version kotlinVersion apply false + kotlin("plugin.parcelize") version kotlinVersion apply false + id("com.google.devtools.ksp") version "$kotlinVersion-1.0.29" apply false } tasks.withType(JavaCompile::class) { options.compilerArgs.add("-Xlint:all") -} \ No newline at end of file +} diff --git a/gradle.properties b/gradle.properties index f1a86f3e..389eb522 100644 --- a/gradle.properties +++ b/gradle.properties @@ -39,4 +39,4 @@ android.enableR8.fullMode=true # Build BuildConfig as Bytecode android.enableBuildConfigAsBytecode=true # Enable ksp 2 -ksp.useKSP2=true \ No newline at end of file +ksp.useKSP2=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index df97d72b..e2847c82 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/libs/lib-decoder-ffmpeg-release.aar b/libs/lib-decoder-ffmpeg-release.aar index bcdf4b45..864146ac 100644 Binary files a/libs/lib-decoder-ffmpeg-release.aar and b/libs/lib-decoder-ffmpeg-release.aar differ diff --git a/recyclerview/build.gradle.kts b/recyclerview/build.gradle.kts index d8f39095..1c60895b 100644 --- a/recyclerview/build.gradle.kts +++ b/recyclerview/build.gradle.kts @@ -16,7 +16,7 @@ plugins { id("com.android.library") - id("org.jetbrains.kotlin.android") + kotlin("android") } android { @@ -68,4 +68,4 @@ dependencies { constraints { implementation("androidx.viewpager2:viewpager2:1.0.0") } -} \ No newline at end of file +} diff --git a/recyclerview/proguard-rules.pro b/recyclerview/proguard-rules.pro index c258298d..cba716b7 100644 --- a/recyclerview/proguard-rules.pro +++ b/recyclerview/proguard-rules.pro @@ -22,4 +22,4 @@ -keepclassmembers class androidx.recyclerview.widget.RecyclerView { public void suppressLayout(boolean); public boolean isLayoutSuppressed(); -} \ No newline at end of file +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 952a2a27..25599a24 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -20,7 +20,7 @@ dependencyResolutionManagement { } plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" + id("org.gradle.toolchains.foojay-resolver-convention") version "0.9.0" } rootProject.name = "Accord"