0b72827682
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>
1 line
4.6 KiB
Plaintext
1 line
4.6 KiB
Plaintext
[{"key":"META-INF/MANIFEST.MF","name":"META-INF/MANIFEST.MF","size":67,"crc":-1863225752},{"key":"dagger/hilt/DefineComponent$Builder.class","name":"dagger/hilt/DefineComponent$Builder.class","size":550,"crc":2117564533},{"key":"dagger/hilt/DefineComponent.class","name":"dagger/hilt/DefineComponent.class","size":728,"crc":1290340742},{"key":"dagger/hilt/EntryPoint.class","name":"dagger/hilt/EntryPoint.class","size":458,"crc":712625446},{"key":"dagger/hilt/EntryPoints.class","name":"dagger/hilt/EntryPoints.class","size":2528,"crc":238108421},{"key":"dagger/hilt/GeneratesRootInput.class","name":"dagger/hilt/GeneratesRootInput.class","size":408,"crc":1717998463},{"key":"dagger/hilt/InstallIn.class","name":"dagger/hilt/InstallIn.class","size":533,"crc":2057670338},{"key":"dagger/hilt/codegen/OriginatingElement.class","name":"dagger/hilt/codegen/OriginatingElement.class","size":267,"crc":1707308283},{"key":"dagger/hilt/components/SingletonComponent.class","name":"dagger/hilt/components/SingletonComponent.class","size":314,"crc":-1366463587},{"key":"dagger/hilt/internal/GeneratedComponent.class","name":"dagger/hilt/internal/GeneratedComponent.class","size":138,"crc":-1532354448},{"key":"dagger/hilt/internal/GeneratedComponentManager.class","name":"dagger/hilt/internal/GeneratedComponentManager.class","size":283,"crc":-547649433},{"key":"dagger/hilt/internal/GeneratedComponentManagerHolder.class","name":"dagger/hilt/internal/GeneratedComponentManagerHolder.class","size":471,"crc":-124288719},{"key":"dagger/hilt/internal/Preconditions.class","name":"dagger/hilt/internal/Preconditions.class","size":1580,"crc":-649566696},{"key":"dagger/hilt/internal/TestSingletonComponent.class","name":"dagger/hilt/internal/TestSingletonComponent.class","size":193,"crc":372663074},{"key":"dagger/hilt/internal/UnsafeCasts.class","name":"dagger/hilt/internal/UnsafeCasts.class","size":537,"crc":1725908247},{"key":"dagger/hilt/internal/aliasof/AliasOfPropagatedData.class","name":"dagger/hilt/internal/aliasof/AliasOfPropagatedData.class","size":658,"crc":-1405914316},{"key":"dagger/hilt/internal/definecomponent/DefineComponentClasses.class","name":"dagger/hilt/internal/definecomponent/DefineComponentClasses.class","size":532,"crc":734649081},{"key":"dagger/hilt/internal/definecomponent/DefineComponentNoParent.class","name":"dagger/hilt/internal/definecomponent/DefineComponentNoParent.class","size":368,"crc":-582134435},{"key":"dagger/hilt/internal/generatesrootinput/GeneratesRootInputPropagatedData.class","name":"dagger/hilt/internal/generatesrootinput/GeneratesRootInputPropagatedData.class","size":561,"crc":-1767884474},{"key":"dagger/hilt/migration/AliasOf.class","name":"dagger/hilt/migration/AliasOf.class","size":583,"crc":-1228508326},{"key":"dagger/hilt/migration/DisableInstallInCheck.class","name":"dagger/hilt/migration/DisableInstallInCheck.class","size":184,"crc":-725759383},{"key":"dagger/hilt/package-info.class","name":"dagger/hilt/package-info.class","size":208,"crc":2121738112},{"key":"dagger/hilt/processor/internal/aggregateddeps/AggregatedDeps.class","name":"dagger/hilt/processor/internal/aggregateddeps/AggregatedDeps.class","size":574,"crc":1039418898},{"key":"dagger/hilt/processor/internal/definecomponent/codegen/_dagger_hilt_components_SingletonComponent.class","name":"dagger/hilt/processor/internal/definecomponent/codegen/_dagger_hilt_components_SingletonComponent.class","size":628,"crc":-2059350258},{"key":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_DefineComponent.class","name":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_DefineComponent.class","size":586,"crc":1332881249},{"key":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_DefineComponent_Builder.class","name":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_DefineComponent_Builder.class","size":733,"crc":2084293464},{"key":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_EntryPoint.class","name":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_EntryPoint.class","size":566,"crc":920037867},{"key":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_InstallIn.class","name":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_InstallIn.class","size":562,"crc":-585262907},{"key":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_migration_AliasOf.class","name":"dagger/hilt/processor/internal/generatesrootinput/codegen/dagger_hilt_migration_AliasOf.class","size":594,"crc":-569167577},{"key":"META-INF/com.google.dagger_hilt-core.version","name":"META-INF/com.google.dagger_hilt-core.version","size":7,"crc":1151490331}] |