Skip to content

Commit 21de69a

Browse files
committed
Metro: Eopatch pump plugin, handed over by PumpLeaves
1 parent aef131c commit 21de69a

6 files changed

Lines changed: 21 additions & 9 deletions

File tree

app/src/test/kotlin/app/aaps/di/metro/ContributedPluginsTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ class ContributedPluginsTest {
6363
fun `only a build with pump drivers gets the pump plugins`() {
6464
// Nothing asserted this bucket until Insight, Dash and Diaconn moved into it. VirtualPump is
6565
// NOT here: it is contributed unqualified, on purpose - see the 1000 entry above.
66-
// Still on Dagger and so absent: Eopatch 1110, whose plugin needs nine module-internal types
67-
// (IPatchManager, IBleDevice, Alarms, ...) that the graph cannot reach yet.
66+
// Every pump driver in the tree. Dagger builds them all - see PumpDriverBucketTest for why -
67+
// and PumpLeaves hands each one over, so Metro never constructs a pump plugin itself.
6868
assertThat(testRoot().contributedPumpDriverPlugins.keys)
69-
.containsExactly(1010, 1020, 1030, 1040, 1050, 1060, 1080, 1090, 1100, 1120, 1130)
69+
.containsExactly(1010, 1020, 1030, 1040, 1050, 1060, 1080, 1090, 1100, 1110, 1120, 1130)
7070
}
7171

7272
@Test

app/src/testFull/kotlin/app/aaps/di/metro/PumpDriverBucketTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import app.aaps.pump.danarkorean.DanaRKoreanPlugin
66
import app.aaps.pump.danars.DanaRSPlugin
77
import app.aaps.pump.danarv2.DanaRv2Plugin
88
import app.aaps.pump.diaconn.DiaconnG8Plugin
9+
import app.aaps.pump.eopatch.EopatchPumpPlugin
910
import app.aaps.pump.equil.EquilPumpPlugin
1011
import app.aaps.pump.insight.InsightPlugin
1112
import app.aaps.pump.medtronic.MedtronicPumpPlugin
@@ -41,6 +42,7 @@ class PumpDriverBucketTest {
4142
assertThat(drivers[1080]).isInstanceOf(OmnipodDashPumpPlugin::class.java)
4243
assertThat(drivers[1090]).isInstanceOf(MedtronicPumpPlugin::class.java)
4344
assertThat(drivers[1100]).isInstanceOf(DiaconnG8Plugin::class.java)
45+
assertThat(drivers[1110]).isInstanceOf(EopatchPumpPlugin::class.java)
4446
assertThat(drivers[1120]).isInstanceOf(MedtrumPlugin::class.java)
4547
assertThat(drivers[1130]).isInstanceOf(EquilPumpPlugin::class.java)
4648
}
@@ -71,6 +73,6 @@ class PumpDriverBucketTest {
7173
// would report it.
7274
val everyBuild = testRoot().contributedPlugins.keys
7375

74-
assertThat(everyBuild).containsNoneOf(1010, 1020, 1030, 1040, 1050, 1060, 1080, 1090, 1100, 1120, 1130)
76+
assertThat(everyBuild).containsNoneOf(1010, 1020, 1030, 1040, 1050, 1060, 1080, 1090, 1100, 1110, 1120, 1130)
7577
}
7678
}

app/src/withPumps/kotlin/app/aaps/di/metro/PumpLeaves.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import app.aaps.pump.danarv2.DanaRv2Plugin
88
import app.aaps.pump.insight.InsightPlugin
99
import app.aaps.pump.medtronic.MedtronicPumpPlugin
1010
import app.aaps.pump.diaconn.DiaconnG8Plugin
11+
import app.aaps.pump.eopatch.EopatchPumpPlugin
1112
import app.aaps.pump.dana.DanaPump
1213
import app.aaps.pump.dana.database.DanaHistoryDatabase
1314
import app.aaps.pump.dana.database.DanaHistoryRecordDao
@@ -88,6 +89,7 @@ class PumpLeaves(
8889
private val insightPluginProvider: Provider<InsightPlugin>,
8990
private val medtronicPumpPluginProvider: Provider<MedtronicPumpPlugin>,
9091
private val diaconnG8PluginProvider: Provider<DiaconnG8Plugin>,
92+
private val eopatchPumpPluginProvider: Provider<EopatchPumpPlugin>,
9193
private val omnipodDashPumpPluginProvider: Provider<OmnipodDashPumpPlugin>
9294
) {
9395

@@ -145,4 +147,5 @@ class PumpLeaves(
145147
@Provides fun insightPlugin(): InsightPlugin = insightPluginProvider.get()
146148
@Provides fun medtronicPumpPlugin(): MedtronicPumpPlugin = medtronicPumpPluginProvider.get()
147149
@Provides fun diaconnG8Plugin(): DiaconnG8Plugin = diaconnG8PluginProvider.get()
150+
@Provides fun eopatchPumpPlugin(): EopatchPumpPlugin = eopatchPumpPluginProvider.get()
148151
}

app/src/withPumps/kotlin/app/aaps/di/metro/PumpLeavesModule.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import app.aaps.pump.danarv2.DanaRv2Plugin
88
import app.aaps.pump.insight.InsightPlugin
99
import app.aaps.pump.medtronic.MedtronicPumpPlugin
1010
import app.aaps.pump.diaconn.DiaconnG8Plugin
11+
import app.aaps.pump.eopatch.EopatchPumpPlugin
1112
import app.aaps.pump.dana.DanaPump
1213
import app.aaps.pump.dana.database.DanaHistoryDatabase
1314
import app.aaps.pump.dana.database.DanaHistoryRecordDao
@@ -83,6 +84,7 @@ class PumpLeavesModule {
8384
insightPlugin: Provider<InsightPlugin>,
8485
medtronicPumpPlugin: Provider<MedtronicPumpPlugin>,
8586
diaconnG8Plugin: Provider<DiaconnG8Plugin>,
87+
eopatchPumpPlugin: Provider<EopatchPumpPlugin>,
8688
omnipodDashPumpPlugin: Provider<OmnipodDashPumpPlugin>
8789
): PumpLeaves = PumpLeaves(
8890
bleTransport, rfcommTransport, danaHistoryRecordDao, diaconnHistoryRecordDao, diaconnHistoryDatabase,
@@ -91,6 +93,7 @@ class PumpLeavesModule {
9193
bleComm, comboV2Plugin, danaPump, danaRSPlugin, diaconnG8Pump, equilManager, equilPumpPlugin,
9294
medtrumPlugin, medtrumPump,
9395
danaRPlugin, danaRKoreanPlugin, danaRv2Plugin, insightPlugin, medtronicPumpPlugin, diaconnG8Plugin,
96+
eopatchPumpPlugin,
9497
omnipodDashPumpPlugin
9598
)
9699
}

pump/eopatch/src/main/kotlin/app/aaps/pump/eopatch/EopatchPumpPlugin.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ import app.aaps.core.data.pump.defs.PumpType
99
import app.aaps.core.data.pump.defs.TimeChangeType
1010
import app.aaps.core.data.time.T
1111
import app.aaps.core.interfaces.InterfacesStrings
12+
import app.aaps.core.interfaces.di.PumpDriver
1213
import app.aaps.core.interfaces.logging.AAPSLogger
1314
import app.aaps.core.interfaces.logging.LTag
1415
import app.aaps.core.interfaces.plugin.PermissionGroup
16+
import app.aaps.core.interfaces.plugin.PluginBase
1517
import app.aaps.core.interfaces.plugin.PluginDescription
1618
import app.aaps.core.interfaces.protection.ProtectionCheck
1719
import app.aaps.core.interfaces.pump.BlePreCheck
@@ -68,12 +70,19 @@ import kotlinx.coroutines.flow.map
6870
import kotlinx.coroutines.flow.merge
6971
import kotlinx.coroutines.flow.onEach
7072
import kotlinx.coroutines.runBlocking
73+
import dev.zacsweers.metro.AppScope
74+
import dev.zacsweers.metro.ContributesIntoMap
75+
import dev.zacsweers.metro.IntKey as MetroIntKey
76+
import dev.zacsweers.metro.binding
7177
import javax.inject.Inject
7278
import javax.inject.Provider
7379
import javax.inject.Singleton
7480
import kotlin.math.abs
7581
import app.aaps.core.ui.R as CoreUiR
7682

83+
@ContributesIntoMap(AppScope::class, binding = binding<PluginBase>())
84+
@PumpDriver
85+
@MetroIntKey(1110)
7786
@Singleton
7887
class EopatchPumpPlugin @Inject constructor(
7988
aapsLogger: AAPSLogger,

pump/eopatch/src/main/kotlin/app/aaps/pump/eopatch/di/EopatchModule.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,4 @@ abstract class EopatchModule {
4343
abstract fun bindPreferenceManager(preferenceManager: PreferenceManagerImpl): PreferenceManager
4444

4545
// Pump plugin registration — @IntKey range 1000–1200, see PluginsListModule for overview
46-
@Binds
47-
@PumpDriver
48-
@IntoMap
49-
@IntKey(1110)
50-
abstract fun bindEopatchPumpPlugin(plugin: EopatchPumpPlugin): PluginBase
5146
}

0 commit comments

Comments
 (0)