diff --git a/Delta/Base.lproj/Settings.storyboard b/Delta/Base.lproj/Settings.storyboard index 4ac7372..3baff66 100644 --- a/Delta/Base.lproj/Settings.storyboard +++ b/Delta/Base.lproj/Settings.storyboard @@ -20,7 +20,7 @@ - + @@ -376,10 +376,10 @@ - + - + @@ -397,12 +397,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -429,7 +459,7 @@ - + @@ -449,7 +479,7 @@ - + @@ -472,7 +502,7 @@ - + @@ -495,7 +525,7 @@ - + @@ -518,14 +548,14 @@ - + - + - + @@ -555,6 +585,7 @@ + diff --git a/Delta/Game Selection/GameCollectionViewController.swift b/Delta/Game Selection/GameCollectionViewController.swift index 237595b..bc7f4dd 100644 --- a/Delta/Game Selection/GameCollectionViewController.swift +++ b/Delta/Game Selection/GameCollectionViewController.swift @@ -926,14 +926,14 @@ extension GameCollectionViewController let actions = self.actions(for: game) return UIContextMenuConfiguration(identifier: indexPath as NSIndexPath, previewProvider: { [weak self] in - guard let self = self else { return nil } + guard let self = self, Settings.isPreviewsEnabled else { return nil } let previewViewController = self.makePreviewGameViewController(for: game) self._previewTransitionViewController = previewViewController return previewViewController }) { suggestedActions in - return UIMenu(title: "", children: actions.menuActions) + return UIMenu(title: game.name, children: actions.menuActions) } } diff --git a/Delta/Pause Menu/Save States/SaveStatesViewController.swift b/Delta/Pause Menu/Save States/SaveStatesViewController.swift index 1040edd..de77072 100644 --- a/Delta/Pause Menu/Save States/SaveStatesViewController.swift +++ b/Delta/Pause Menu/Save States/SaveStatesViewController.swift @@ -769,14 +769,14 @@ extension SaveStatesViewController guard let actions = self.actionsForSaveState(saveState) else { return nil } return UIContextMenuConfiguration(identifier: indexPath as NSIndexPath, previewProvider: { [weak self] in - guard let self = self else { return nil } + guard let self = self, Settings.isPreviewsEnabled else { return nil } let previewGameViewController = self.makePreviewGameViewController(for: saveState) self._previewTransitionViewController = previewGameViewController return previewGameViewController }) { suggestedActions in - return UIMenu(title: "", children: actions.menuActions) + return UIMenu(title: saveState.localizedName, children: actions.menuActions) } } diff --git a/Delta/Settings/Settings.swift b/Delta/Settings/Settings.swift index 7e462f7..ad87ed7 100644 --- a/Delta/Settings/Settings.swift +++ b/Delta/Settings/Settings.swift @@ -60,6 +60,7 @@ struct Settings #keyPath(UserDefaults.isButtonHapticFeedbackEnabled): true, #keyPath(UserDefaults.isThumbstickHapticFeedbackEnabled): true, #keyPath(UserDefaults.sortSaveStatesByOldestFirst): true, + #keyPath(UserDefaults.isPreviewsEnabled): true, Settings.preferredCoreSettingsKey(for: .ds): DS.core.identifier] as [String : Any] UserDefaults.standard.register(defaults: defaults) } @@ -182,6 +183,14 @@ extension Settings } } + static var isPreviewsEnabled: Bool { + set { UserDefaults.standard.isPreviewsEnabled = newValue } + get { + let isPreviewsEnabled = UserDefaults.standard.isPreviewsEnabled + return isPreviewsEnabled + } + } + static func preferredCore(for gameType: GameType) -> DeltaCoreProtocol? { let key = self.preferredCoreSettingsKey(for: gameType) @@ -374,4 +383,6 @@ private extension UserDefaults @NSManaged var isThumbstickHapticFeedbackEnabled: Bool @NSManaged var sortSaveStatesByOldestFirst: Bool + + @NSManaged var isPreviewsEnabled: Bool } diff --git a/Delta/Settings/SettingsViewController.swift b/Delta/Settings/SettingsViewController.swift index b528edc..0f6b031 100644 --- a/Delta/Settings/SettingsViewController.swift +++ b/Delta/Settings/SettingsViewController.swift @@ -57,6 +57,7 @@ class SettingsViewController: UITableViewController @IBOutlet private var buttonHapticFeedbackEnabledSwitch: UISwitch! @IBOutlet private var thumbstickHapticFeedbackEnabledSwitch: UISwitch! + @IBOutlet private var previewsEnabledSwitch: UISwitch! @IBOutlet private var versionLabel: UILabel! @@ -172,6 +173,7 @@ private extension SettingsViewController self.buttonHapticFeedbackEnabledSwitch.isOn = Settings.isButtonHapticFeedbackEnabled self.thumbstickHapticFeedbackEnabledSwitch.isOn = Settings.isThumbstickHapticFeedbackEnabled + self.previewsEnabledSwitch.isOn = Settings.isPreviewsEnabled self.tableView.reloadData() } @@ -240,6 +242,11 @@ private extension SettingsViewController Settings.isThumbstickHapticFeedbackEnabled = sender.isOn } + @IBAction func togglePreviewsEnabled(_ sender: UISwitch) + { + Settings.isPreviewsEnabled = sender.isOn + } + func openTwitter(username: String) { let twitterAppURL = URL(string: "twitter://user?screen_name=" + username)!