diff --git a/README.md b/README.md index 15e9a862..df45a89a 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,44 @@ cd purefin - For Android devices: Select your device/emulator and click Run - For Android TV: Select an Android TV emulator or device -### Download APK +### APK Repository -_Release builds coming soon_ +APKs are distributed via the [APK Version Manager](https://apks.t.bbara.hu/docs) at `https://apks.t.bbara.hu`. + +#### App names + +| Variant | App name | Update URL | +|---------|----------|--------------------------------------------------------------| +| Release (phone) | `purefin-app` | `https://apks.t.bbara.hu/apps/purefin-app/update.json` | +| Debug (phone) | `purefin-app-debug` | `https://apks.t.bbara.hu/apps/purefin-app-debug/update.json` | +| Release (TV) | `purefin-tv` | `https://apks.t.bbara.hu/apps/purefin-tv/update.json` | + +#### Building + +```bash +# Phone +./gradlew :app:assembleDebug # debug APK +./gradlew :app:assembleRelease # release APK (unsigned) + +# Android TV +./gradlew :app-tv:assembleDebug # debug APK +./gradlew :app-tv:assembleRelease # release APK (unsigned) +``` + +APK outputs go to `app/build/outputs/apk//` and `app-tv/build/outputs/apk//`. + +#### Uploading + +Upload via the API at `POST /api/apps/{app_name}/upload`: + +```bash +curl -X POST "https://apks.t.bbara.hu/api/apps/purefin-app-debug/upload" \ + -F "apk_file=@app/build/outputs/apk/debug/app-debug.apk" \ + -F "version_code=$(grep purefinDebugVersionCode gradle.properties | cut -d= -f2)" \ + -F "version_name=0.1-debug" +``` + +The `version_code` is defined in `gradle.properties` (`purefinReleaseVersionCode` for phone release, `purefinDebugVersionCode` for phone debug, `purefinTvVersionCode` for TV). The `version_name` is `0.1` for release or `0.1-debug` for debug. Both fields are required — the server cannot auto-extract them from the APK. ## Usage diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 99adfcd8..80024a60 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,7 +17,6 @@ android { applicationId = "hu.bbara.purefin" minSdk = 29 targetSdk = 36 - versionCode = providers.gradleProperty("purefinVersionCode").get().toInt() versionName = "0.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -25,14 +24,18 @@ android { buildTypes { debug { applicationIdSuffix = ".debug" + versionCode = providers.gradleProperty("purefinDebugVersionCode").get().toInt() versionNameSuffix = "-debug" + manifestPlaceholders["updateManifestUrl"] = "https://apks.t.bbara.hu/apps/purefin-app-debug/update.json" } release { + versionCode = providers.gradleProperty("purefinReleaseVersionCode").get().toInt() // Enables code-related app optimization. isMinifyEnabled = true // Enables resource shrinking. isShrinkResources = true + manifestPlaceholders["updateManifestUrl"] = "https://apks.t.bbara.hu/apps/purefin-app/update.json" proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) diff --git a/app/src/debug/res/values/colors.xml b/app/src/debug/res/values/colors.xml new file mode 100644 index 00000000..57c50308 --- /dev/null +++ b/app/src/debug/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #E53935 + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 897e8a1e..fd0b7ef2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,7 +22,7 @@ android:theme="@style/Theme.Purefin"> + android:value="${updateManifestUrl}" /> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 5b4e49f1..c3c3ea90 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,4 +1,5 @@ #131216 + #7C42F0 \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 9baf1fd2..6fb79afb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -28,5 +28,6 @@ android.dependency.useConstraints=true android.r8.strictFullModeForKeepRules=false android.builtInKotlin=false android.newDsl=false -purefinVersionCode=1000018 +purefinReleaseVersionCode=1000018 +purefinDebugVersionCode=1000000 purefinTvVersionCode=2000009