@@ -54,6 +54,14 @@ class StationsViewController: BaseController, Handoffable {
5454 return view
5555 } ( )
5656
57+ private lazy var nowPlayingBarButton : UIBarButtonItem = {
58+ let barButton = UIBarButtonItem ( customView: nowPlayingIndicator)
59+ let tapGesture = UITapGestureRecognizer ( target: self , action: #selector( nowPlayingBarButtonPressed) )
60+ nowPlayingIndicator. addGestureRecognizer ( tapGesture)
61+ nowPlayingIndicator. isUserInteractionEnabled = true
62+ return barButton
63+ } ( )
64+
5765 private lazy var nowPlayingIndicator : UIView = {
5866 let container = UIView ( )
5967 container. addSubview ( equalizerView)
@@ -136,30 +144,22 @@ class StationsViewController: BaseController, Handoffable {
136144 navigationItem. rightBarButtonItem = nil
137145 return
138146 }
139-
140- guard navigationItem. rightBarButtonItem == nil else { return }
141- let barButton = UIBarButtonItem ( customView: nowPlayingIndicator)
142- barButton. target = self
143- barButton. action = #selector( nowPlayingBarButtonPressed)
144-
145- let tapGesture = UITapGestureRecognizer ( target: self , action: #selector( nowPlayingBarButtonPressed) )
146- nowPlayingIndicator. addGestureRecognizer ( tapGesture)
147- nowPlayingIndicator. isUserInteractionEnabled = true
148-
149- navigationItem. rightBarButtonItem = barButton
150147 updateNowPlayingAnimation ( )
151148 }
152149
153150 private func updateNowPlayingAnimation( ) {
154151 if isBuffering {
155152 equalizerView. stopAnimating ( )
156153 bufferingView. startAnimating ( )
154+ navigationItem. rightBarButtonItem = nowPlayingBarButton
157155 } else if player. isPlaying {
158156 bufferingView. stopAnimating ( )
159157 equalizerView. startAnimating ( )
158+ navigationItem. rightBarButtonItem = nowPlayingBarButton
160159 } else {
161160 equalizerView. stopAnimating ( )
162161 bufferingView. stopAnimating ( )
162+ navigationItem. rightBarButtonItem = nil
163163 }
164164 }
165165
0 commit comments