@@ -48,6 +48,7 @@ public class NowPlayingActivity extends Activity {
48
48
49
49
private int commandId = 0 ;
50
50
private int subscriptionPort = 7777 ;
51
+ private boolean subscribed = false ;
51
52
private ServerSocket serverSocket ;
52
53
Thread serverThread = null ;
53
54
Handler updateConversationHandler ;
@@ -267,15 +268,15 @@ private void subscribe() {
267
268
qs .add ("protocol" , "http" );
268
269
269
270
Header [] headers = {
270
- new BasicHeader (PlexHeaders .XPlexClientIdentifier , VoiceControlForPlexApplication .getUUID (mPrefs )),
271
- new BasicHeader (PlexHeaders .XPlexDeviceName , getString (R .string .app_name ))
271
+ new BasicHeader (PlexHeaders .XPlexClientIdentifier , VoiceControlForPlexApplication .getUUID (mPrefs )),
272
+ new BasicHeader (PlexHeaders .XPlexDeviceName , getString (R .string .app_name ))
272
273
};
273
- Logger .d ("Setting client id: %s" , VoiceControlForPlexApplication .getUUID (mPrefs ));
274
274
PlexHttpClient .get (NowPlayingActivity .this , String .format ("http://%s:%s/player/timeline/subscribe?%s" , client .host , client .port , qs ), headers , new PlexHttpResponseHandler () {
275
275
@ Override
276
276
public void onSuccess (PlexResponse response ) {
277
277
Logger .d ("Subscribed" );
278
278
commandId ++;
279
+ subscribed = true ;
279
280
}
280
281
281
282
@ Override
@@ -292,15 +293,15 @@ private void unsubscribe() {
292
293
private void unsubscribe (final Runnable onFinish ) {
293
294
QueryString qs = new QueryString ("commandID" , String .valueOf (commandId ));
294
295
Header [] headers = {
295
- new BasicHeader (PlexHeaders .XPlexClientIdentifier , VoiceControlForPlexApplication .getUUID (mPrefs )),
296
- new BasicHeader (PlexHeaders .XPlexDeviceName , getString (R .string .app_name )),
297
- new BasicHeader (PlexHeaders .XPlexTargetClientIdentifier , client .machineIdentifier )
298
-
296
+ new BasicHeader (PlexHeaders .XPlexClientIdentifier , VoiceControlForPlexApplication .getUUID (mPrefs )),
297
+ new BasicHeader (PlexHeaders .XPlexDeviceName , getString (R .string .app_name )),
298
+ new BasicHeader (PlexHeaders .XPlexTargetClientIdentifier , client .machineIdentifier )
299
299
};
300
300
PlexHttpClient .get (NowPlayingActivity .this , String .format ("http://%s:%s/player/timeline/unsubscribe?%s" , client .host , client .port , qs ), headers , new PlexHttpResponseHandler () {
301
301
@ Override
302
302
public void onSuccess (PlexResponse response ) {
303
303
Logger .d ("Unsubscribed" );
304
+ subscribed = false ;
304
305
commandId ++;
305
306
if (onFinish != null )
306
307
onFinish .run ();
@@ -317,7 +318,8 @@ public void onFailure(Throwable error) {
317
318
protected void onDestroy () {
318
319
super .onDestroy ();
319
320
try {
320
- unsubscribe ();
321
+ if (subscribed )
322
+ unsubscribe ();
321
323
serverThread .interrupt ();
322
324
serverSocket .close ();
323
325
} catch (Exception ex ) {
0 commit comments