@@ -152,13 +152,19 @@ protected void onCreate(Bundle savedInstanceState) {
152
152
153
153
plexSubscription = VoiceControlForPlexApplication .getInstance ().plexSubscription ;
154
154
castPlayerManager = VoiceControlForPlexApplication .getInstance ().castPlayerManager ;
155
- if (plexSubscription .isSubscribed ()) {
156
- Logger .d ("[VCFPActivity] setting client to %s" , plexSubscription .mClient );
157
- mClient = plexSubscription .mClient ;
158
- } else if (castPlayerManager .isSubscribed ()) {
159
- Logger .d ("[VCFPActivity] setting client to %s" , castPlayerManager .mClient );
160
- mClient = castPlayerManager .mClient ;
161
- } else {
155
+
156
+ if (gsonRead .fromJson (VoiceControlForPlexApplication .getInstance ().prefs .get (Preferences .SUBSCRIBED_CLIENT , "" ), PlexClient .class ) != null ) {
157
+ mClient = gsonRead .fromJson (VoiceControlForPlexApplication .getInstance ().prefs .get (Preferences .SUBSCRIBED_CLIENT , "" ), PlexClient .class );
158
+ if (mClient .isCastClient ) {
159
+ if (!castPlayerManager .isSubscribed ()) {
160
+ castPlayerManager .subscribe (mClient );
161
+ }
162
+ } else if (!plexSubscription .isSubscribed ()) {
163
+ plexSubscription .subscribe (mClient );
164
+ }
165
+ }
166
+
167
+ if (!plexSubscription .isSubscribed () && !castPlayerManager .isSubscribed ()) {
162
168
Logger .d ("Not subscribed: %s" , plexSubscription .mClient );
163
169
// In case the notification is still up due to a crash
164
170
VoiceControlForPlexApplication .getInstance ().cancelNotification ();
@@ -449,6 +455,8 @@ public void onSubscribed(PlexClient _client) {
449
455
Logger .d ("VCFPActivity: onSubscribed: %s" , _client );
450
456
mClient = _client ;
451
457
458
+ VoiceControlForPlexApplication .getInstance ().prefs .put (Preferences .SUBSCRIBED_CLIENT , gsonWrite .toJson (_client ));
459
+
452
460
subscribing = false ;
453
461
try {
454
462
setCastIconActive ();
@@ -613,6 +621,7 @@ public void onUnsubscribed() {
613
621
setCastIconInactive ();
614
622
nowPlayingMedia = null ;
615
623
VoiceControlForPlexApplication .getInstance ().cancelNotification ();
624
+ VoiceControlForPlexApplication .getInstance ().prefs .remove (Preferences .SUBSCRIBED_CLIENT );
616
625
sendWearPlaybackChange ();
617
626
feedback .m (R .string .disconnected );
618
627
}
0 commit comments