blob: 76f5b50aab4fe740ebe446445e7ca98a1ac21292 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.plugin.serialization")
id("org.jetbrains.kotlin.plugin.compose")
}
android {
namespace = "org.terst.doot.widget"
// 36: this is a single-user app, sideloaded only onto the one phone it's
// built for, not distributed broadly -- so "what does the widest range
// of devices support" (the reasoning behind the 2026-08-05 pass that set
// this to 31/34) is the wrong question. The actual device runs Android
// 16 (API 36); targeting anything lower means writing around
// capabilities that are just... there. build-tools;36.0.0 and
// platforms;android-36 are installed locally (see
// project-doot-widget-build memory) so this compiles clean, no D8
// version warnings.
compileSdk = 36
defaultConfig {
applicationId = "org.terst.doot.widget"
// minSdk == targetSdk == compileSdk == 36, matching the one real
// device this ships to exactly. No fallback path for anything
// older is needed or wanted -- corrected 2026-08-06 after
// discovering the prior pass's "most devices" framing didn't apply
// here. Verified this actually installs by building a real API 36
// AVD (doot_test_api36) and installing onto it directly, the same
// way the wrong-minSdk mistake was caught in the first place.
minSdk = 36
targetSdk = 36
versionCode = 1
versionName = "1.0"
}
signingConfigs {
create("release") {
storeFile = file("../doot-widget.keystore")
storePassword = "dootwid2026"
keyAlias = "doot-widget"
keyPassword = "dootwid2026"
}
}
buildTypes {
release {
isMinifyEnabled = false
signingConfig = signingConfigs.getByName("release")
}
}
buildFeatures {
compose = true
}
kotlinOptions {
jvmTarget = "11"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
dependencies {
val composeBom = platform("androidx.compose:compose-bom:2024.02.00")
implementation(composeBom)
implementation("androidx.glance:glance-appwidget:1.1.0")
implementation("androidx.glance:glance-material3:1.1.0")
implementation("androidx.work:work-runtime-ktx:2.9.0")
implementation("androidx.datastore:datastore-preferences:1.1.1")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0")
implementation("androidx.activity:activity-compose:1.9.0")
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.ui:ui")
testImplementation("junit:junit:4.13.2")
testImplementation("io.mockk:mockk:1.13.9")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.0")
}
|