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"