Skip to content

Commit 6456752

Browse files
authored
Merge pull request #13 from toshi0383/ts-launchview-icon
Customizable LaunchView's Icon
2 parents bb329f5 + b979c0a commit 6456752

4 files changed

Lines changed: 25 additions & 6 deletions

File tree

Sources/DebugMenu/Entity/Options.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,22 @@
66
//
77

88
import Foundation
9+
import UIKit
910

1011
public enum Options {
1112
case showsWidgetOnLaunch
1213
case showsRecentItems
14+
case launchIcon(UIImage)
1315

1416
public static var `default`: [Options] = [.showsRecentItems]
17+
18+
var isShowsWidgetOnLaunch: Bool {
19+
if case .showsWidgetOnLaunch = self { return true }
20+
return false
21+
}
22+
23+
var isShowsRecentItems: Bool {
24+
if case .showsRecentItems = self { return true }
25+
return false
26+
}
1527
}

Sources/DebugMenu/View/FloatingViewController.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import UIKit
1010

1111
internal class FloatingViewController: UIViewController {
1212
class View: UIView, TouchThrowing {}
13-
private let launchView: LaunchView = .init()
13+
private let launchView: LaunchView
1414
private let widgetView: WidgetView
1515
private let debuggerItems: [DebugItem]
1616
private var cancellables: Set<AnyCancellable> = []
@@ -24,6 +24,14 @@ internal class FloatingViewController: UIViewController {
2424
self.debuggerItems = debuggerItems
2525
self.widgetView = .init(dashboardItems: dashboardItems)
2626
self.options = options
27+
28+
launchView = .init(image: options.compactMap { option -> UIImage? in
29+
if case .launchIcon(let image) = option {
30+
return image
31+
}
32+
return nil
33+
}.first)
34+
2735
super.init(nibName: nil, bundle: nil)
2836
}
2937

@@ -77,7 +85,7 @@ internal class FloatingViewController: UIViewController {
7785
gesture.moveInitialPosition(.topLeading)
7886
}
7987

80-
if options.contains(.showsWidgetOnLaunch) {
88+
if options.contains(where: { $0.isShowsWidgetOnLaunch }) {
8189
widgetView.show()
8290
} else {
8391
widgetView.hide()

Sources/DebugMenu/View/InAppDebuggerViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ extension InAppDebuggerViewController {
259259
snapshot.appendItems(filteredItems, toSection: .items)
260260
} else {
261261
let recentItems = RecentItemStore(items: debuggerItems).get()
262-
if !recentItems.isEmpty && options.contains(.showsRecentItems) {
262+
if !recentItems.isEmpty && options.contains(where: { $0.isShowsRecentItems }) {
263263
snapshot.appendSections([Section.recent])
264264
snapshot.appendItems(recentItems, toSection: .recent)
265265
}

Sources/DebugMenu/View/LaunchView.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@ import UIKit
1010
class LaunchView: UIVisualEffectView {
1111
private let button: UIButton = .init(frame: .null)
1212

13-
init() {
13+
init(image: UIImage? = nil) {
1414
super.init(effect: UIBlurEffect(style: .systemMaterialDark))
1515
frame = CGRect(x: 0, y: 0, width: 44, height: 44)
1616

17-
let image = UIImage(systemName: "ant.fill")
18-
button.setImage(image, for: .normal)
17+
button.setImage(image ?? UIImage(systemName: "ant.fill"), for: .normal)
1918
button.tintColor = UIColor.white
2019
button.translatesAutoresizingMaskIntoConstraints = false
2120
contentView.addSubview(button)

0 commit comments

Comments
 (0)