fix(android): resolve build errors in terminal scaffold
Some checks failed
CI / ruff (push) Successful in 20s
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled
CI / pytest (push) Has been cancelled

- Fix settings.gradle.kts: dependencyResolution → dependencyResolutionManagement
- Fix Hilt version: 2.54.1 (non-existent) → 2.51.1
- Fix LoyaltyApi.kt: remove decorative unicode comments causing
  "unclosed comment" errors, fix /api/v1/store/loyalty/* pattern
  in KDoc that Kotlin parsed as block comment start
- Add placeholder launcher icons (purple square, all densities)

App now builds and runs on Pixel Tablet emulator: Setup → PIN → Terminal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-19 00:11:30 +02:00
parent e759282116
commit 457350908a
8 changed files with 12 additions and 18 deletions

View File

@@ -6,52 +6,45 @@ import retrofit2.http.*
/** /**
* Retrofit interface for the Orion Loyalty Store API. * Retrofit interface for the Orion Loyalty Store API.
* *
* Mirrors the endpoints at /api/v1/store/loyalty/*. * Mirrors the endpoints at /api/v1/store/loyalty/
* Auth via Bearer token (obtained during device setup). * Auth via Bearer token (obtained during device setup).
*/ */
interface LoyaltyApi { interface LoyaltyApi {
// ── Program ───────────────────────────────────────────────────────── // Program
@GET("api/v1/store/loyalty/program") @GET("api/v1/store/loyalty/program")
suspend fun getProgram(): ProgramResponse suspend fun getProgram(): ProgramResponse
// ── Card Lookup ───────────────────────────────────────────────────── // Card Lookup
@GET("api/v1/store/loyalty/cards/lookup") @GET("api/v1/store/loyalty/cards/lookup")
suspend fun lookupCard(@Query("q") query: String): CardLookupResponse suspend fun lookupCard(@Query("q") query: String): CardLookupResponse
@GET("api/v1/store/loyalty/cards/{cardId}") @GET("api/v1/store/loyalty/cards/{cardId}")
suspend fun getCardDetail(@Path("cardId") cardId: Int): CardDetailResponse suspend fun getCardDetail(@Path("cardId") cardId: Int): CardDetailResponse
// ── Enrollment ────────────────────────────────────────────────────── // Enrollment
@POST("api/v1/store/loyalty/cards/enroll") @POST("api/v1/store/loyalty/cards/enroll")
suspend fun enrollCustomer(@Body request: EnrollRequest): CardResponse suspend fun enrollCustomer(@Body request: EnrollRequest): CardResponse
// ── Stamps ────────────────────────────────────────────────────────── // Stamps
@POST("api/v1/store/loyalty/stamp") @POST("api/v1/store/loyalty/stamp")
suspend fun addStamp(@Body request: StampRequest): StampResponse suspend fun addStamp(@Body request: StampRequest): StampResponse
@POST("api/v1/store/loyalty/stamp/redeem") @POST("api/v1/store/loyalty/stamp/redeem")
suspend fun redeemStamps(@Body request: StampRedeemRequest): StampRedeemResponse suspend fun redeemStamps(@Body request: StampRedeemRequest): StampRedeemResponse
// ── Points ────────────────────────────────────────────────────────── // Points
@POST("api/v1/store/loyalty/points/earn") @POST("api/v1/store/loyalty/points/earn")
suspend fun earnPoints(@Body request: PointsEarnRequest): PointsEarnResponse suspend fun earnPoints(@Body request: PointsEarnRequest): PointsEarnResponse
@POST("api/v1/store/loyalty/points/redeem") @POST("api/v1/store/loyalty/points/redeem")
suspend fun redeemPoints(@Body request: PointsRedeemRequest): PointsRedeemResponse suspend fun redeemPoints(@Body request: PointsRedeemRequest): PointsRedeemResponse
// ── PINs (for caching staff PINs locally) ─────────────────────────── // PINs (for caching staff PINs locally)
@GET("api/v1/store/loyalty/pins") @GET("api/v1/store/loyalty/pins")
suspend fun listPins(): PinListResponse suspend fun listPins(): PinListResponse
// ── Auth ──────────────────────────────────────────────────────────── // Auth
@POST("api/v1/store/auth/login") @POST("api/v1/store/auth/login")
suspend fun login(@Body request: LoginRequest): LoginResponse suspend fun login(@Body request: LoginRequest): LoginResponse
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

View File

@@ -34,7 +34,7 @@ room = "2.6.1"
workManager = "2.10.0" workManager = "2.10.0"
# Dependency Injection # Dependency Injection
hilt = "2.54.1" hilt = "2.51.1"
hiltNavigationCompose = "1.2.0" hiltNavigationCompose = "1.2.0"
# Camera & QR scanning # Camera & QR scanning

View File

@@ -6,8 +6,9 @@ pluginManagement {
} }
} }
dependencyResolution { @Suppress("UnstableApiUsage")
@Suppress("UnstableApiUsage") dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories { repositories {
google() google()
mavenCentral() mavenCentral()