1
1
package com .sahdeepsingh .Bop .services ;
2
2
3
+ /*
4
+ * This to be done in Service
5
+ * 1. add transport controls
6
+ * 2. lol for now
7
+ * */
8
+
3
9
import android .app .PendingIntent ;
4
10
import android .content .BroadcastReceiver ;
5
11
import android .content .ComponentName ;
21
27
import android .support .v4 .media .session .PlaybackStateCompat ;
22
28
import android .text .TextUtils ;
23
29
import android .util .Log ;
30
+ import android .view .KeyEvent ;
24
31
import android .widget .Toast ;
25
32
26
33
import com .cleveroad .audiowidget .AudioWidget ;
@@ -57,6 +64,9 @@ public class ServicePlayMusic extends MediaBrowserServiceCompat
57
64
58
65
private static final int STOP_DELAY = 30000 ;
59
66
67
+ static final long CLICK_DELAY = 500 ;
68
+ static long lastClick = 0 ;
69
+
60
70
61
71
// The tag we put on debug messages
62
72
final static String TAG = "MusicService" ;
@@ -130,6 +140,7 @@ public class ServicePlayMusic extends MediaBrowserServiceCompat
130
140
// Internal flags for the function above {{
131
141
private boolean pausedTemporarilyDueToAudioFocus = false ;
132
142
private boolean loweredVolumeDueToAudioFocus = false ;
143
+
133
144
private BroadcastReceiver mNoisyReceiver = new BroadcastReceiver () {
134
145
@ Override
135
146
public void onReceive (Context context , Intent intent ) {
@@ -139,21 +150,77 @@ public void onReceive(Context context, Intent intent) {
139
150
}
140
151
};
141
152
private MediaSessionCompat .Callback mMediaSessionCallback = new MediaSessionCompat .Callback () {
153
+
154
+ @ Override
155
+ public boolean onMediaButtonEvent (Intent mediaButtonEvent ) {
156
+ final String intentAction = mediaButtonEvent .getAction ();
157
+ if (AudioManager .ACTION_AUDIO_BECOMING_NOISY .equals (intentAction )) {
158
+ if (Main .settings .get ("pause_headphone_unplugged" , true )) {
159
+ pausePlayer ();
160
+ }
161
+ } else if (Intent .ACTION_MEDIA_BUTTON .equals (intentAction )) {
162
+ final KeyEvent event = mediaButtonEvent .getParcelableExtra (Intent .EXTRA_KEY_EVENT );
163
+ if (event == null ) return super .onMediaButtonEvent (mediaButtonEvent );
164
+ final int keycode = event .getKeyCode ();
165
+ final int action = event .getAction ();
166
+ final long eventTime = event .getEventTime ();
167
+ if (event .getRepeatCount () == 0 && action == KeyEvent .ACTION_DOWN ) {
168
+ switch (keycode ) {
169
+ case KeyEvent .KEYCODE_HEADSETHOOK :
170
+ if (eventTime - lastClick < CLICK_DELAY ) {
171
+ next (true );
172
+ playSong ();
173
+ lastClick = 0 ;
174
+ } else {
175
+ if (isPlaying ())
176
+ pausePlayer ();
177
+ else unpausePlayer ();
178
+ lastClick = eventTime ;
179
+ }
180
+ break ;
181
+ case KeyEvent .KEYCODE_MEDIA_STOP :
182
+ stopMusicPlayer ();
183
+ break ;
184
+ case KeyEvent .KEYCODE_MEDIA_PLAY_PAUSE :
185
+ if (Main .mainMenuHasNowPlayingItem ) {
186
+ if (isPlaying ()) pausePlayer ();
187
+ else unpausePlayer ();
188
+ }
189
+ break ;
190
+ case KeyEvent .KEYCODE_MEDIA_NEXT :
191
+ next (true );
192
+ playSong ();
193
+ break ;
194
+ case KeyEvent .KEYCODE_MEDIA_PREVIOUS :
195
+ previous (true );
196
+ playSong ();
197
+ break ;
198
+ case KeyEvent .KEYCODE_MEDIA_PAUSE :
199
+ pausePlayer ();
200
+ break ;
201
+ case KeyEvent .KEYCODE_MEDIA_PLAY :
202
+ unpausePlayer ();
203
+ break ;
204
+ }
205
+ }
206
+ }
207
+ return super .onMediaButtonEvent (mediaButtonEvent );
208
+ }
142
209
@ Override
143
210
public void onPlay () {
144
211
super .onPlay ();
145
- playSong ();
212
+ unpausePlayer ();
146
213
}
147
214
148
215
@ Override
149
216
public void onPlayFromMediaId (String mediaId , Bundle extras ) {
150
217
super .onPlayFromMediaId (mediaId , extras );
218
+ playSong ();
151
219
}
152
220
153
221
@ Override
154
222
public void onPause () {
155
223
super .onPause ();
156
- Log .e ("lol" , "pause" );
157
224
pausePlayer ();
158
225
}
159
226
@@ -162,7 +229,6 @@ public void onSkipToNext() {
162
229
super .onSkipToNext ();
163
230
next (true );
164
231
playSong ();
165
- Log .e ("lol" , "next" );
166
232
}
167
233
168
234
@ Override
@@ -176,7 +242,6 @@ public void onSkipToPrevious() {
176
242
public void onStop () {
177
243
super .onStop ();
178
244
stopMusicPlayer ();
179
- Log .e ("lol" , "stop" );
180
245
}
181
246
};
182
247
0 commit comments