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
7.3 KiB
Plaintext
1 line
7.3 KiB
Plaintext
[{"key":"androidx/compose/ui/unit/AndroidDensity_androidKt.class","name":"androidx/compose/ui/unit/AndroidDensity_androidKt.class","size":1797,"crc":-494811933},{"key":"androidx/compose/ui/unit/ComposeUiUnitFlags.class","name":"androidx/compose/ui/unit/ComposeUiUnitFlags.class","size":865,"crc":947939330},{"key":"androidx/compose/ui/unit/Constraints$Companion.class","name":"androidx/compose/ui/unit/Constraints$Companion.class","size":5773,"crc":-1473401420},{"key":"androidx/compose/ui/unit/Constraints.class","name":"androidx/compose/ui/unit/Constraints.class","size":10448,"crc":-1273899745},{"key":"androidx/compose/ui/unit/ConstraintsKt.class","name":"androidx/compose/ui/unit/ConstraintsKt.class","size":13120,"crc":-1963106381},{"key":"androidx/compose/ui/unit/Density$DefaultImpls.class","name":"androidx/compose/ui/unit/Density$DefaultImpls.class","size":3328,"crc":-428956521},{"key":"androidx/compose/ui/unit/Density.class","name":"androidx/compose/ui/unit/Density.class","size":9445,"crc":1542976227},{"key":"androidx/compose/ui/unit/DensityImpl.class","name":"androidx/compose/ui/unit/DensityImpl.class","size":2476,"crc":-2057312806},{"key":"androidx/compose/ui/unit/DensityKt.class","name":"androidx/compose/ui/unit/DensityKt.class","size":980,"crc":-1457300003},{"key":"androidx/compose/ui/unit/DensityWithConverter.class","name":"androidx/compose/ui/unit/DensityWithConverter.class","size":5055,"crc":1268128867},{"key":"androidx/compose/ui/unit/Dp$Companion.class","name":"androidx/compose/ui/unit/Dp$Companion.class","size":1674,"crc":-1065762031},{"key":"androidx/compose/ui/unit/Dp.class","name":"androidx/compose/ui/unit/Dp.class","size":5421,"crc":1466445942},{"key":"androidx/compose/ui/unit/DpKt.class","name":"androidx/compose/ui/unit/DpKt.class","size":12435,"crc":1901315745},{"key":"androidx/compose/ui/unit/DpOffset$Companion.class","name":"androidx/compose/ui/unit/DpOffset$Companion.class","size":1167,"crc":-697163645},{"key":"androidx/compose/ui/unit/DpOffset.class","name":"androidx/compose/ui/unit/DpOffset.class","size":6692,"crc":371696374},{"key":"androidx/compose/ui/unit/DpRect$Companion.class","name":"androidx/compose/ui/unit/DpRect$Companion.class","size":789,"crc":1385323096},{"key":"androidx/compose/ui/unit/DpRect.class","name":"androidx/compose/ui/unit/DpRect.class","size":5648,"crc":988582672},{"key":"androidx/compose/ui/unit/DpSize$Companion.class","name":"androidx/compose/ui/unit/DpSize$Companion.class","size":1159,"crc":-1592699205},{"key":"androidx/compose/ui/unit/DpSize.class","name":"androidx/compose/ui/unit/DpSize.class","size":8826,"crc":379159125},{"key":"androidx/compose/ui/unit/ExperimentalUnitApi.class","name":"androidx/compose/ui/unit/ExperimentalUnitApi.class","size":773,"crc":-595083207},{"key":"androidx/compose/ui/unit/FontScaling$DefaultImpls.class","name":"androidx/compose/ui/unit/FontScaling$DefaultImpls.class","size":1164,"crc":335694154},{"key":"androidx/compose/ui/unit/FontScaling.class","name":"androidx/compose/ui/unit/FontScaling.class","size":3773,"crc":-499658624},{"key":"androidx/compose/ui/unit/FontScalingLinear$DefaultImpls.class","name":"androidx/compose/ui/unit/FontScalingLinear$DefaultImpls.class","size":1182,"crc":-374462456},{"key":"androidx/compose/ui/unit/FontScalingLinear.class","name":"androidx/compose/ui/unit/FontScalingLinear.class","size":2968,"crc":1498490730},{"key":"androidx/compose/ui/unit/InlineClassHelperKt.class","name":"androidx/compose/ui/unit/InlineClassHelperKt.class","size":1800,"crc":-915090270},{"key":"androidx/compose/ui/unit/IntOffset$Companion.class","name":"androidx/compose/ui/unit/IntOffset$Companion.class","size":1154,"crc":1296086580},{"key":"androidx/compose/ui/unit/IntOffset.class","name":"androidx/compose/ui/unit/IntOffset.class","size":8023,"crc":-575568204},{"key":"androidx/compose/ui/unit/IntOffsetKt.class","name":"androidx/compose/ui/unit/IntOffsetKt.class","size":7372,"crc":137307657},{"key":"androidx/compose/ui/unit/IntRect$Companion.class","name":"androidx/compose/ui/unit/IntRect$Companion.class","size":1232,"crc":-637304736},{"key":"androidx/compose/ui/unit/IntRect.class","name":"androidx/compose/ui/unit/IntRect.class","size":10692,"crc":-60653063},{"key":"androidx/compose/ui/unit/IntRectKt.class","name":"androidx/compose/ui/unit/IntRectKt.class","size":4357,"crc":-1683355429},{"key":"androidx/compose/ui/unit/IntSize$Companion.class","name":"androidx/compose/ui/unit/IntSize$Companion.class","size":1004,"crc":300949453},{"key":"androidx/compose/ui/unit/IntSize.class","name":"androidx/compose/ui/unit/IntSize.class","size":5658,"crc":682736156},{"key":"androidx/compose/ui/unit/IntSizeKt.class","name":"androidx/compose/ui/unit/IntSizeKt.class","size":5824,"crc":1271947054},{"key":"androidx/compose/ui/unit/LayoutDirection.class","name":"androidx/compose/ui/unit/LayoutDirection.class","size":1825,"crc":-378007054},{"key":"androidx/compose/ui/unit/LinearFontScaleConverter.class","name":"androidx/compose/ui/unit/LinearFontScaleConverter.class","size":2417,"crc":378054756},{"key":"androidx/compose/ui/unit/TextUnit$Companion.class","name":"androidx/compose/ui/unit/TextUnit$Companion.class","size":1590,"crc":951386402},{"key":"androidx/compose/ui/unit/TextUnit.class","name":"androidx/compose/ui/unit/TextUnit.class","size":6433,"crc":400911227},{"key":"androidx/compose/ui/unit/TextUnitKt.class","name":"androidx/compose/ui/unit/TextUnitKt.class","size":8395,"crc":-1000758150},{"key":"androidx/compose/ui/unit/TextUnitType$Companion.class","name":"androidx/compose/ui/unit/TextUnitType$Companion.class","size":1320,"crc":-482083431},{"key":"androidx/compose/ui/unit/TextUnitType.class","name":"androidx/compose/ui/unit/TextUnitType.class","size":2689,"crc":-1567594253},{"key":"androidx/compose/ui/unit/Velocity$Companion.class","name":"androidx/compose/ui/unit/Velocity$Companion.class","size":1178,"crc":-444940337},{"key":"androidx/compose/ui/unit/Velocity.class","name":"androidx/compose/ui/unit/Velocity.class","size":8861,"crc":-651021001},{"key":"androidx/compose/ui/unit/VelocityKt.class","name":"androidx/compose/ui/unit/VelocityKt.class","size":1577,"crc":-1287369612},{"key":"androidx/compose/ui/unit/fontscaling/FontScaleConverter.class","name":"androidx/compose/ui/unit/fontscaling/FontScaleConverter.class","size":826,"crc":169679748},{"key":"androidx/compose/ui/unit/fontscaling/FontScaleConverterFactory.class","name":"androidx/compose/ui/unit/fontscaling/FontScaleConverterFactory.class","size":8976,"crc":-1723266133},{"key":"androidx/compose/ui/unit/fontscaling/FontScaleConverterTable$Companion.class","name":"androidx/compose/ui/unit/fontscaling/FontScaleConverterTable$Companion.class","size":2223,"crc":-1719021987},{"key":"androidx/compose/ui/unit/fontscaling/FontScaleConverterTable.class","name":"androidx/compose/ui/unit/fontscaling/FontScaleConverterTable.class","size":4041,"crc":-433135232},{"key":"androidx/compose/ui/unit/fontscaling/MathUtils.class","name":"androidx/compose/ui/unit/fontscaling/MathUtils.class","size":1800,"crc":-675895751},{"key":"androidx/compose/ui/unit/internal/JvmDefaultWithCompatibility_jvmAndAndroidKt.class","name":"androidx/compose/ui/unit/internal/JvmDefaultWithCompatibility_jvmAndAndroidKt.class","size":466,"crc":312593415},{"key":"META-INF/androidx.compose.ui_ui-unit.version","name":"META-INF/androidx.compose.ui_ui-unit.version","size":7,"crc":1165938089},{"key":"META-INF/ui-unit.kotlin_module","name":"META-INF/ui-unit.kotlin_module","size":273,"crc":2144195704}] |