Files
minstrel/android/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/4R_hj8DDHXX4UhiCFqvpDg==
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
7.7 KiB
Plaintext

[{"key":"androidx/lifecycle/AndroidViewModel.class","name":"androidx/lifecycle/AndroidViewModel.class","size":1334,"crc":84131055},{"key":"androidx/lifecycle/AndroidViewModel_androidKt.class","name":"androidx/lifecycle/AndroidViewModel_androidKt.class","size":1058,"crc":-1065627333},{"key":"androidx/lifecycle/HasDefaultViewModelProviderFactory.class","name":"androidx/lifecycle/HasDefaultViewModelProviderFactory.class","size":1433,"crc":-1890344955},{"key":"androidx/lifecycle/ViewModel.class","name":"androidx/lifecycle/ViewModel.class","size":3688,"crc":1385162522},{"key":"androidx/lifecycle/ViewModelKt.class","name":"androidx/lifecycle/ViewModelKt.class","size":3200,"crc":-2040766149},{"key":"androidx/lifecycle/ViewModelLazy.class","name":"androidx/lifecycle/ViewModelLazy.class","size":5342,"crc":1366013618},{"key":"androidx/lifecycle/ViewModelProvider$AndroidViewModelFactory$Companion.class","name":"androidx/lifecycle/ViewModelProvider$AndroidViewModelFactory$Companion.class","size":2108,"crc":-153695082},{"key":"androidx/lifecycle/ViewModelProvider$AndroidViewModelFactory$special$$inlined$Key$1.class","name":"androidx/lifecycle/ViewModelProvider$AndroidViewModelFactory$special$$inlined$Key$1.class","size":1256,"crc":1900191060},{"key":"androidx/lifecycle/ViewModelProvider$AndroidViewModelFactory.class","name":"androidx/lifecycle/ViewModelProvider$AndroidViewModelFactory.class","size":7228,"crc":-199040977},{"key":"androidx/lifecycle/ViewModelProvider$Companion.class","name":"androidx/lifecycle/ViewModelProvider$Companion.class","size":4154,"crc":-1913648786},{"key":"androidx/lifecycle/ViewModelProvider$Factory$Companion.class","name":"androidx/lifecycle/ViewModelProvider$Factory$Companion.class","size":1987,"crc":-300351476},{"key":"androidx/lifecycle/ViewModelProvider$Factory.class","name":"androidx/lifecycle/ViewModelProvider$Factory.class","size":3144,"crc":494449351},{"key":"androidx/lifecycle/ViewModelProvider$NewInstanceFactory$Companion.class","name":"androidx/lifecycle/ViewModelProvider$NewInstanceFactory$Companion.class","size":2060,"crc":577931733},{"key":"androidx/lifecycle/ViewModelProvider$NewInstanceFactory.class","name":"androidx/lifecycle/ViewModelProvider$NewInstanceFactory.class","size":3938,"crc":1188329494},{"key":"androidx/lifecycle/ViewModelProvider$OnRequeryFactory.class","name":"androidx/lifecycle/ViewModelProvider$OnRequeryFactory.class","size":1338,"crc":169089131},{"key":"androidx/lifecycle/ViewModelProvider$special$$inlined$Key$1.class","name":"androidx/lifecycle/ViewModelProvider$special$$inlined$Key$1.class","size":1177,"crc":1843441083},{"key":"androidx/lifecycle/ViewModelProvider.class","name":"androidx/lifecycle/ViewModelProvider.class","size":8058,"crc":-404461306},{"key":"androidx/lifecycle/ViewModelProviderGetKt.class","name":"androidx/lifecycle/ViewModelProviderGetKt.class","size":1405,"crc":1047197175},{"key":"androidx/lifecycle/ViewModelStore.class","name":"androidx/lifecycle/ViewModelStore.class","size":2835,"crc":-1894165296},{"key":"androidx/lifecycle/ViewModelStoreOwner.class","name":"androidx/lifecycle/ViewModelStoreOwner.class","size":657,"crc":852060727},{"key":"androidx/lifecycle/ViewTreeViewModelKt.class","name":"androidx/lifecycle/ViewTreeViewModelKt.class","size":1306,"crc":1146856027},{"key":"androidx/lifecycle/ViewTreeViewModelStoreOwner.class","name":"androidx/lifecycle/ViewTreeViewModelStoreOwner.class","size":2123,"crc":486092908},{"key":"androidx/lifecycle/viewmodel/CreationExtras$Companion$Key$1.class","name":"androidx/lifecycle/viewmodel/CreationExtras$Companion$Key$1.class","size":1037,"crc":1372998634},{"key":"androidx/lifecycle/viewmodel/CreationExtras$Companion.class","name":"androidx/lifecycle/viewmodel/CreationExtras$Companion.class","size":1460,"crc":-1951900911},{"key":"androidx/lifecycle/viewmodel/CreationExtras$Empty.class","name":"androidx/lifecycle/viewmodel/CreationExtras$Empty.class","size":1509,"crc":-492955828},{"key":"androidx/lifecycle/viewmodel/CreationExtras$Key.class","name":"androidx/lifecycle/viewmodel/CreationExtras$Key.class","size":591,"crc":2104342658},{"key":"androidx/lifecycle/viewmodel/CreationExtras.class","name":"androidx/lifecycle/viewmodel/CreationExtras.class","size":2867,"crc":214085853},{"key":"androidx/lifecycle/viewmodel/CreationExtrasKt.class","name":"androidx/lifecycle/viewmodel/CreationExtrasKt.class","size":2319,"crc":-1931774744},{"key":"androidx/lifecycle/viewmodel/InitializerViewModelFactory.class","name":"androidx/lifecycle/viewmodel/InitializerViewModelFactory.class","size":2648,"crc":938182872},{"key":"androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder.class","name":"androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder.class","size":3501,"crc":106969697},{"key":"androidx/lifecycle/viewmodel/InitializerViewModelFactoryKt.class","name":"androidx/lifecycle/viewmodel/InitializerViewModelFactoryKt.class","size":2799,"crc":-1659473214},{"key":"androidx/lifecycle/viewmodel/MutableCreationExtras.class","name":"androidx/lifecycle/viewmodel/MutableCreationExtras.class","size":2941,"crc":2114561435},{"key":"androidx/lifecycle/viewmodel/ViewModelFactoryDsl.class","name":"androidx/lifecycle/viewmodel/ViewModelFactoryDsl.class","size":632,"crc":638307392},{"key":"androidx/lifecycle/viewmodel/ViewModelInitializer.class","name":"androidx/lifecycle/viewmodel/ViewModelInitializer.class","size":2680,"crc":1394244323},{"key":"androidx/lifecycle/viewmodel/ViewModelProviderImpl.class","name":"androidx/lifecycle/viewmodel/ViewModelProviderImpl.class","size":6465,"crc":1239972363},{"key":"androidx/lifecycle/viewmodel/ViewModelProviderImpl_androidKt.class","name":"androidx/lifecycle/viewmodel/ViewModelProviderImpl_androidKt.class","size":2320,"crc":768126844},{"key":"androidx/lifecycle/viewmodel/internal/CanonicalName_jvmKt.class","name":"androidx/lifecycle/viewmodel/internal/CanonicalName_jvmKt.class","size":984,"crc":773044805},{"key":"androidx/lifecycle/viewmodel/internal/CloseableCoroutineScope.class","name":"androidx/lifecycle/viewmodel/internal/CloseableCoroutineScope.class","size":1834,"crc":-1673770402},{"key":"androidx/lifecycle/viewmodel/internal/CloseableCoroutineScopeKt.class","name":"androidx/lifecycle/viewmodel/internal/CloseableCoroutineScopeKt.class","size":2494,"crc":1593083578},{"key":"androidx/lifecycle/viewmodel/internal/DefaultViewModelProviderFactory.class","name":"androidx/lifecycle/viewmodel/internal/DefaultViewModelProviderFactory.class","size":2058,"crc":1436031254},{"key":"androidx/lifecycle/viewmodel/internal/JvmViewModelProviders.class","name":"androidx/lifecycle/viewmodel/internal/JvmViewModelProviders.class","size":2751,"crc":-922451077},{"key":"androidx/lifecycle/viewmodel/internal/SynchronizedObject.class","name":"androidx/lifecycle/viewmodel/internal/SynchronizedObject.class","size":589,"crc":-1134446211},{"key":"androidx/lifecycle/viewmodel/internal/SynchronizedObjectKt.class","name":"androidx/lifecycle/viewmodel/internal/SynchronizedObjectKt.class","size":2539,"crc":295585271},{"key":"androidx/lifecycle/viewmodel/internal/SynchronizedObject_jvmKt.class","name":"androidx/lifecycle/viewmodel/internal/SynchronizedObject_jvmKt.class","size":1631,"crc":732318577},{"key":"androidx/lifecycle/viewmodel/internal/ViewModelImpl.class","name":"androidx/lifecycle/viewmodel/internal/ViewModelImpl.class","size":7746,"crc":1488918270},{"key":"androidx/lifecycle/viewmodel/internal/ViewModelProviders.class","name":"androidx/lifecycle/viewmodel/internal/ViewModelProviders.class","size":8521,"crc":1167300306},{"key":"META-INF/androidx.lifecycle_lifecycle-viewmodel.version","name":"META-INF/androidx.lifecycle_lifecycle-viewmodel.version","size":6,"crc":1653493832},{"key":"META-INF/lifecycle-viewmodel_release.kotlin_module","name":"META-INF/lifecycle-viewmodel_release.kotlin_module","size":414,"crc":-1862592921}]