Skip to content

Commit d31412a

Browse files
committed
Extract SensorReceiverBase update logic into SensorUpdater
Update test
1 parent 96d87fb commit d31412a

9 files changed

Lines changed: 597 additions & 586 deletions

File tree

app/src/main/kotlin/io/homeassistant/companion/android/sensors/AppSensorModule.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.homeassistant.companion.android.sensors
22

3+
import android.app.PendingIntent
4+
import android.content.Intent
35
import dagger.Binds
46
import dagger.Module
57
import dagger.Provides
@@ -8,7 +10,10 @@ import dagger.hilt.components.SingletonComponent
810
import dagger.multibindings.ElementsIntoSet
911
import dagger.multibindings.IntoSet
1012
import io.homeassistant.companion.android.common.sensors.SensorManager
13+
import io.homeassistant.companion.android.common.sensors.SensorSettingsIntentProvider
1114
import io.homeassistant.companion.android.sensors.generated.GeneratedProvidesSensorApp
15+
import io.homeassistant.companion.android.settings.SettingsActivity
16+
import javax.inject.Singleton
1217

1318
/**
1419
* Hilt bindings for the `:app` sensor managers: each `:app/main` [SensorManager] contributed into the
@@ -65,5 +70,20 @@ abstract class AppSensorModule {
6570
@Provides
6671
@ElementsIntoSet
6772
fun appProvidesSensors(): Set<SensorManager.BasicSensor> = GeneratedProvidesSensorApp.sensors
73+
74+
@Provides
75+
@Singleton
76+
fun providesSensorSettingsIntentProvider(): SensorSettingsIntentProvider = SensorSettingsIntentProvider {
77+
context,
78+
sensorId,
79+
_,
80+
notificationId,
81+
->
82+
val intent = SettingsActivity.newInstance(context, SettingsActivity.Deeplink.Sensor(sensorId)).apply {
83+
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
84+
addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
85+
}
86+
PendingIntent.getActivity(context, notificationId, intent, PendingIntent.FLAG_IMMUTABLE)
87+
}
6888
}
6989
}

app/src/main/kotlin/io/homeassistant/companion/android/sensors/SensorReceiver.kt

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package io.homeassistant.companion.android.sensors
22

33
import android.annotation.SuppressLint
44
import android.app.NotificationManager
5-
import android.app.PendingIntent
65
import android.bluetooth.BluetoothAdapter
76
import android.content.Context
87
import android.content.Intent
@@ -11,7 +10,6 @@ import android.net.wifi.WifiManager
1110
import android.nfc.NfcAdapter
1211
import android.os.PowerManager
1312
import dagger.hilt.android.AndroidEntryPoint
14-
import io.homeassistant.companion.android.BuildConfig
1513
import io.homeassistant.companion.android.common.sensors.AudioSensorManager
1614
import io.homeassistant.companion.android.common.sensors.BluetoothSensorManager
1715
import io.homeassistant.companion.android.common.sensors.DNDSensorManager
@@ -20,23 +18,11 @@ import io.homeassistant.companion.android.common.sensors.NetworkSensorManager
2018
import io.homeassistant.companion.android.common.sensors.NextAlarmManager
2119
import io.homeassistant.companion.android.common.sensors.NfcSensorManager
2220
import io.homeassistant.companion.android.common.sensors.PowerSensorManager
23-
import io.homeassistant.companion.android.common.sensors.SensorManager
2421
import io.homeassistant.companion.android.common.sensors.SensorReceiverBase
25-
import io.homeassistant.companion.android.settings.SettingsActivity
26-
import javax.inject.Inject
2722

2823
@AndroidEntryPoint
2924
class SensorReceiver : SensorReceiverBase() {
3025

31-
override val currentAppVersion: String
32-
get() = BuildConfig.VERSION_NAME
33-
34-
@Inject
35-
lateinit var injectedManagers: Set<@JvmSuppressWildcards SensorManager>
36-
37-
override val managers: Set<SensorManager>
38-
get() = injectedManagers
39-
4026
companion object {
4127
fun updateAllSensors(context: Context) {
4228
val intent = Intent(context, SensorReceiver::class.java)
@@ -82,17 +68,4 @@ class SensorReceiver : SensorReceiverBase() {
8268
DisplaySensorManager.screenRotation.id,
8369
),
8470
)
85-
86-
override fun getSensorSettingsIntent(
87-
context: Context,
88-
sensorId: String,
89-
sensorManagerId: String,
90-
notificationId: Int,
91-
): PendingIntent? {
92-
val intent = SettingsActivity.newInstance(context, SettingsActivity.Deeplink.Sensor(sensorId)).apply {
93-
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
94-
addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
95-
}
96-
return PendingIntent.getActivity(context, notificationId, intent, PendingIntent.FLAG_IMMUTABLE)
97-
}
9871
}

0 commit comments

Comments
 (0)