Skip to content

Commit 2542cdb

Browse files
FredAppsclaude
andcommitted
Fix Wear OS install/launch bugs; release 1.0.1 (versionCode 16)
Three issues found testing on real watches, shipped as 1.0.1 to the wear:internal track: - Launch crash on Wear OS 5 (Xiaomi Watch 2): Wear Compose 1.4.0 reads the reduce_motion global setting, which is unreadable for targetSdk 35 on API 35+ and throws SecurityException. Upgrade Wear Compose to 1.5.6, which guards the read. - "Device not compatible" on Play (Galaxy Watch 6): the activity's portrait screenOrientation made Play imply a required android.hardware.screen.portrait feature that round watches lack. Declare screen.portrait/landscape and wifi as required=false. - Sentry release mapping upload failed (401 / "Failed to get region URL"): the fredapps org is in Sentry's EU region. Point the Gradle plugin at https://de.sentry.io in both modules. Bump versionName to 1.0.1 / versionCode to 16 (shared pool with the utility app at 14) and add a user-facing changelog entry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent c9bb4d7 commit 2542cdb

5 files changed

Lines changed: 33 additions & 4 deletions

File tree

app/build.gradle.kts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ android {
7878
applicationId = requireLocalProperty("wbooks.applicationId")
7979
minSdk = 30
8080
targetSdk = 35
81-
versionCode = 13
82-
versionName = "1.0.0"
81+
versionCode = 16
82+
versionName = "1.0.1"
8383

8484
manifestPlaceholders["sentryDsn"] = localProperty("sentry.dsn")
8585
}
@@ -140,6 +140,9 @@ sentry {
140140
org.set("fredapps")
141141
projectName.set("wbooks")
142142
authToken.set(localProperty("sentry.auth.token"))
143+
// Org is in Sentry's EU region; without this the plugin hits the US API
144+
// and the mapping upload fails with "Failed to get region URL" / 401.
145+
url.set("https://de.sentry.io")
143146

144147
// Upload ProGuard/R8 mapping so minified release stack traces are readable.
145148
// Only runs on release variants where minify is on; debug builds are untouched.

app/src/main/AndroidManifest.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,21 @@
33

44
<uses-feature android:name="android.hardware.type.watch" />
55

6+
<!--
7+
Override the *implied* required features Google Play derives from the
8+
manifest, otherwise Play filters the app off devices that don't advertise
9+
them ("device is not compatible"):
10+
- screen.portrait/landscape: implied required=true by the activity's
11+
android:screenOrientation="portrait". Round Wear OS watches (e.g.
12+
Galaxy Watch 6) don't advertise a portrait screen, so they'd be
13+
excluded. We still lock the UI to portrait at runtime.
14+
- wifi: implied required=true by ACCESS_WIFI_STATE. Book transfer falls
15+
back to the Bluetooth data layer, so don't require WiFi hardware.
16+
-->
17+
<uses-feature android:name="android.hardware.screen.portrait" android:required="false" />
18+
<uses-feature android:name="android.hardware.screen.landscape" android:required="false" />
19+
<uses-feature android:name="android.hardware.wifi" android:required="false" />
20+
621
<uses-permission android:name="android.permission.INTERNET" />
722
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
823
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

app/src/main/kotlin/com/fredapp/wbooks/data/changelog/Changelog.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ data class ChangelogEntry(
1111
* screen renders it top-down.
1212
*/
1313
val CHANGELOG: List<ChangelogEntry> = listOf(
14+
ChangelogEntry(
15+
version = "1.0.1",
16+
date = "2026-06-03",
17+
notes = listOf(
18+
"Fixed a crash that closed the app immediately on launch on newer Wear OS watches.",
19+
"Fixed a \"device not compatible\" error that blocked installing from Google Play on some round watches.",
20+
),
21+
),
1422
ChangelogEntry(
1523
version = "1.0.0",
1624
date = "2026-05-24",

companion/build.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ android {
7272
applicationId = requireLocalProperty("wbooks.applicationId")
7373
minSdk = 24
7474
targetSdk = 35
75-
versionCode = 13
75+
versionCode = 14
7676
versionName = "1.0.0"
7777

7878
manifestPlaceholders["sentryDsn"] = localProperty("sentry.dsn")
@@ -124,6 +124,9 @@ sentry {
124124
org.set("fredapps")
125125
projectName.set("wbooks")
126126
authToken.set(localProperty("sentry.auth.token"))
127+
// Org is in Sentry's EU region; without this the plugin hits the US API
128+
// and the mapping upload fails with "Failed to get region URL" / 401.
129+
url.set("https://de.sentry.io")
127130

128131
autoUploadProguardMapping.set(hasSentryAuthToken)
129132
includeSourceContext.set(hasSentryAuthToken)

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ kotlin = "2.0.21"
44
coreKtx = "1.13.1"
55
activityCompose = "1.9.3"
66
composeBom = "2024.10.01"
7-
wearCompose = "1.4.0"
7+
wearCompose = "1.5.6"
88
lifecycle = "2.8.7"
99
datastore = "1.1.1"
1010
coroutines = "1.8.1"

0 commit comments

Comments
 (0)