Refactor show/hide alerts button

This commit is contained in:
Blake McAnally 2024-07-08 00:31:45 -05:00
parent 7fec9910fb
commit 1dc2cf4668
6 changed files with 67 additions and 14 deletions

View file

@ -8207,6 +8207,9 @@
},
"Help with App Development" : {
},
"Hide alerts" : {
},
"Hide Alerts" : {
@ -19627,6 +19630,9 @@
},
"Short Name: %@" : {
},
"Show alerts" : {
},
"Show Alerts" : {

View file

@ -8,6 +8,7 @@
/* Begin PBXBuildFile section */
251926852C3BA97800249DF5 /* FavoriteNodeButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 251926842C3BA97800249DF5 /* FavoriteNodeButton.swift */; };
251926872C3BAE2200249DF5 /* NodeAlertsButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 251926862C3BAE2200249DF5 /* NodeAlertsButton.swift */; };
259792252C2F114500AD1659 /* ChannelEntityExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD58C5F12919AD3C00D5BEFB /* ChannelEntityExtension.swift */; };
259792262C2F114500AD1659 /* PositionEntityExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD5394FD276BA0EF00AD86B1 /* PositionEntityExtension.swift */; };
259792272C2F114500AD1659 /* TraceRouteEntityExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDE5B4052B227E3200FCDD05 /* TraceRouteEntityExtension.swift */; };
@ -224,6 +225,7 @@
/* Begin PBXFileReference section */
251926842C3BA97800249DF5 /* FavoriteNodeButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoriteNodeButton.swift; sourceTree = "<group>"; };
251926862C3BAE2200249DF5 /* NodeAlertsButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NodeAlertsButton.swift; sourceTree = "<group>"; };
25AECD4E2C2F723200862C8E /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
6D825E612C34786C008DBEE4 /* CommonRegex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonRegex.swift; sourceTree = "<group>"; };
6DA39D8D2A92DC52007E311C /* MeshtasticAppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeshtasticAppDelegate.swift; sourceTree = "<group>"; };
@ -473,6 +475,15 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
251926882C3BAF2E00249DF5 /* Actions */ = {
isa = PBXGroup;
children = (
251926842C3BA97800249DF5 /* FavoriteNodeButton.swift */,
251926862C3BAE2200249DF5 /* NodeAlertsButton.swift */,
);
path = Actions;
sourceTree = "<group>";
};
C9483F6B2773016700998F6B /* MapKitMap */ = {
isa = PBXGroup;
children = (
@ -876,7 +887,7 @@
DDDB26452AACC0B7003AFCB7 /* NodeInfoItem.swift */,
DDDB26412AABF655003AFCB7 /* NodeListItem.swift */,
DDDCD56F2BB26F5C00BE6B60 /* NodeListFilter.swift */,
251926842C3BA97800249DF5 /* FavoriteNodeButton.swift */,
251926882C3BAF2E00249DF5 /* Actions */,
);
path = Helpers;
sourceTree = "<group>";
@ -1191,6 +1202,7 @@
DDB6ABE028B13AC700384BA1 /* DeviceEnums.swift in Sources */,
DD86D40C287F401000BAEB7A /* SaveChannelQRCode.swift in Sources */,
D93068DD2B81CA820066FBC8 /* ConfigHeader.swift in Sources */,
251926872C3BAE2200249DF5 /* NodeAlertsButton.swift in Sources */,
DDA1C48E28DB49D3009933EC /* ChannelRoles.swift in Sources */,
D9BC22DB2B7DE8E2006A37D5 /* TileDownloadStatus.swift in Sources */,
DDD5BB092C285DDC007E03CA /* AppLog.swift in Sources */,

View file

@ -0,0 +1,33 @@
import CoreData
import OSLog
import SwiftUI
struct NodeAlertsButton: View {
var context: NSManagedObjectContext
@ObservedObject
var node: NodeInfoEntity
@ObservedObject
var user: UserEntity
var body: some View {
Button {
user.mute = !user.mute
context.refresh(node, mergeChanges: true)
do {
try context.save()
} catch {
context.rollback()
Logger.data.error("Save User Mute Error")
}
} label: {
Label {
Text(user.mute ? "Show alerts" : "Hide alerts")
} icon: {
Image(systemName: user.mute ? "bell.slash" : "bell")
.symbolRenderingMode(.hierarchical)
}
}
}
}

View file

@ -222,6 +222,14 @@ struct NodeDetail: View {
context: context,
node: node
)
if let user = node.user {
NodeAlertsButton(
context: context,
node: node,
user: user
)
}
}
if let metadata = node.metadata,

View file

@ -69,19 +69,13 @@ struct NodeList: View {
node: node
)
if node.user != nil {
Button {
node.user!.mute = !node.user!.mute
context.refresh(node, mergeChanges: true)
do {
try context.save()
} catch {
context.rollback()
Logger.data.error("Save User Mute Error")
}
} label: {
Label(node.user!.mute ? "Show Alerts" : "Hide Alerts", systemImage: node.user!.mute ? "bell" : "bell.slash")
}
if let user = node.user {
NodeAlertsButton(
context: context,
node: node,
user: user
)
if bleManager.connectedPeripheral != nil && node.num != connectedNodeNum {
Button {
let positionSent = bleManager.sendPosition(