* add removable
makes note of when a pinned program is on a non-internal volume
* Update BottleSettings.swift
* check exists
only existing pins are added; missing pins on mounted external volumes are still removed
* Update PinView.swift
* filter programs
filter pinned, unpinned, and blocklist for existing programs only
* Update BottleSettings.swift
* Quick FIx (#1343)
* Fixes App Freeze on Program Configuration view by removing `.toolbar` method (side effect: Program icon removed from top bar).
- modifying toolbar inside a NavigationStack somehow causes swiftUI into an infinite update loop.
* Mitigated new SwiftLint rule #5263 (Prefer non-optional UTF8 String <-> Data conversion)
* Quick FIx (#1343) [Amend 1]
* Fixes App Freeze on Program Configuration view by removing `.toolbar` method (side effect: Program icon removed from top bar).
- modifying toolbar inside a NavigationStack somehow causes swiftUI into an infinite update loop.
* Mitigated new SwiftLint rule #5263 (Prefer non-optional UTF8 String <-> Data conversion)
* Mitigated new SwiftLint rule #5845 (Optional Data -> String Conversion Violation: Prefer failable `String(bytes:encoding:)` initializer)
)
* Quick FIx (#1343) [Amend 2]
* Fixes App Freeze on Program Configuration view by removing `.toolbar` method (side effect: Program icon removed from top bar).
- modifying toolbar inside a NavigationStack somehow causes swiftUI into an infinite update loop.
* Mitigated new SwiftLint rule #5263 (Prefer non-optional UTF8 String <-> Data conversion)
* Mitigated new SwiftLint rule #5845 (Optional Data -> String Conversion Violation: Prefer failable `String(bytes:encoding:)` initializer)
)
* Bug FIx (#1343)
* Fixes App Freeze on Program Configuration view by reimplementing program icon toolbar item.
- `ToolbarItem` is uniquely identifiable and probably cached by SwiftUI internals, mutating its content / use a conflicting id will cause unexpected problems.
- Now a new `ToolbarItem` will be created when its content updates.
* Removed thread creation when fetching program icons
- `.task` itself is async.
* Mitigated new SwiftLint rules
* Bug Fix (#1343)
* Rectified a few spacing / indentation
=== Amended Commit ===
* Fixes App Freeze on Program Configuration view by reimplementing program icon toolbar item.
- `ToolbarItem` is uniquely identifiable and probably cached by SwiftUI internals, mutating its content / use a conflicting id will cause unexpected problems.
- Now a new `ToolbarItem` will be created when its content updates.
* Removed thread creation when fetching program icons
- `.task` itself is async.
* Mitigated new SwiftLint rules
* fix the terminal command generation to run the executable instead of a directory
* fix swiftlint violations
Signed-off-by: iivusly <iivusly@icloud.com>
---------
Signed-off-by: iivusly <iivusly@icloud.com>
* Add localization for "Delete Old Logs" and implement functionality to delete logs older than 7 days
* Code cleanup
* Remove extension
* SwiftLint
---------
Co-authored-by: Isaac Marovitz <isaacryu@icloud.com>