feat(rhema-code): add the colors setting with four palettes
The stored `colors` key names a palette — rhema (the default, Jadeite), aquamarine, black-and-white, or dracula — and the Appearance page of /settings cycles it live, like the theme and icon toggles beside it. Each palette carries a dark and a light appearance under the existing `theme` key; dracula's light side is derived, the official palette ships only dark. The appearance decision moves off token comparison: Theme now answers is_dark() from the ground/text luminance, so palettes beyond the original two get the right per-profile fallback tones.
This commit is contained in:
commit
81da26b955
159 files changed
+50628
No files matched your search
@@ -0,0 +1,98 @@
|
||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
id("org.jetbrains.kotlin.plugin.compose")
|
||||
id("org.jetbrains.kotlin.plugin.serialization")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "rs.rhema.phone"
|
||||
compileSdk = 36
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "rs.rhema.phone"
|
||||
minSdk = 26
|
||||
targetSdk = 36
|
||||
versionCode = 1
|
||||
versionName = "0.1.0"
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
// Debug builds must install over each other, so the signing key
|
||||
// may not depend on the machine that ran the build: CI artifacts
|
||||
// share the identity of every local build via the committed
|
||||
// android/debug.keystore. A debug key guards nothing — this is
|
||||
// the conventional Android Debug identity, password "android" —
|
||||
// while a stable signature is what makes the artifacts updatable.
|
||||
getByName("debug") {
|
||||
storeFile = rootProject.file("debug.keystore")
|
||||
storePassword = "android"
|
||||
keyAlias = "androiddebugkey"
|
||||
keyPassword = "android"
|
||||
}
|
||||
|
||||
// The release key anchors the future edge channel: whatever is
|
||||
// signed with it can silently update an install that trusts the
|
||||
// channel, so it must not travel with the source. It exists only
|
||||
// as a CI secret (see .gitea/workflows/android.yml); blank
|
||||
// environment — local builds, fork PRs — leaves release unsigned.
|
||||
create("release") {
|
||||
storeFile = System.getenv("ANDROID_RELEASE_KEYSTORE")
|
||||
?.takeIf { it.isNotBlank() }?.let { rootProject.file(it) }
|
||||
storePassword = System.getenv("ANDROID_RELEASE_KEYSTORE_PASSWORD")
|
||||
?.takeIf { it.isNotBlank() }
|
||||
keyAlias = "rhema-release"
|
||||
keyPassword = storePassword
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
// Signed only where the release credentials exist; the
|
||||
// unsigned artifact is a build check, never a deliverable.
|
||||
if (!System.getenv("ANDROID_RELEASE_KEYSTORE")
|
||||
.isNullOrBlank()
|
||||
) {
|
||||
signingConfig = signingConfigs.getByName("release")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
jvmTarget.set(JvmTarget.JVM_17)
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(platform("androidx.compose:compose-bom:2025.12.01"))
|
||||
implementation("androidx.compose.ui:ui")
|
||||
implementation("androidx.compose.foundation:foundation")
|
||||
implementation("androidx.compose.material3:material3")
|
||||
implementation("androidx.compose.material:material-icons-core")
|
||||
implementation("androidx.activity:activity-compose:1.12.4")
|
||||
implementation("androidx.core:core-ktx:1.17.0")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.9.4")
|
||||
implementation("androidx.datastore:datastore-preferences:1.1.7")
|
||||
implementation("androidx.work:work-runtime-ktx:2.12.0")
|
||||
implementation("com.squareup.okhttp3:okhttp:4.12.0")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2")
|
||||
// 0.42+ declares minCompileSdk 37 in its AAR metadata; the project's
|
||||
// AGP tops out at 36. Revisit when AGP moves.
|
||||
implementation("com.mikepenz:multiplatform-markdown-renderer:0.41.0")
|
||||
implementation("com.mikepenz:multiplatform-markdown-renderer-m3:0.41.0")
|
||||
}
|
||||
Reference in new issue
Block a user