Commit Graph

5 Commits

Author SHA1 Message Date
阿猫
ddd5009bb1 task(0a00ccbd-6f98-4730-adf2-6f1e864823de): Mount M2 project workbench home and modernize M1 layouts
- FeatureMount: HOME tab now mounts ProjectWorkspaceFragment; delete placeholder HomeFragment
- app/build.gradle.kts + libs.versions.toml: add androidx recyclerview and swiperefreshlayout for project list and pull-to-refresh
- NetworkModule: register ProjectApi (M2 2.5.1.1 GetProjectList) via provideProjectApi
- SessionRepository: add SessionState.Restoring as initial state so cold start renders neutral loading instead of prompting login
- MineFragment/layout: consumer-grade flow with horizontal identity card (whole card acts as login CTA when signed out), config warning card, grouped settings rows; drop back button and manual refresh entry
- MineViewModel: remove manual refresh(); session restore is now automatic on cold start
- LoginFragment/layout: MaterialToolbar back, segmented MaterialButtonToggleGroup for account/SMS mode, TextInputLayout floating-label inputs, linear progress below button
- ConfigFragment/ChangePasswordFragment layouts: unify back navigation to Toolbar, switch plain EditTexts to TextInputLayout, replace ProgressBar with LinearProgressIndicator
- strings.xml: add M2 home workbench copy and mine/login labels; remove unused action_back, mine_login, mine_refresh, mine_config_ready, mine_logout_confirm
2026-09-03 23:50:20 +08:00
❀ » Cato Sweeney. ❀ » Console@the.bb
dec274b1af * 2026-09-03 17:14:31 +08:00
阿猫
8854ff4288 task(1ff499d8-9640-4cda-a068-b52bac9f6731): Fix login response contract deviation blocking real device login
- Change AuthApi login and getUserInfo return types to ApiEnvelope<JsonElement>
- Add tokenFromData to handle both string and {"Token":"..."} object responses
- Add userInfoFromData to handle both flat UserInfo and {"UserInfo":"<escaped JSON>"} responses
- Inject Json into SessionRepository for unified deserialization
- Update signIn flow to extract token and user info through unified helpers
- Add contract tolerance documentation explaining V4.5 spec vs test environment behavior
2026-09-03 14:44:30 +08:00
阿猫
ee8238020a task(f4b5cc37-e27d-480a-ac94-f78a8b24a4d1): Implement M1 account and session module with e2e tests
- Add AuthApi with 5 endpoints (LoginByAccount, LoginByMobile, etc.)
- Implement dual-layer envelope unwrapping in ApiCaller for HTTP 500 + ASP.NET exceptions
- Add DynamicBaseUrlInterceptor for runtime server switching
- Implement SessionRepository with login state management and token persistence
- Add Mine/Login/Config/ChangePassword UI with ViewBinding and state machines
- Replace placeholder MineFragment with business implementation
- Hide bottom navigation when sub-pages are on back stack
- Add 33 new strings and login_error color resource
- Provide AuthApi in NetworkModule DI
- Verified: 5/5 e2e negative tests passed, dual unwrapping works on real responses
2026-09-03 13:44:40 +08:00
阿猫
e96e92d7ab * 2026-09-03 12:38:16 +08:00