diff --git a/README.md b/README.md
deleted file mode 100644
index 18d41dd9..00000000
--- a/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-

-
-#
-
-#### Subtracks is an Android open source music streaming app for [Subsonic-compatible](http://www.subsonic.org/pages/api.jsp) servers ([Subsonic](http://www.subsonic.org/pages/index.jsp), [Navidrome](https://www.navidrome.org/), [Airsonic](https://airsonic.github.io/), and more). It's designed to give you clean and convenient access to your music in the style of modern media players.
-
-
-[](https://github.com/austinried/subtracks/releases/latest/)
-[](https://f-droid.org/en/packages/com.subtracks)
-[](https://github.com/austinried/subtracks/releases/)
-[](https://github.com/austinried/subtracks/stargazers)
-
-
-
-## π± Screenshots
-
-
-
-## β¬οΈ Download
-
-
-
->**Warning**
->
->Each download source above is signed with a different key, so you cannot switch between them without first uninstalling and then re-installing the app.
-
-## β¨ Features
-
-- Album and artist art display by default (full-res in detail/now playing views)
-- Gapless playback
-- Mulitple server support
-- Filterable/sortable album and artist library views
-- Search artists, albums, and songs
-- Scrobble support
-- Max bitrate and buffer size settings
-- Loop and shuffle playback options
-- Long-press for context menu shortcuts
-
-## π Coming Soonβ’
-
-- Offline support
-- Customizable home screen categories
-- Browse by folder support (currently only browses by tags)
-- Multiple music folder awareness
-- By year/by genre albums filter
-- Playlist mangement (add/remove/sort/edit)
-- Queue management (add/remove/sort)
-- Multi-select actions
-- Performance & animation improvements
-- More shuffle play modes
-
-## βοΈ Building
-
-See [Building from source](BUILDING.md).
-
-## π€ Translations
-
-Want to see Subtracks in your language? Visit the project on [Weblate](https://hosted.weblate.org/engage/subtracks/) to help!
-
-
-
-
-
-## π License
-
-[](https://github.com/austinried/subtracks/blob/main/LICENSE)
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index f2c1b95d..543c9445 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -16,7 +16,6 @@ android {
targetSdk = 35
versionCode = 1
versionName = "0.1.0"
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildFeatures {
@@ -59,11 +58,6 @@ dependencies {
implementation(libs.androidx.compose.ui.graphics)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.compose.material3)
- implementation(libs.androidx.navigation.compose)
- implementation(libs.koin.android)
- implementation(libs.koin.androidx.compose)
- implementation(libs.kotlinx.coroutines.android)
- implementation(libs.kotlinx.serialization.json)
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 23abd2e9..252f4f01 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,15 +2,10 @@
-
-
-
-
-
diff --git a/app/src/test/resources/robolectric.properties b/app/src/test/resources/robolectric.properties
index 979b5eeb..3f67ea5a 100644
--- a/app/src/test/resources/robolectric.properties
+++ b/app/src/test/resources/robolectric.properties
@@ -1 +1 @@
-sdk=34
+sdk=35
diff --git a/flake.nix b/flake.nix
index 74fcf51b..e88b5eba 100644
--- a/flake.nix
+++ b/flake.nix
@@ -24,7 +24,8 @@
};
android = pkgs.androidenv.composeAndroidPackages {
platformVersions = [ "35" ];
- buildToolsVersions = [ "latest" ];
+ buildToolsVersions = [ "37.0.0" ];
+ platformToolsVersion = "37.0.0";
includeEmulator = false;
includeSystemImages = false;
includeNDK = false;
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 2ea97f1f..a422132a 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,6 +1,6 @@
[versions]
agp = "8.7.3"
-kotlin = "2.1.0"
+kotlin = "2.1.20"
coreKtx = "1.15.0"
lifecycle = "2.8.7"
activityCompose = "1.9.3"
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 1b33c55b..a4b76b95 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index e2847c82..9715a887 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
+distributionSha256Sum=f397b287023acdba1e9f6fc5ea72d22dd63669d59ed4a289a29b1a76eee151c6
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew b/gradlew
index 23d15a93..f5feea6d 100755
--- a/gradlew
+++ b/gradlew
@@ -86,7 +86,8 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
-APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
+' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -114,7 +115,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH="\\\"\\\""
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
@@ -205,7 +206,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
-# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
@@ -213,7 +214,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
- -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
+ org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
diff --git a/gradlew.bat b/gradlew.bat
index 5eed7ee8..9b42019c 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -70,11 +70,11 @@ goto fail
:execute
@rem Setup the command line
-set CLASSPATH=
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell