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
6.4 KiB
Plaintext
1 line
6.4 KiB
Plaintext
[{"key":"androidx/sqlite/db/framework/FrameworkSQLiteDatabase$Api30Impl.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteDatabase$Api30Impl.class","size":1690,"crc":722300737},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteDatabase$Companion.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteDatabase$Companion.class","size":2071,"crc":1298705647},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteDatabase.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteDatabase.class","size":20091,"crc":76758},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$Companion.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$Companion.class","size":936,"crc":1810184813},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$DBRefHolder.class","size":1309,"crc":1288018111},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$CallbackException.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$CallbackException.class","size":2034,"crc":2053179080},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$CallbackName.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$CallbackName.class","size":2522,"crc":629896998},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$Companion.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$Companion.class","size":3071,"crc":-705250548},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$WhenMappings.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper$WhenMappings.class","size":1258,"crc":1834522813},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper$OpenHelper.class","size":10856,"crc":1614166967},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelper.class","size":6701,"crc":-1456073643},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelperFactory.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteOpenHelperFactory.class","size":2031,"crc":-1483133276},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteProgram.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteProgram.class","size":2247,"crc":517420619},{"key":"androidx/sqlite/db/framework/FrameworkSQLiteStatement.class","name":"androidx/sqlite/db/framework/FrameworkSQLiteStatement.class","size":2007,"crc":-1138729867},{"key":"androidx/sqlite/driver/AndroidSQLiteConnection.class","name":"androidx/sqlite/driver/AndroidSQLiteConnection.class","size":2746,"crc":-1495138966},{"key":"androidx/sqlite/driver/AndroidSQLiteDriver.class","name":"androidx/sqlite/driver/AndroidSQLiteDriver.class","size":2131,"crc":-995228850},{"key":"androidx/sqlite/driver/ResultCode.class","name":"androidx/sqlite/driver/ResultCode.class","size":844,"crc":540212335},{"key":"androidx/sqlite/driver/SupportSQLiteConnection.class","name":"androidx/sqlite/driver/SupportSQLiteConnection.class","size":2411,"crc":-1779223014},{"key":"androidx/sqlite/driver/SupportSQLiteDriver.class","name":"androidx/sqlite/driver/SupportSQLiteDriver.class","size":3160,"crc":-49670975},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$Companion$SpecialOperation$JournalModeOperation.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$Companion$SpecialOperation$JournalModeOperation.class","size":1225,"crc":1031098488},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$Companion$SpecialOperation.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$Companion$SpecialOperation.class","size":1237,"crc":1892907308},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$Companion$TransactionOperation.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$Companion$TransactionOperation.class","size":2498,"crc":-1571598750},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$Companion.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$Companion.class","size":6656,"crc":-2008375785},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$JournalModeSetStatement.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$JournalModeSetStatement.class","size":5450,"crc":-785213530},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$OtherSQLiteStatement.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$OtherSQLiteStatement.class","size":4357,"crc":-1712619301},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$RowSQLiteStatement$Companion.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$RowSQLiteStatement$Companion.class","size":2007,"crc":1152433057},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$RowSQLiteStatement$ensureCursor$1.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$RowSQLiteStatement$ensureCursor$1.class","size":2844,"crc":-2125936718},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$RowSQLiteStatement.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$RowSQLiteStatement.class","size":8478,"crc":24822549},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$TransactionSQLiteStatement$WhenMappings.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$TransactionSQLiteStatement$WhenMappings.class","size":1364,"crc":1362901038},{"key":"androidx/sqlite/driver/SupportSQLiteStatement$TransactionSQLiteStatement.class","name":"androidx/sqlite/driver/SupportSQLiteStatement$TransactionSQLiteStatement.class","size":5216,"crc":301287558},{"key":"androidx/sqlite/driver/SupportSQLiteStatement.class","name":"androidx/sqlite/driver/SupportSQLiteStatement.class","size":3227,"crc":-1416259708},{"key":"androidx/sqlite/driver/SupportSQLiteStatement_androidKt.class","name":"androidx/sqlite/driver/SupportSQLiteStatement_androidKt.class","size":433,"crc":1429899179},{"key":"androidx/sqlite/util/ProcessLock$Companion.class","name":"androidx/sqlite/util/ProcessLock$Companion.class","size":2949,"crc":949858364},{"key":"androidx/sqlite/util/ProcessLock.class","name":"androidx/sqlite/util/ProcessLock.class","size":4637,"crc":-915271818},{"key":"META-INF/androidx.sqlite_sqlite-framework.version","name":"META-INF/androidx.sqlite_sqlite-framework.version","size":6,"crc":1823991704},{"key":"META-INF/sqlite-framework.kotlin_module","name":"META-INF/sqlite-framework.kotlin_module","size":84,"crc":1175044943}] |