Skip to content

Commit

Permalink
refactor SensorSettingView
Browse files Browse the repository at this point in the history
  • Loading branch information
Gurrium committed Jul 21, 2022
1 parent 3841c51 commit 9dc7e02
Showing 1 changed file with 18 additions and 12 deletions.
30 changes: 18 additions & 12 deletions Komusou/Settings/SensorSettingView.swift
Expand Up @@ -9,10 +9,6 @@ import Combine
import SwiftUI

struct SensorSettingView: View {
@State
private var connectedSpeedSensor: Peripheral?
@State
private var connectedCadenceSensor: Peripheral?
@StateObject
private var state = ViewState()

Expand All @@ -24,8 +20,24 @@ struct SensorSettingView: View {
@Published
var didError = false

@Published
private(set) var connectedSpeedSensor: Peripheral?
@Published
private(set) var connectedCadenceSensor: Peripheral?

private var cancellables = Set<AnyCancellable>()

init() {
BluetoothManager.shared().$connectedSpeedSensor.sink {
self.connectedSpeedSensor = $0
}
.store(in: &cancellables)
BluetoothManager.shared().$connectedCadenceSensor.sink {
self.connectedCadenceSensor = $0
}
.store(in: &cancellables)
}

func connectToSpeedSensor(uuid: UUID) {
BluetoothManager.shared().connectToSpeedSensor(uuid: uuid).sink { [unowned self] result in
switch result {
Expand Down Expand Up @@ -55,7 +67,7 @@ struct SensorSettingView: View {
List {
SensorRow(
sensorType: "スピードセンサー",
sensorName: connectedSpeedSensor?.name ?? "未接続",
sensorName: state.connectedSpeedSensor?.name ?? "未接続",
isSheetPresented: $state.isSpeedSensorSheetPresented
) {
SensorSelectingView(
Expand All @@ -65,7 +77,7 @@ struct SensorSettingView: View {
}
SensorRow(
sensorType: "ケイデンスセンサー",
sensorName: connectedCadenceSensor?.name ?? "未接続",
sensorName: state.connectedCadenceSensor?.name ?? "未接続",
isSheetPresented: $state.isCadenceSensorSheetPresented
) {
SensorSelectingView(
Expand All @@ -76,12 +88,6 @@ struct SensorSettingView: View {
}
.listStyle(.insetGrouped)
.alert("接続に失敗しました", isPresented: $state.didError) {}
.onReceive(BluetoothManager.shared().$connectedSpeedSensor) { speedSensor in
self.connectedSpeedSensor = speedSensor
}
.onReceive(BluetoothManager.shared().$connectedCadenceSensor) { cadenceSensor in
self.connectedCadenceSensor = cadenceSensor
}
}

private struct SensorRow<Content: View>: View {
Expand Down

0 comments on commit 9dc7e02

Please sign in to comment.