mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-19 11:43:24 +01:00
Hides Settings Debug section behind swipe gesture
This commit is contained in:
@@ -78,6 +78,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
|||||||
|
|
||||||
UserDefaults.standard.preferredServerID = Bundle.main.object(forInfoDictionaryKey: Bundle.Info.serverID) as? String
|
UserDefaults.standard.preferredServerID = Bundle.main.object(forInfoDictionaryKey: Bundle.Info.serverID) as? String
|
||||||
|
|
||||||
|
#if DEBUG || BETA
|
||||||
|
UserDefaults.standard.isDebugModeEnabled = true
|
||||||
|
#endif
|
||||||
|
|
||||||
self.prepareForBackgroundFetch()
|
self.prepareForBackgroundFetch()
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ extension UserDefaults
|
|||||||
@NSManaged var preferredServerID: String?
|
@NSManaged var preferredServerID: String?
|
||||||
|
|
||||||
@NSManaged var isBackgroundRefreshEnabled: Bool
|
@NSManaged var isBackgroundRefreshEnabled: Bool
|
||||||
|
@NSManaged var isDebugModeEnabled: Bool
|
||||||
|
|
||||||
func registerDefaults()
|
func registerDefaults()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ class SettingsViewController: UITableViewController
|
|||||||
|
|
||||||
private var prototypeHeaderFooterView: SettingsHeaderFooterView!
|
private var prototypeHeaderFooterView: SettingsHeaderFooterView!
|
||||||
|
|
||||||
|
private var debugGestureCounter = 0
|
||||||
|
private weak var debugGestureTimer: Timer?
|
||||||
|
|
||||||
@IBOutlet private var accountNameLabel: UILabel!
|
@IBOutlet private var accountNameLabel: UILabel!
|
||||||
@IBOutlet private var accountEmailLabel: UILabel!
|
@IBOutlet private var accountEmailLabel: UILabel!
|
||||||
@IBOutlet private var accountTypeLabel: UILabel!
|
@IBOutlet private var accountTypeLabel: UILabel!
|
||||||
@@ -65,6 +68,12 @@ class SettingsViewController: UITableViewController
|
|||||||
|
|
||||||
self.tableView.register(nib, forHeaderFooterViewReuseIdentifier: "HeaderFooterView")
|
self.tableView.register(nib, forHeaderFooterViewReuseIdentifier: "HeaderFooterView")
|
||||||
|
|
||||||
|
let debugModeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(SettingsViewController.handleDebugModeGesture(_:)))
|
||||||
|
debugModeGestureRecognizer.delegate = self
|
||||||
|
debugModeGestureRecognizer.direction = .up
|
||||||
|
debugModeGestureRecognizer.numberOfTouchesRequired = 3
|
||||||
|
self.tableView.addGestureRecognizer(debugModeGestureRecognizer)
|
||||||
|
|
||||||
self.update()
|
self.update()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,6 +205,26 @@ private extension SettingsViewController
|
|||||||
{
|
{
|
||||||
UserDefaults.standard.isBackgroundRefreshEnabled = sender.isOn
|
UserDefaults.standard.isBackgroundRefreshEnabled = sender.isOn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBAction func handleDebugModeGesture(_ gestureRecognizer: UISwipeGestureRecognizer)
|
||||||
|
{
|
||||||
|
self.debugGestureCounter += 1
|
||||||
|
self.debugGestureTimer?.invalidate()
|
||||||
|
|
||||||
|
if self.debugGestureCounter >= 3
|
||||||
|
{
|
||||||
|
self.debugGestureCounter = 0
|
||||||
|
|
||||||
|
UserDefaults.standard.isDebugModeEnabled.toggle()
|
||||||
|
self.tableView.reloadData()
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self.debugGestureTimer = Timer.scheduledTimer(withTimeInterval: 0.4, repeats: false) { [weak self] (timer) in
|
||||||
|
self?.debugGestureCounter = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private extension SettingsViewController
|
private extension SettingsViewController
|
||||||
@@ -213,6 +242,18 @@ private extension SettingsViewController
|
|||||||
|
|
||||||
extension SettingsViewController
|
extension SettingsViewController
|
||||||
{
|
{
|
||||||
|
override func numberOfSections(in tableView: UITableView) -> Int
|
||||||
|
{
|
||||||
|
var numberOfSections = super.numberOfSections(in: tableView)
|
||||||
|
|
||||||
|
if !UserDefaults.standard.isDebugModeEnabled
|
||||||
|
{
|
||||||
|
numberOfSections -= 1
|
||||||
|
}
|
||||||
|
|
||||||
|
return numberOfSections
|
||||||
|
}
|
||||||
|
|
||||||
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
|
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
|
||||||
{
|
{
|
||||||
let section = Section.allCases[section]
|
let section = Section.allCases[section]
|
||||||
@@ -366,3 +407,11 @@ extension SettingsViewController: MFMailComposeViewControllerDelegate
|
|||||||
controller.dismiss(animated: true, completion: nil)
|
controller.dismiss(animated: true, completion: nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension SettingsViewController: UIGestureRecognizerDelegate
|
||||||
|
{
|
||||||
|
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool
|
||||||
|
{
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user