Skip to content

Commit 8ee17cb

Browse files
author
Chris Bellew
committed
Make sure not to try to unsubscribe twice.
1 parent 9ab8be1 commit 8ee17cb

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

Voice Control For Plex/src/main/java/com/atomjack/vcfp/activities/NowPlayingActivity.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class NowPlayingActivity extends Activity {
4848

4949
private int commandId = 0;
5050
private int subscriptionPort = 7777;
51+
private boolean subscribed = false;
5152
private ServerSocket serverSocket;
5253
Thread serverThread = null;
5354
Handler updateConversationHandler;
@@ -267,15 +268,15 @@ private void subscribe() {
267268
qs.add("protocol", "http");
268269

269270
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))
272273
};
273-
Logger.d("Setting client id: %s", VoiceControlForPlexApplication.getUUID(mPrefs));
274274
PlexHttpClient.get(NowPlayingActivity.this, String.format("http://%s:%s/player/timeline/subscribe?%s", client.host, client.port, qs), headers, new PlexHttpResponseHandler() {
275275
@Override
276276
public void onSuccess(PlexResponse response) {
277277
Logger.d("Subscribed");
278278
commandId++;
279+
subscribed = true;
279280
}
280281

281282
@Override
@@ -292,15 +293,15 @@ private void unsubscribe() {
292293
private void unsubscribe(final Runnable onFinish) {
293294
QueryString qs = new QueryString("commandID", String.valueOf(commandId));
294295
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)
299299
};
300300
PlexHttpClient.get(NowPlayingActivity.this, String.format("http://%s:%s/player/timeline/unsubscribe?%s", client.host, client.port, qs), headers, new PlexHttpResponseHandler() {
301301
@Override
302302
public void onSuccess(PlexResponse response) {
303303
Logger.d("Unsubscribed");
304+
subscribed = false;
304305
commandId++;
305306
if(onFinish != null)
306307
onFinish.run();
@@ -317,7 +318,8 @@ public void onFailure(Throwable error) {
317318
protected void onDestroy() {
318319
super.onDestroy();
319320
try {
320-
unsubscribe();
321+
if(subscribed)
322+
unsubscribe();
321323
serverThread.interrupt();
322324
serverSocket.close();
323325
} catch(Exception ex) {

0 commit comments

Comments
 (0)