Allow deletion of measurements

This commit is contained in:
Christoph Hagen
2023-06-13 17:14:57 +02:00
parent f731927dcd
commit 01a3aac91b
17 changed files with 239 additions and 76 deletions

View File

@@ -21,14 +21,14 @@ struct DeviceInfoView: View {
private var runTimeString: String {
let number = info.numberOfSecondsRunning
guard number >= 60 else {
return "\(number) seconds"
return "\(number) s"
}
let minutes = number / 60
guard minutes > 1 else {
return "1 minute"
return "1 min"
}
guard minutes >= 60 else {
return "\(minutes) minutes"
return "\(minutes) min"
}
let hours = minutes / 60
guard hours > 1 else {
@@ -49,7 +49,7 @@ struct DeviceInfoView: View {
guard secs > 1 else {
return "Now"
}
return "In \(secs) seconds"
return "In \(secs) s"
}
private var storageIcon: SFSymbol {
@@ -74,13 +74,7 @@ struct DeviceInfoView: View {
HStack {
Image(systemSymbol: sensor.temperatureIcon)
.frame(width: 30)
Text(sensor.temperatureText)
}
HStack {
Image(systemSymbol: .arrowTriangle2Circlepath)
.frame(width: 30)
Text(sensor.updateText)
Spacer()
Text("\(sensor.temperatureText) (\(sensor.updateText))")
}
HStack {
Image(systemSymbol: .tag)
@@ -112,41 +106,40 @@ struct DeviceInfoView: View {
guard abs(offset) > 1 else {
return "No clock offset"
}
return "Offset: \(offset) seconds"
return "Offset: \(offset) s"
}
var body: some View {
NavigationView {
VStack(alignment: .leading, spacing: 5) {
VStack(alignment: .leading, spacing: 5) {
Text("Recording")
Text("System")
.font(.headline)
HStack {
Image(systemSymbol: .power)
.frame(width: 30)
Text(df.string(from: info.deviceStartTime))
Text("\(df.string(from: info.deviceStartTime)) (\(runTimeString))")
Spacer()
}
HStack {
Image(systemSymbol: .clock)
.frame(width: 30)
Text("\(runTimeString)")
}
HStack {
Image(systemSymbol: .clockBadgeExclamationmark)
.frame(width: 30)
Text(clockOffsetText)
}
HStack {
Image(systemSymbol: .stopwatch)
Image(systemSymbol: .autostartstop)
.frame(width: 30)
Text("Every \(info.measurementInterval) seconds")
Text("Wakeup: \(info.wakeupReason.text)")
Spacer()
}
}
VStack(alignment: .leading, spacing: 5) {
Text("Recording")
.font(.headline)
HStack {
Image(systemSymbol: .arrowTriangle2Circlepath)
Image(systemSymbol: .stopwatch)
.frame(width: 30)
Text(nextUpdateText)
Text("\(nextUpdateText) (Every \(info.measurementInterval) s)")
Spacer()
}
}
@@ -192,7 +185,6 @@ struct DeviceInfoView: View {
struct DeviceInfoView_Previews: PreviewProvider {
static var previews: some View {
DeviceInfoView(info: .mock, isPresented: .constant(true))
.previewLayout(.fixed(width: 375, height: 650))
}
}

View File

@@ -12,12 +12,24 @@ struct HistoryList: View {
TemperatureDayOverview(storage: storage, dateIndex: day.dateIndex)
}) {
HistoryListRow(entry: day)
.swipeActions(edge: .trailing, allowsFullSwipe: true) {
Button {
deleteRow(for: day.dateIndex)
} label: {
Label("Delete", systemSymbol: .pencil)
}
.tint(.purple)
}
}
}
.navigationTitle("History")
.navigationBarTitleDisplayMode(.large)
}
}
private func deleteRow(for dateIndex: Int) {
storage.removeMeasurements(for: dateIndex)
}
}
struct HistoryList_Previews: PreviewProvider {