Compare commits

..

5 Commits

Author SHA1 Message Date
Duraid Abdul 4b79e2744d Update LCManager.swift 2021-08-01 20:30:11 -07:00
Duraid Abdul 641e20bb01 Update LCManager.swift 2021-08-01 20:19:15 -07:00
Duraid Abdul bc6c4a91ba Merge branch 'main' of https://github.com/duraidabdul/LocalConsole into main 2021-08-01 20:14:08 -07:00
Duraid Abdul 82605fcfbb Improve systemReport() 2021-08-01 20:14:05 -07:00
Duraid Abdul 27876dfba9 Update README.md 2021-07-27 01:05:06 -07:00
2 changed files with 57 additions and 15 deletions
+7 -8
View File
@@ -17,7 +17,7 @@ Welcome to LocalConsole! This Swift Package makes on-device debugging easy with
```swift
import LocalConsole
let localConsoleManager = LCManager.shared
let consoleManager = LCManager.shared
```
## **Usage**
@@ -25,30 +25,29 @@ Once prepared, the localConsole can be used throughout your project.
```swift
// Show the console view.
localConsoleManager.isVisible = true
consoleManager.isVisible = true
// Hide the console view.
localConsoleManager.isVisible = false
consoleManager.isVisible = false
```
```swift
// Print items to the console view.
localConsoleManager.print("Hello, world!")
consoleManager.print("Hello, world!")
// Clear console text.
localConsoleManager.clear()
consoleManager.clear()
// Copy console text.
localConsoleManager.copy()
consoleManager.copy()
```
```swift
// Change the console view font size.
localConsoleManager.fontSize = 5
consoleManager.fontSize = 5
```
## **To-Do**
* Support for iOS 13
* Screen edge console hiding
* Make console view reactive to landscape/portrait switch
+50 -7
View File
@@ -382,12 +382,43 @@ public class LCManager: NSObject, UIGestureRecognizerDelegate {
}
}
var dynamicReportTimer: Timer? {
willSet { dynamicReportTimer?.invalidate() }
}
func systemReport() {
DispatchQueue.main.async { [self] in
if currentText != "" { print("\n") }
dynamicReportTimer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { timer in
var _currentText = currentText
let range: NSRange = {
if _currentText.count <= 2500 {
return NSMakeRange(0, _currentText.count)
}
return NSMakeRange(_currentText.count - 2500, 2500)
}()
let regex0 = try! NSRegularExpression(pattern: "Thermal State: .*", options: NSRegularExpression.Options.caseInsensitive)
_currentText = regex0.stringByReplacingMatches(in: _currentText, options: [], range: range, withTemplate: "Thermal State: \(SystemReport.shared.thermalState)")
let regex1 = try! NSRegularExpression(pattern: "System Uptime: .*", options: NSRegularExpression.Options.caseInsensitive)
_currentText = regex1.stringByReplacingMatches(in: _currentText, options: [], range: range, withTemplate: "System Uptime: \(ProcessInfo.processInfo.systemUptime.formattedString!)")
let regex2 = try! NSRegularExpression(pattern: "Low Power Mode: .*", options: NSRegularExpression.Options.caseInsensitive)
_currentText = regex2.stringByReplacingMatches(in: _currentText, options: [], range: range, withTemplate: "Low Power Mode: \(ProcessInfo.processInfo.isLowPowerModeEnabled)")
if currentText != _currentText {
currentText = _currentText
} else {
timer.invalidate()
}
}
print(
"""
\n
Model Name: \(SystemReport.shared.gestaltMarketingName)
Model Identifier: \(SystemReport.shared.gestaltModelIdentifier)
Architecture: \(SystemReport.shared.gestaltArchitecture)
@@ -398,20 +429,20 @@ public class LCManager: NSObject, UIGestureRecognizerDelegate {
Memory: \(round(100 * Double(ProcessInfo.processInfo.physicalMemory) * pow(10, -9)) / 100) GB
Processor Cores: \(Int(ProcessInfo.processInfo.processorCount))
Thermal State: \(SystemReport.shared.thermalState)
System Uptime: \(Int(ProcessInfo.processInfo.systemUptime))s
System Uptime: \(ProcessInfo.processInfo.systemUptime.formattedString!)
Low Power Mode: \(ProcessInfo.processInfo.isLowPowerModeEnabled)
"""
)
}
}
func displayReport() {
DispatchQueue.main.async { [self] in
if currentText != "" { print("\n") }
print(
"""
\n
Screen Size: \(UIScreen.main.bounds.size)
Screen Corner Radius: \(UIScreen.main.value(forKey: "_displ" + "ayCorn" + "erRa" + "dius") as! CGFloat)
Screen Scale: \(UIScreen.main.scale)
@@ -428,10 +459,10 @@ public class LCManager: NSObject, UIGestureRecognizerDelegate {
func commitTextChanges(requestMenuUpdate menuUpdateRequested: Bool) {
if consoleTextView.contentOffset.y > consoleTextView.contentSize.height - 20 - consoleTextView.bounds.size.height ||
_hasRelayedOffsetChange == false {
consoleTextView.pendingOffsetChange = true
if consoleTextView.contentOffset.y > consoleTextView.contentSize.height - consoleTextView.bounds.size.height - 20
|| _hasRelayedOffsetChange == false {
consoleTextView.pendingOffsetChange = true
_hasRelayedOffsetChange = true
}
@@ -772,3 +803,15 @@ class InvertedTextView: UITextView {
}
}
}
extension TimeInterval {
var formattedString: String? {
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute, .second]
return formatter.string(from: self)
}
}
fileprivate func _debugPrint(_ items: Any) {
print(items)
}