Files
minstrel/android/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/IrX54JIfM79kTOXPTez+eg==
T
bvandeusen 0b72827682 fix(android): unblock first device test — auth contrast + dynamic base URL
Two regressions surfaced on the first real device run.

1. Contrast on ServerUrl + Login screens: both wrapped content in a
   bare Box(fillMaxSize), no Surface. The obsidian background never
   painted (rendered against the system root view's default),
   LocalContentColor cascade fell through to Material's default
   contentColor — the screens rendered as near-invisible dark text
   on dark grey. Wrap both in Surface(color = background, contentColor
   = onBackground) so the bg paints AND the M3 contentColor pipeline
   flows correctly through OutlinedTextField labels / cursor /
   placeholders + the Button content tint.

2. The bigger bug: NetworkModule.provideRetrofit read
   authStore.baseUrl.value ONCE at Retrofit creation. AuthStore loads
   from Room async, so at injection time the value was still the
   localhost:8080 placeholder. Result: even after the user typed
   their real server URL on the ServerUrl screen, every API call
   kept hitting localhost:8080 ("Failed to connect to
   localhost/127.0.0.1:8080" on the login attempt). The pre-fix
   NetworkModule comment even acknowledged it — *"Server-URL
   changes require an app relaunch"*.

   Fix: per-request rewrite. New BaseUrlInterceptor reads the live
   AuthStore.baseUrl.value on every request and rewrites
   scheme/host/port of the outgoing URL. Retrofit now keeps a
   placeholder baseUrl ("http://placeholder.invalid/") solely to
   satisfy its parser; the actual target host is dynamic. Order in
   OkHttp chain: BaseUrl first → Auth → logging, so the cookie
   interceptor sees the final URL.

New:
  - api/BaseUrlInterceptor.kt — per-request scheme/host/port rewrite
    from AuthStore.baseUrl. Falls through to the original request
    when the stored URL is unparseable.

Modified:
  - api/NetworkModule.kt — adds BaseUrlInterceptor to the OkHttp
    chain. Drops the AuthStore dependency from provideRetrofit;
    swaps baseUrl for the placeholder.
  - auth/ui/ServerUrlScreen.kt — Box → Surface wrap.
  - auth/ui/LoginScreen.kt — Box → Surface wrap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 00:27:05 -04:00

1 line
8.5 KiB
Plaintext

[{"key":"androidx/activity/compose/ActivityComposeUtilsKt.class","name":"androidx/activity/compose/ActivityComposeUtilsKt.class","size":1046,"crc":467388989},{"key":"androidx/activity/compose/ActivityResultLauncherHolder.class","name":"androidx/activity/compose/ActivityResultLauncherHolder.class","size":2462,"crc":1884005465},{"key":"androidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1$invoke$$inlined$onDispose$1.class","name":"androidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1$invoke$$inlined$onDispose$1.class","size":2377,"crc":595459979},{"key":"androidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1.class","name":"androidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1.class","size":5508,"crc":-651732193},{"key":"androidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1.class","name":"androidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1.class","size":1588,"crc":-531707919},{"key":"androidx/activity/compose/ActivityResultRegistryKt.class","name":"androidx/activity/compose/ActivityResultRegistryKt.class","size":7590,"crc":-700711089},{"key":"androidx/activity/compose/BackHandlerKt$BackHandler$1$1.class","name":"androidx/activity/compose/BackHandlerKt$BackHandler$1$1.class","size":1479,"crc":-596123820},{"key":"androidx/activity/compose/BackHandlerKt$BackHandler$2$1$invoke$$inlined$onDispose$1.class","name":"androidx/activity/compose/BackHandlerKt$BackHandler$2$1$invoke$$inlined$onDispose$1.class","size":2195,"crc":-1727118253},{"key":"androidx/activity/compose/BackHandlerKt$BackHandler$2$1.class","name":"androidx/activity/compose/BackHandlerKt$BackHandler$2$1.class","size":3423,"crc":-877948432},{"key":"androidx/activity/compose/BackHandlerKt$BackHandler$3.class","name":"androidx/activity/compose/BackHandlerKt$BackHandler$3.class","size":1838,"crc":1925984074},{"key":"androidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1.class","name":"androidx/activity/compose/BackHandlerKt$BackHandler$backCallback$1$1.class","size":1522,"crc":123387424},{"key":"androidx/activity/compose/BackHandlerKt.class","name":"androidx/activity/compose/BackHandlerKt.class","size":8553,"crc":-1320049577},{"key":"androidx/activity/compose/ComponentActivityKt.class","name":"androidx/activity/compose/ComponentActivityKt.class","size":4266,"crc":-707835248},{"key":"androidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1.class","name":"androidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1.class","size":1352,"crc":715108056},{"key":"androidx/activity/compose/LocalActivityResultRegistryOwner.class","name":"androidx/activity/compose/LocalActivityResultRegistryOwner.class","size":5405,"crc":1142019662},{"key":"androidx/activity/compose/LocalFullyDrawnReporterOwner$LocalFullyDrawnReporterOwner$1.class","name":"androidx/activity/compose/LocalFullyDrawnReporterOwner$LocalFullyDrawnReporterOwner$1.class","size":1320,"crc":1802299417},{"key":"androidx/activity/compose/LocalFullyDrawnReporterOwner.class","name":"androidx/activity/compose/LocalFullyDrawnReporterOwner.class","size":5685,"crc":428694162},{"key":"androidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1.class","name":"androidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1.class","size":1360,"crc":-114965854},{"key":"androidx/activity/compose/LocalOnBackPressedDispatcherOwner.class","name":"androidx/activity/compose/LocalOnBackPressedDispatcherOwner.class","size":5766,"crc":1752420111},{"key":"androidx/activity/compose/ManagedActivityResultLauncher.class","name":"androidx/activity/compose/ManagedActivityResultLauncher.class","size":3241,"crc":-1569828288},{"key":"androidx/activity/compose/OnBackInstance$job$1$1.class","name":"androidx/activity/compose/OnBackInstance$job$1$1.class","size":3344,"crc":351065657},{"key":"androidx/activity/compose/OnBackInstance$job$1.class","name":"androidx/activity/compose/OnBackInstance$job$1.class","size":5690,"crc":-1011818597},{"key":"androidx/activity/compose/OnBackInstance.class","name":"androidx/activity/compose/OnBackInstance.class","size":4649,"crc":1968541243},{"key":"androidx/activity/compose/PredictiveBackHandlerCallback.class","name":"androidx/activity/compose/PredictiveBackHandlerCallback.class","size":4794,"crc":-211144873},{"key":"androidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$2$1.class","name":"androidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$2$1.class","size":3649,"crc":-144107739},{"key":"androidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$3$1$invoke$$inlined$onDispose$1.class","name":"androidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$3$1$invoke$$inlined$onDispose$1.class","size":2296,"crc":1088189129},{"key":"androidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$3$1.class","name":"androidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$3$1.class","size":3532,"crc":1726420428},{"key":"androidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$4.class","name":"androidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$4.class","size":2148,"crc":1846596490},{"key":"androidx/activity/compose/PredictiveBackHandlerKt.class","name":"androidx/activity/compose/PredictiveBackHandlerKt.class","size":12366,"crc":642059971},{"key":"androidx/activity/compose/ReportDrawnComposition$checkReporter$1.class","name":"androidx/activity/compose/ReportDrawnComposition$checkReporter$1.class","size":1801,"crc":616718532},{"key":"androidx/activity/compose/ReportDrawnComposition$observeReporter$1.class","name":"androidx/activity/compose/ReportDrawnComposition$observeReporter$1.class","size":1718,"crc":-253037839},{"key":"androidx/activity/compose/ReportDrawnComposition$snapshotStateObserver$1.class","name":"androidx/activity/compose/ReportDrawnComposition$snapshotStateObserver$1.class","size":1688,"crc":-426348463},{"key":"androidx/activity/compose/ReportDrawnComposition.class","name":"androidx/activity/compose/ReportDrawnComposition.class","size":4154,"crc":385139534},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawn$1.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawn$1.class","size":1285,"crc":1462340618},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawn$2.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawn$2.class","size":1415,"crc":-422479786},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawnAfter$1$1.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawnAfter$1$1.class","size":5121,"crc":-844831841},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawnAfter$2.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawnAfter$2.class","size":1852,"crc":-65978723},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawnAfter$fullyDrawnReporter$1.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawnAfter$fullyDrawnReporter$1.class","size":1890,"crc":857497705},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$1$invoke$$inlined$onDispose$1.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$1$invoke$$inlined$onDispose$1.class","size":1915,"crc":-116997982},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$1$invoke$$inlined$onDispose$2.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$1$invoke$$inlined$onDispose$2.class","size":2171,"crc":-480815930},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$1.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$1$1.class","size":3618,"crc":-751688202},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$2.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$2.class","size":1757,"crc":-180670835},{"key":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$fullyDrawnReporter$1.class","name":"androidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$fullyDrawnReporter$1.class","size":1795,"crc":1895945797},{"key":"androidx/activity/compose/ReportDrawnKt.class","name":"androidx/activity/compose/ReportDrawnKt.class","size":7169,"crc":412795906},{"key":"META-INF/activity-compose_release.kotlin_module","name":"META-INF/activity-compose_release.kotlin_module","size":180,"crc":508638569},{"key":"META-INF/androidx.activity_activity-compose.version","name":"META-INF/androidx.activity_activity-compose.version","size":6,"crc":-1420053471}]