@@ -10,7 +10,7 @@ import Foundation
10
10
import WatchConnectivity
11
11
import WatchKit
12
12
13
- class PostActionMenuController : WKInterfaceController {
13
+ class PostActionMenuController : Votable {
14
14
@IBOutlet weak var bannerImage : WKInterfaceImage !
15
15
@IBOutlet var commentTable : WKInterfaceTable !
16
16
@IBOutlet weak var titleLabel : WKInterfaceLabel !
@@ -21,7 +21,20 @@ class PostActionMenuController: WKInterfaceController {
21
21
public var parent : InterfaceController ?
22
22
@IBOutlet var thumbImage : WKInterfaceImage !
23
23
@IBOutlet var thumbGroup : WKInterfaceGroup !
24
+ @IBOutlet var upvoteButton : WKInterfaceButton !
25
+ @IBOutlet var downvoteButton : WKInterfaceButton !
24
26
@IBOutlet var linkInfo : WKInterfaceLabel !
27
+ var id : String ?
28
+ @IBAction func didUpvote( ) {
29
+ ( WKExtension . shared ( ) . visibleInterfaceController as? Votable ) ? . sharedUp = upvoteButton
30
+ ( WKExtension . shared ( ) . visibleInterfaceController as? Votable ) ? . sharedDown = downvoteButton
31
+ ( WKExtension . shared ( ) . visibleInterfaceController as? Votable ) ? . doVote ( id: id!, upvote: true , downvote: false )
32
+ }
33
+ @IBAction func didDownvote( ) {
34
+ ( WKExtension . shared ( ) . visibleInterfaceController as? Votable ) ? . sharedUp = upvoteButton
35
+ ( WKExtension . shared ( ) . visibleInterfaceController as? Votable ) ? . sharedDown = downvoteButton
36
+ ( WKExtension . shared ( ) . visibleInterfaceController as? Votable ) ? . doVote ( id: id!, upvote: false , downvote: true )
37
+ }
25
38
26
39
@IBAction func openComments( ) {
27
40
// if !(self.parent?.isPro ?? true) {
@@ -49,16 +62,7 @@ class PostActionMenuController: WKInterfaceController {
49
62
} )
50
63
// }
51
64
}
52
- @IBAction func doUpvote( ) {
53
- WCSession . default. sendMessage ( [ " upvote " : modelContext!. id!] , replyHandler: { ( result) in
54
- if result [ " failed " ] == nil {
55
- self . dismiss ( )
56
- }
57
- } , errorHandler: { ( error) in
58
- print ( error)
59
- } )
60
- }
61
-
65
+
62
66
override init ( ) {
63
67
super. init ( )
64
68
self . setTitle ( " Back " )
@@ -68,20 +72,26 @@ class PostActionMenuController: WKInterfaceController {
68
72
super. awake ( withContext: context)
69
73
let myModel = context as! SubmissionRowController //make the model
70
74
self . modelContext = myModel
71
- self . parent = ( context as? SubmissionRowController ) ? . parent
72
75
titleLabel. setAttributedText ( myModel. titleText)
73
76
if myModel. thumbnail == nil && myModel. largeimage != nil {
74
77
bannerImage. setImage ( myModel. largeimage)
75
78
bannerImage. setHidden ( false )
76
79
thumbGroup. setHidden ( true )
77
- } else {
80
+ } else if myModel . thumbnail != nil {
78
81
thumbImage. setImage ( myModel. thumbnail)
79
82
bannerImage. setHidden ( true )
80
83
thumbGroup. setHidden ( false )
84
+ } else {
85
+ bannerImage. setHidden ( true )
86
+ thumbGroup. setHidden ( true )
81
87
}
82
88
imageGroup. setCornerRadius ( 5 )
83
89
90
+ upvoteButton. setBackgroundColor ( ( myModel. dictionary [ " upvoted " ] ?? false ) as! Bool ? UIColor . init ( hexString: " #FF5700 " ) : UIColor . gray)
91
+ downvoteButton. setBackgroundColor ( ( myModel. dictionary [ " downvoted " ] ?? false ) as! Bool ? UIColor . init ( hexString: " #9494FF " ) : UIColor . gray)
92
+
84
93
scoreLabel. setText ( myModel. scoreText)
94
+ id = myModel. id
85
95
commentLabel. setText ( myModel. commentText)
86
96
WCSession . default. sendMessage ( [ " comments " : myModel. id!] , replyHandler: { ( message) in
87
97
self . comments = message [ " comments " ] as? [ NSDictionary ] ?? [ ]
@@ -93,6 +103,8 @@ class PostActionMenuController: WKInterfaceController {
93
103
94
104
var comments = [ NSDictionary] ( )
95
105
func beginLoadingTable( ) {
106
+ WKInterfaceDevice . current ( ) . play ( . success)
107
+
96
108
commentTable. insertRows ( at: IndexSet ( integersIn: 0 ..< comments. count) , withRowType: " CommentsRowController " )
97
109
98
110
if comments. count > 0 {
0 commit comments