Skip to content

Commit 330c93c

Browse files
committed
- packet update and get events are separated.
- colors are added for http method field.
1 parent 23e57b2 commit 330c93c

File tree

15 files changed

+121
-33
lines changed

15 files changed

+121
-33
lines changed

assets/screenshot.png

-23.6 KB
Loading

mac/Bagel.xcworkspace/xcuserdata/yagizgurgul.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

-16
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,5 @@
5151
landmarkType = "7">
5252
</BreakpointContent>
5353
</BreakpointProxy>
54-
<BreakpointProxy
55-
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
56-
<BreakpointContent
57-
shouldBeEnabled = "No"
58-
ignoreCount = "0"
59-
continueAfterRunningActions = "No"
60-
filePath = "Bagel/Components/Details/DetailViewController.swift"
61-
timestampString = "567899693.473048"
62-
startingColumnNumber = "9223372036854775807"
63-
endingColumnNumber = "9223372036854775807"
64-
startingLineNumber = "118"
65-
endingLineNumber = "118"
66-
landmarkName = "refresh()"
67-
landmarkType = "7">
68-
</BreakpointContent>
69-
</BreakpointProxy>
7054
</Breakpoints>
7155
</Bucket>

mac/Bagel/Components/Details/DetailSections/DataViewController/DataViewModel.swift

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ class DataViewModel: BaseViewModel {
1616
func register() {
1717

1818
NotificationCenter.default.addObserver(self, selector: #selector(self.didSelectPacket), name: BagelNotifications.didSelectPacket, object: nil)
19-
2019
NotificationCenter.default.addObserver(self, selector: #selector(self.didSelectPacket), name: BagelNotifications.didGetPacket, object: nil)
2120
}
2221

mac/Bagel/Components/Details/DetailViewModel.swift

+10-2
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,20 @@ class DetailViewModel: BaseViewModel {
1414

1515
func register() {
1616

17-
NotificationCenter.default.addObserver(self, selector: #selector(self.refreshPacket), name: BagelNotifications.didGetPacket, object: nil)
17+
NotificationCenter.default.addObserver(self, selector: #selector(self.refreshPacket), name: BagelNotifications.didUpdatePacket, object: nil)
1818
NotificationCenter.default.addObserver(self, selector: #selector(self.refreshPacket), name: BagelNotifications.didSelectPacket, object: nil)
1919
}
2020

21+
@objc func didUpdatePacket(notification: Notification) {
22+
if let packet = notification.userInfo?["packet"] as? BagelPacket {
23+
if packet.packetId == self.packet?.packetId {
24+
self.packet = packet
25+
self.onChange?()
26+
}
27+
}
28+
}
29+
2130
@objc func refreshPacket() {
22-
2331
self.packet = BagelController.shared.selectedProjectController?.selectedDeviceController?.selectedPacket
2432
self.onChange?()
2533
}

mac/Bagel/Components/Details/Details.storyboard

+1-1
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@
370370
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
371371
<prototypeCellViews>
372372
<tableCellView identifier="KeyValueTableCellView" id="Ze5-kZ-luS" customClass="KeyValueTableCellView" customModule="Bagel" customModuleProvider="target">
373-
<rect key="frame" x="139" y="1" width="299" height="43"/>
373+
<rect key="frame" x="138.5" y="1" width="299" height="43"/>
374374
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
375375
<subviews>
376376
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ll4-xn-DEL">

mac/Bagel/Components/Packets/MethodPacketTableCellView.swift

+13-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,19 @@ class MethodPacketTableCellView: NSTableCellView {
2323

2424
func refresh() {
2525

26-
self.titleTextField.textColor = ThemeColor.labelColor
26+
var methodColor = ThemeColor.httpMethodDefaultColor
27+
28+
if self.packet.requestInfo?.requestMethod == "GET" {
29+
methodColor = ThemeColor.httpMethodGetColor
30+
}else if self.packet.requestInfo?.requestMethod == "POST" {
31+
methodColor = ThemeColor.httpMethodPostColor
32+
}else if self.packet.requestInfo?.requestMethod == "PUT" {
33+
methodColor = ThemeColor.httpMethodPutColor
34+
}else if self.packet.requestInfo?.requestMethod == "DELETE" {
35+
methodColor = ThemeColor.httpMethodDeleteColor
36+
}
37+
38+
self.titleTextField.textColor = methodColor
2739
self.titleTextField.stringValue = self.packet.requestInfo?.requestMethod ?? ""
2840
}
2941

mac/Bagel/Themes/DarkTheme.swift

+23
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,26 @@ extension DarkTheme {
8383
return NSImage(named: NSImage.Name("CopyIconDark"))!
8484
}
8585
}
86+
87+
extension DarkTheme {
88+
89+
@objc var httpMethodGetColor: NSColor {
90+
return NSColor(hexString: "#00b894")
91+
}
92+
93+
@objc var httpMethodPostColor: NSColor {
94+
return NSColor(hexString: "#fdcb6e")
95+
}
96+
97+
@objc var httpMethodDeleteColor: NSColor {
98+
return NSColor(hexString: "#e17055")
99+
}
100+
101+
@objc var httpMethodPutColor: NSColor {
102+
return NSColor(hexString: "#0984e3")
103+
}
104+
105+
@objc var httpMethodDefaultColor: NSColor {
106+
return self.secondaryLabelColor
107+
}
108+
}

mac/Bagel/Themes/LightTheme.swift

+24
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,27 @@ extension LightTheme {
8282
return NSImage(named: NSImage.Name("CopyIcon"))!
8383
}
8484
}
85+
86+
87+
extension LightTheme {
88+
89+
@objc var httpMethodGetColor: NSColor {
90+
return NSColor(hexString: "#00cec9")
91+
}
92+
93+
@objc var httpMethodPostColor: NSColor {
94+
return NSColor(hexString: "#fdcb6e")
95+
}
96+
97+
@objc var httpMethodDeleteColor: NSColor {
98+
return NSColor(hexString: "#e17055")
99+
}
100+
101+
@objc var httpMethodPutColor: NSColor {
102+
return NSColor(hexString: "#0984e3")
103+
}
104+
105+
@objc var httpMethodDefaultColor: NSColor {
106+
return self.secondaryLabelColor
107+
}
108+
}

mac/Bagel/Themes/Theme.swift

+23
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,26 @@ extension ThemeColor {
7878
return ThemeColor.color(with: #function)
7979
}
8080
}
81+
82+
extension ThemeColor {
83+
84+
static var httpMethodGetColor: ThemeColor {
85+
return ThemeColor.color(with: #function)
86+
}
87+
88+
static var httpMethodPostColor: ThemeColor {
89+
return ThemeColor.color(with: #function)
90+
}
91+
92+
static var httpMethodDeleteColor: ThemeColor {
93+
return ThemeColor.color(with: #function)
94+
}
95+
96+
static var httpMethodPutColor: ThemeColor {
97+
return ThemeColor.color(with: #function)
98+
}
99+
100+
static var httpMethodDefaultColor: ThemeColor {
101+
return ThemeColor.color(with: #function)
102+
}
103+
}

mac/Bagel/Workers/BagelController/Controllers/BagelController.swift

+11-5
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import Cocoa
1212
struct BagelNotifications {
1313

1414
static let didGetPacket = NSNotification.Name("DidGetPacket")
15+
static let didUpdatePacket = NSNotification.Name("DidUpdatePacket")
1516
static let didSelectProject = NSNotification.Name("DidSelectProject")
1617
static let didSelectDevice = NSNotification.Name("DidSelectDevice")
1718
static let didSelectPacket = NSNotification.Name("DidSelectPacket")
@@ -40,18 +41,21 @@ class BagelController: NSObject, BagelPublisherDelegate {
4041

4142
func didGetPacket(publisher: BagelPublisher, packet: BagelPacket) {
4243

43-
self.addPacket(newPacket: packet)
44-
NotificationCenter.default.post(name: BagelNotifications.didGetPacket, object: nil)
44+
if self.addPacket(newPacket: packet) {
45+
NotificationCenter.default.post(name: BagelNotifications.didGetPacket, object: nil, userInfo: ["packet": packet])
46+
}else{
47+
NotificationCenter.default.post(name: BagelNotifications.didUpdatePacket, object: nil, userInfo: ["packet": packet])
48+
}
4549
}
4650

47-
func addPacket(newPacket: BagelPacket) {
51+
@discardableResult
52+
func addPacket(newPacket: BagelPacket) -> Bool {
4853

4954
for projectController in self.projectControllers {
5055

5156
if projectController.projectName == newPacket.project?.projectName {
5257

53-
projectController.addPacket(newPacket: newPacket)
54-
return
58+
return projectController.addPacket(newPacket: newPacket)
5559
}
5660
}
5761

@@ -69,5 +73,7 @@ class BagelController: NSObject, BagelPublisherDelegate {
6973

7074
self.selectedProjectController = self.projectControllers.first
7175
}
76+
77+
return true
7278
}
7379
}

mac/Bagel/Workers/BagelController/Controllers/BagelDeviceController.swift

+5-2
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@ class BagelDeviceController: NSObject {
2121
}
2222
}
2323

24-
func addPacket(newPacket: BagelPacket) {
24+
@discardableResult
25+
func addPacket(newPacket: BagelPacket) -> Bool {
2526

2627
for packet in self.packets {
2728

2829
if packet.packetId == newPacket.packetId {
2930

3031
packet.requestInfo = newPacket.requestInfo
31-
return
32+
return false
3233
}
3334
}
3435

@@ -40,6 +41,8 @@ class BagelDeviceController: NSObject {
4041

4142
self.selectedPacket = self.packets.first
4243
}
44+
45+
return true
4346
}
4447

4548
func clear() {

mac/Bagel/Workers/BagelController/Controllers/BagelProjectController.swift

+5-3
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ class BagelProjectController: NSObject {
1919
}
2020
}
2121

22-
func addPacket(newPacket: BagelPacket) {
22+
@discardableResult
23+
func addPacket(newPacket: BagelPacket) -> Bool {
2324

2425
for deviceController in self.deviceControllers {
2526

2627
if deviceController.deviceId == newPacket.device?.deviceId {
2728

28-
deviceController.addPacket(newPacket: newPacket)
29-
return
29+
return deviceController.addPacket(newPacket: newPacket)
3030
}
3131
}
3232

@@ -44,5 +44,7 @@ class BagelProjectController: NSObject {
4444

4545
self.selectedDeviceController = self.deviceControllers.first
4646
}
47+
48+
return true
4749
}
4850
}

mac/Bagel/Workers/BagelController/Models/BagelPacket.swift

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class BagelPacket: Codable {
1616

1717
var project: BagelProjectModel?
1818
var device: BagelDeviceModel?
19+
1920
}
2021

2122

mac/Bagel/Workers/BagelController/Publisher/BagelPublisher.swift

+5-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class BagelPublisher: NSObject {
2626

2727
self.sockets = []
2828

29-
self.mainSocket = GCDAsyncSocket(delegate: self, delegateQueue: DispatchQueue.main)
29+
self.mainSocket = GCDAsyncSocket(delegate: self, delegateQueue: DispatchQueue.global(qos: .background))
3030

3131
do {
3232

@@ -62,7 +62,10 @@ class BagelPublisher: NSObject {
6262
do {
6363

6464
let bagelPacket = try jsonDecoder.decode(BagelPacket.self, from: data)
65-
delegate?.didGetPacket(publisher: self, packet: bagelPacket)
65+
66+
DispatchQueue.main.async {
67+
self.delegate?.didGetPacket(publisher: self, packet: bagelPacket)
68+
}
6669

6770
} catch {
6871

0 commit comments

Comments
 (0)