package com.placeholder.ringhealth import com.placeholder.ringhealth.data.mock.MockHealthDataRepository import com.placeholder.ringhealth.data.mock.MockRingDeviceRepository import com.placeholder.ringhealth.domain.repository.HealthDataRepository import com.placeholder.ringhealth.domain.repository.RingDeviceRepository /** * 手动依赖注入容器。M2 接入 SDK 时只需在这里把 Mock 实现换成真实实现。 */ interface AppContainer { val healthDataRepository: HealthDataRepository val ringDeviceRepository: RingDeviceRepository } /** * 默认容器:阶段一全部使用 Mock 数据。 * * 注意 [healthDataRepository] **依赖** [ringDeviceRepository] 的开关流,不是两个平行字段 —— * 之前正是各建各的,导致功能开关与健康数据互不相干(详见 [MockHealthDataRepository])。 * 声明里保留具体类型,是为了把开关流传下去而不必向下转型。 */ class DefaultAppContainer : AppContainer { private val mockRingDeviceRepository = MockRingDeviceRepository() override val ringDeviceRepository: RingDeviceRepository = mockRingDeviceRepository override val healthDataRepository: HealthDataRepository = MockHealthDataRepository(functionSettings = mockRingDeviceRepository.functionSettings) }