- Architecture and feature overview in docs/ARCHITECTURE.md - Gradle 9.8 / AGP 9.4 / Kotlin 2.4 with version catalog and convention plugins - Modules :app, :core:*, :device-profiles, :feature:* (placeholder screens) - Flavors core (no INTERNET, enforced by a build check) and full - Material You theme, navigation, expert mode and dry-run settings (DataStore) - Pixel 8-10 device detection, unit tests, GPLv3 license, English README with Obtainium badge Co-Authored-By: Claude Opus 5.5 <[email protected]>
82 lines
2.6 KiB
Kotlin
82 lines
2.6 KiB
Kotlin
plugins {
|
|
alias(libs.plugins.pixelwall.android.application)
|
|
alias(libs.plugins.pixelwall.android.compose)
|
|
alias(libs.plugins.pixelwall.android.hilt)
|
|
}
|
|
|
|
android {
|
|
namespace = "org.pixelwall.app"
|
|
|
|
defaultConfig {
|
|
applicationId = "org.pixelwall.app"
|
|
versionCode = 1
|
|
versionName = "0.1.0"
|
|
}
|
|
|
|
flavorDimensions += "network"
|
|
productFlavors {
|
|
// Ohne INTERNET-Berechtigung. Firewall nur als Sperre pro App.
|
|
create("core") {
|
|
dimension = "network"
|
|
isDefault = true
|
|
}
|
|
// Mit INTERNET: DNS-Filter, Blocklisten, optionale Regelwerk-Updates.
|
|
create("full") {
|
|
dimension = "network"
|
|
applicationIdSuffix = ".full"
|
|
versionNameSuffix = "-full"
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
isMinifyEnabled = true
|
|
isShrinkResources = true
|
|
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
|
}
|
|
}
|
|
|
|
// F-Droid / reproducible builds: keine verschlüsselten Abhängigkeits-Metadaten im APK.
|
|
dependenciesInfo {
|
|
includeInApk = false
|
|
includeInBundle = false
|
|
}
|
|
|
|
androidResources {
|
|
localeFilters += listOf("en", "de")
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(project(":core:model"))
|
|
implementation(project(":core:domain"))
|
|
implementation(project(":core:data"))
|
|
implementation(project(":core:system"))
|
|
implementation(project(":core:privileged"))
|
|
implementation(project(":core:ui"))
|
|
implementation(project(":device-profiles"))
|
|
implementation(project(":feature:dashboard"))
|
|
implementation(project(":feature:permissions"))
|
|
implementation(project(":feature:network"))
|
|
implementation(project(":feature:system"))
|
|
implementation(project(":feature:profiles"))
|
|
implementation(project(":feature:trackers"))
|
|
implementation(project(":feature:monitor"))
|
|
implementation(project(":feature:changelog"))
|
|
implementation(project(":feature:onboarding"))
|
|
|
|
implementation(libs.androidx.core.ktx)
|
|
implementation(libs.androidx.activity.compose)
|
|
implementation(libs.androidx.lifecycle.runtime.compose)
|
|
implementation(libs.androidx.lifecycle.viewmodel.compose)
|
|
implementation(libs.androidx.navigation.compose)
|
|
implementation(libs.androidx.hilt.navigation.compose)
|
|
|
|
testImplementation(project(":core:testing"))
|
|
testImplementation(libs.truth)
|
|
testImplementation(libs.turbine)
|
|
|
|
androidTestImplementation(libs.androidx.test.ext.junit)
|
|
androidTestImplementation(libs.androidx.test.runner)
|
|
}
|