Files
minstrel/android/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/F7jrxI2JsgGBk4yU+og9kw==
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
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}]