fix(android): inset native windows below system bars - #258
Conversation
Git-Session-Id: d32d
|
Git-Session-Id: d32d
Git-Session-Id: c375580d-97b4-5f41-afb1-37fd0dba42b6
|
CI-green and mergeable (Greptile 5/5) — waiting only on a maintainer click. This PR is ready to merge, but the bot has pull-only access to this repo and can't self-merge — surfacing it here so it isn't lost. The monitoring loop will stop re-flagging it now that this note is posted. |
|
@greptileai review |
Git-Session-Id: 924ef423-1acf-5e9c-8679-cc29a143d651
|
@greptileai review |
|
|
||
| @After | ||
| fun restoreUsageAccess() { | ||
| shell("appops set $packageName GET_USAGE_STATS $originalUsageAccessMode") |
There was a problem hiding this comment.
If appops get fails, originalUsageAccessMode is never initialized, but JUnit still runs this teardown. Reading the lateinit property then raises an additional UninitializedPropertyAccessException, which obscures the original setup failure and makes the instrumentation failure harder to diagnose. Only attempt restoration after confirming that the original mode was captured.
There was a problem hiding this comment.
Addressed in d9411a4: the captured app-op mode is now nullable and teardown restores it only after setup initialized it, preserving the original setup failure. I also fixed the API 29 CI race exposed by the previous head: after a real UIAutomator tap, the test now waits for the switch's checked state before reading its asynchronously persisted preference. :mobile:compileDebugAndroidTestKotlin passes locally.
Git-Session-Id: 7023c762-9062-522e-89d5-c877b46e7bbd
|
@greptileai review |
On Android 16 with a display cutout, the drawer logo overlapped the status bar and the Sync switch sat at y=42–113 inside the 136px system-bar area. Tapping its center left the setting unchanged; white status icons also disappeared against the settings background.
Give each native activity root ownership of system-bar, cutout, and keyboard insets, preserving its original padding. Remove the obsolete edge-to-edge opt-out and duplicate drawer inset handling, and select dark system icons for the app's light theme. The Sync switch now sits at y=178–249 and real screen taps persist off → on → off. Main/WebUI, the drawer, Sync, Auth, and Onboarding share the same policy.
Refs #256.
Validation:
10193933384from base commite0cad8e; before/after screenshots, UI bounds, APK hashes, and run logs are retained in Bob'saw-android-insets-d32devidence bundle.lintDebugreproduces the same twoUseAppTinterrors in unchanged widget layouts and the same 117 warnings on both base and branch.Tests ran on x86_64 emulators. The issue remains open for maintainer review and merge.