diff --git a/Classes/Issues/Comments/IssueCommentBaseCell.swift b/Classes/Issues/Comments/IssueCommentBaseCell.swift index 4d5d5affd..969f949bd 100644 --- a/Classes/Issues/Comments/IssueCommentBaseCell.swift +++ b/Classes/Issues/Comments/IssueCommentBaseCell.swift @@ -27,11 +27,7 @@ class IssueCommentBaseCell: UICollectionViewCell, UIGestureRecognizerDelegate { contentView.clipsToBounds = true - doubleTapGesture.addTarget(self, action: #selector(onDoubleTap)) - doubleTapGesture.numberOfTapsRequired = 2 - doubleTapGesture.delegate = self - addGestureRecognizer(doubleTapGesture) - + setUpDoubleTapIfNeeded() collapseLayer.isHidden = true collapseLayer.colors = [ UIColor(white: 1, alpha: 0).cgColor, @@ -96,6 +92,17 @@ class IssueCommentBaseCell: UICollectionViewCell, UIGestureRecognizerDelegate { collapseButton.isHidden = true } + private func setUpDoubleTapIfNeeded() + { + // If reaction is set to none, no need for the double-tap + if ReactionContent.defaultReaction == .__unknown("Disabled") { return } + + doubleTapGesture.addTarget(self, action: #selector(onDoubleTap)) + doubleTapGesture.numberOfTapsRequired = 2 + doubleTapGesture.delegate = self + addGestureRecognizer(doubleTapGesture) + } + // MARK: Private API @objc private func onDoubleTap() { diff --git a/Classes/Issues/Comments/IssueCommentSectionController.swift b/Classes/Issues/Comments/IssueCommentSectionController.swift index f802113b4..712bd74e9 100644 --- a/Classes/Issues/Comments/IssueCommentSectionController.swift +++ b/Classes/Issues/Comments/IssueCommentSectionController.swift @@ -437,7 +437,7 @@ final class IssueCommentSectionController: // MARK: IssueCommentDoubleTapDelegate func didDoubleTap(cell: IssueCommentBaseCell) { - let reaction = ReactionContent.thumbsUp + let reaction = ReactionContent.defaultReaction guard let reactions = reactionMutation ?? self.object?.reactions, !reactions.viewerDidReact(reaction: reaction) else { return } diff --git a/Classes/Issues/Comments/Reactions/Defaults+Reaction.swift b/Classes/Issues/Comments/Reactions/Defaults+Reaction.swift new file mode 100644 index 000000000..445dd11d8 --- /dev/null +++ b/Classes/Issues/Comments/Reactions/Defaults+Reaction.swift @@ -0,0 +1,25 @@ +// +// Defaults+Reaction.swift +// Freetime +// +// Created by Ehud Adler on 7/30/18. +// Copyright © 2018 Ryan Nystrom. All rights reserved. +// + +extension UserDefaults { + // Stores ReactionContent in string form but + // accepts and returns in original form + static func setDefault(reaction: ReactionContent) + { + standard.set(reaction.emoji, forKey: "default.reaction") + } + + static var getDefaultReaction: ReactionContent + { + guard let reactionAsString = standard.string(forKey: "default.reaction") + else { return ReactionContent.thumbsUp} + let reaction = reactionAsString.reaction + return reaction + } + +} diff --git a/Classes/Issues/Comments/Reactions/ReactionContent+ReactionType.swift b/Classes/Issues/Comments/Reactions/ReactionContent+ReactionType.swift index 86b0854d8..d5feca0c2 100644 --- a/Classes/Issues/Comments/Reactions/ReactionContent+ReactionType.swift +++ b/Classes/Issues/Comments/Reactions/ReactionContent+ReactionType.swift @@ -19,4 +19,22 @@ extension ReactionContent { case .thumbsDown: return "👎" } } + + static var defaultReaction: ReactionContent { + return UserDefaults.getDefaultReaction + } +} + +extension String { + var reaction: ReactionContent { + switch self { + case "😕": return .confused + case "❤️": return .heart + case "🎉": return .hooray + case "😄": return .laugh + case "👍": return .thumbsUp + case "👎": return .thumbsDown + default: return .__unknown(self) + } + } } diff --git a/Classes/Settings/Settings.storyboard b/Classes/Settings/Settings.storyboard index b8dfa4a90..365352716 100644 --- a/Classes/Settings/Settings.storyboard +++ b/Classes/Settings/Settings.storyboard @@ -20,7 +20,7 @@ - +