Skip to content

Commit af7f796

Browse files
author
Chris Bellew
committed
Switched to better Preferences manager. Optimized imports.
1 parent f0ab763 commit af7f796

31 files changed

+230
-296
lines changed

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

Lines changed: 18 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,21 @@
88
import com.atomjack.vcfp.model.PlexTrack;
99
import com.atomjack.vcfp.model.PlexVideo;
1010
import com.google.android.gms.cast.ApplicationMetadata;
11-
import com.google.android.gms.cast.MediaInfo;
12-
import com.google.android.gms.cast.MediaMetadata;
13-
import com.google.android.gms.cast.MediaStatus;
1411
import com.google.sample.castcompanionlibrary.cast.VideoCastManager;
15-
import com.google.sample.castcompanionlibrary.widgets.MiniController;
1612

17-
import org.json.JSONArray;
1813
import org.json.JSONObject;
1914

2015
import java.util.ArrayList;
2116
import java.util.List;
22-
import java.util.ListIterator;
2317

2418
public class CastPlayerManager {
2519
private PlexMedia nowPlayingMedia;
2620
private List<PlexMedia> nowPlayingAlbum;
2721

2822
private static VideoCastManager castManager = null;
2923
private VCFPCastConsumer castConsumer;
30-
private MiniController miniController;
3124

32-
protected MediaInfo remoteMediaInformation;
25+
private String mSessionId;
3326

3427
public static final class PARAMS {
3528
public static final String MEDIA_TYPE = "media_type";
@@ -61,12 +54,13 @@ public static final class PARAMS {
6154
public static final String ACTION_SEEK = "seek";
6255
public static final String ACTION_GET_PLAYBACK_STATE = "getPlaybackState";
6356

57+
public static final String PLEX_USERNAME = "plexUsername";
58+
6459
};
6560

6661
private Context mContext;
6762

6863
private CastListener listener;
69-
private CastListener notificationListener;
7064

7165
private boolean subscribed = false;
7266

@@ -78,7 +72,6 @@ public static final class PARAMS {
7872

7973
public CastPlayerManager(Context context) {
8074
mContext = context;
81-
Preferences.setContext(mContext);
8275
setCastConsumer();
8376
}
8477

@@ -130,8 +123,8 @@ public void unsubscribe() {
130123

131124
public void setListener(CastListener _listener) {
132125
listener = _listener;
133-
if(_listener != null)
134-
notificationListener = _listener;
126+
// if(_listener != null)
127+
// notificationListener = _listener;
135128
}
136129

137130
public interface CastListener {
@@ -262,38 +255,6 @@ public void onRemoteMediaPlayerMetadataUpdated() {
262255

263256
}
264257

265-
@Override
266-
public void onRemoteMediaPlayerStatusUpdated() {
267-
super.onRemoteMediaPlayerStatusUpdated();
268-
/*
269-
Logger.d("onRemoteMediaPlayerStatusUpdated");
270-
try {
271-
remoteMediaInformation = castManager.getRemoteMediaInformation();
272-
MediaMetadata metadata = remoteMediaInformation.getMetadata();
273-
int lastState = currentState;
274-
currentState = castManager.getPlaybackStatus();
275-
276-
Logger.d("currentState: %d", currentState);
277-
278-
listener.onCastPlayerStateChanged(currentState);
279-
if(currentState == MediaStatus.PLAYER_STATE_IDLE) {
280-
Logger.d("idle reason: %d", castManager.getIdleReason());
281-
282-
} else if(currentState == MediaStatus.PLAYER_STATE_PAUSED) {
283-
// setState(MediaStatus.PLAYER_STATE_PAUSED);
284-
// stopDurationTimer();
285-
} else if(currentState == MediaStatus.PLAYER_STATE_PLAYING) {
286-
// setState(MediaStatus.PLAYER_STATE_PLAYING);
287-
// startDurationTimer();
288-
}
289-
// Logger.d("metadata: %s", metadata);
290-
} catch (Exception ex) {
291-
// silent
292-
ex.printStackTrace();
293-
}
294-
*/
295-
}
296-
297258
@Override
298259
public void setOnConnected(Runnable runnable) {
299260
onConnectedRunnable = runnable;
@@ -319,6 +280,7 @@ public void onApplicationConnected(ApplicationMetadata appMetadata,
319280
Logger.d("metadata: %s", appMetadata);
320281
Logger.d("sessionid: %s", sessionId);
321282
Logger.d("was launched: %s", wasLaunched);
283+
mSessionId = sessionId;
322284
// if(!launched) {
323285
// launched = true;
324286
if(onConnectedRunnable != null)
@@ -351,7 +313,7 @@ public void onCastDeviceDetected(final MediaRouter.RouteInfo info) {
351313
};
352314
}
353315

354-
public String getTranscodeUrl(PlexVideo media) {
316+
public String getTranscodeUrl(PlexMedia media) {
355317
return getTranscodeUrl(media, 0);
356318
}
357319

@@ -371,8 +333,8 @@ public String getTranscodeUrl(PlexMedia media, int offset) {
371333
qs.add("maxVideoBitrate", "2000");
372334
qs.add("subtitleSize", "100");
373335
qs.add("audioBoost", "100");
374-
qs.add("session", VoiceControlForPlexApplication.generateRandomString());
375-
qs.add(PlexHeaders.XPlexClientIdentifier, Preferences.getUUID());
336+
qs.add("session", mSessionId);
337+
qs.add(PlexHeaders.XPlexClientIdentifier, VoiceControlForPlexApplication.getInstance().prefs.getUUID());
376338
qs.add(PlexHeaders.XPlexProduct, String.format("%s Chromecast", mContext.getString(R.string.app_name)));
377339
qs.add(PlexHeaders.XPlexDevice, mClient.castDevice.getModelName());
378340
qs.add(PlexHeaders.XPlexDeviceName, mClient.castDevice.getModelName());
@@ -386,8 +348,8 @@ public String getTranscodeUrl(PlexMedia media, int offset) {
386348
ex.printStackTrace();
387349
}
388350
// TODO: Fix this
389-
if(Preferences.getString(Preferences.PLEX_USERNAME) != null)
390-
qs.add(PlexHeaders.XPlexUsername, Preferences.getString(Preferences.PLEX_USERNAME));
351+
if(VoiceControlForPlexApplication.getInstance().prefs.getString(Preferences.PLEX_USERNAME) != null)
352+
qs.add(PlexHeaders.XPlexUsername, VoiceControlForPlexApplication.getInstance().prefs.getString(Preferences.PLEX_USERNAME));
391353
return url + qs.toString();
392354
}
393355

@@ -403,6 +365,9 @@ public JSONObject buildMedia(int offset) {
403365
JSONObject data = new JSONObject();
404366
try {
405367
data.put(PARAMS.ACTION, PARAMS.ACTION_LOAD);
368+
if(VoiceControlForPlexApplication.getInstance().prefs.getString(Preferences.PLEX_USERNAME) != null) {
369+
data.put(PARAMS.PLEX_USERNAME, VoiceControlForPlexApplication.getInstance().prefs.getString(Preferences.PLEX_USERNAME));
370+
}
406371
data.put(PARAMS.MEDIA_TYPE, nowPlayingMedia instanceof PlexVideo ? PARAMS.MEDIA_TYPE_VIDEO : PARAMS.MEDIA_TYPE_AUDIO);
407372
data.put(PARAMS.OFFSET, offset);
408373
data.put(PARAMS.CLIENT, VoiceControlForPlexApplication.gsonWrite.toJson(mClient));
@@ -433,4 +398,8 @@ public PlayerState getCurrentState() {
433398
public PlexMedia getNowPlayingMedia() {
434399
return nowPlayingMedia;
435400
}
401+
402+
public String getSessionId() {
403+
return mSessionId;
404+
}
436405
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.atomjack.vcfp;
22

33
import android.content.Context;
4-
import android.content.SharedPreferences;
54
import android.speech.tts.TextToSpeech;
65
import android.speech.tts.UtteranceProgressListener;
76
import android.widget.Toast;
@@ -29,9 +28,9 @@ public Feedback(Context ctx) {
2928
public void onInit(int i) {
3029
Logger.d("Feedback onInit");
3130
if(errorsTts != null)
32-
errorsTts.setLanguage(VoiceControlForPlexApplication.getVoiceLocale(Preferences.get(Preferences.ERRORS_VOICE, "Locale.US")));
31+
errorsTts.setLanguage(VoiceControlForPlexApplication.getVoiceLocale(VoiceControlForPlexApplication.getInstance().prefs.get(Preferences.ERRORS_VOICE, "Locale.US")));
3332
if(feedbackTts != null)
34-
feedbackTts.setLanguage(VoiceControlForPlexApplication.getVoiceLocale(Preferences.get(Preferences.FEEDBACK_VOICE, "Locale.US")));
33+
feedbackTts.setLanguage(VoiceControlForPlexApplication.getVoiceLocale(VoiceControlForPlexApplication.getInstance().prefs.get(Preferences.FEEDBACK_VOICE, "Locale.US")));
3534

3635
if(errorsQueue != null) {
3736
feedback(errorsQueue, true);
@@ -97,7 +96,7 @@ private void feedback(String text, boolean errors) {
9796

9897
private void feedback(String text, boolean errors, boolean forceToast) {
9998

100-
if(!forceToast && Preferences.get(errors ? Preferences.ERRORS : Preferences.FEEDBACK, MainActivity.FEEDBACK_TOAST) == MainActivity.FEEDBACK_VOICE) {
99+
if(!forceToast && VoiceControlForPlexApplication.getInstance().prefs.get(errors ? Preferences.ERRORS : Preferences.FEEDBACK, MainActivity.FEEDBACK_TOAST) == MainActivity.FEEDBACK_VOICE) {
101100
TextToSpeech tts = errors ? errorsTts : feedbackTts;
102101
if (tts == null) {
103102
// This tts not set up yet, so initiate it and add the text to be spoken to the appropriate queue.

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
package com.atomjack.vcfp;
22

3-
import java.io.IOException;
4-
import java.net.DatagramPacket;
5-
import java.net.DatagramSocket;
6-
import java.net.InetAddress;
7-
import java.net.SocketTimeoutException;
8-
93
import android.app.IntentService;
104
import android.content.Context;
115
import android.content.Intent;
126
import android.net.DhcpInfo;
137
import android.net.wifi.WifiManager;
148
import android.support.v4.content.LocalBroadcastManager;
159

10+
import java.io.IOException;
11+
import java.net.DatagramPacket;
12+
import java.net.DatagramSocket;
13+
import java.net.InetAddress;
14+
import java.net.SocketTimeoutException;
15+
1616
public class GDMService extends IntentService {
1717
public static final String MSG_RECEIVED = ".GDMService.MESSAGE_RECEIVED";
1818
public static final String SOCKET_CLOSED = ".GDMService.SOCKET_CLOSED";

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import android.content.Intent;
66
import android.net.ConnectivityManager;
77
import android.net.NetworkInfo;
8-
import android.net.wifi.WifiManager;
98

109
public class NetworkChangeReceiver extends BroadcastReceiver {
1110
private boolean wifiConnected;

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package com.atomjack.vcfp;
22

3-
import android.content.Intent;
43
import android.content.res.Resources;
54
import android.os.Handler;
6-
import android.support.v4.content.LocalBroadcastManager;
75

86
import com.atomjack.vcfp.activities.VCFPActivity;
97
import com.atomjack.vcfp.model.MediaContainer;
@@ -71,7 +69,7 @@ public class PlexSubscription {
7169

7270
public PlexSubscription() {
7371
mHandler = new Handler();
74-
uuid = Preferences.getUUID();
72+
uuid = VoiceControlForPlexApplication.getInstance().prefs.getUUID();
7573
}
7674

7775
public void setListener(VCFPActivity _listener) {

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

Lines changed: 54 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -3,77 +3,73 @@
33
import android.content.Context;
44
import android.content.SharedPreferences;
55

6-
import java.util.UUID;
7-
86
public class Preferences {
9-
public final static String PREFS = "VoiceControlForPlexPrefs";
7+
public final static String PREFS = "VoiceControlForPlexPrefs";
108

11-
private static Context mContext;
12-
private static SharedPreferences mPrefs;
13-
private static SharedPreferences.Editor mPrefsEditor;
9+
private SharedPreferences mPrefs;
10+
private SharedPreferences.Editor mPrefsEditor;
1411

15-
public final static String FEEDBACK_VOICE = "pref.feedback.voice";
16-
public final static String ERRORS_VOICE = "pref.errors.voice";
17-
public final static String SAVED_SERVERS = "pref.saved_servers";
12+
public final static String FEEDBACK_VOICE = "pref.feedback.voice";
13+
public final static String ERRORS_VOICE = "pref.errors.voice";
14+
public final static String SAVED_SERVERS = "pref.saved_servers";
1815
public final static String SAVED_CLIENTS = "pref.saved_clients";
1916
public final static String SAVED_CAST_CLIENTS = "pref.saved_cast_clients";
20-
public final static String UUID = "pref.uuid";
21-
public final static String AUTHENTICATION_TOKEN = "pref.authentication_token";
22-
public final static String CLIENT = "Client";
23-
public final static String SERVER = "Server";
24-
public final static String RESUME = "resume";
25-
public final static String FEEDBACK = "feedback";
26-
public final static String ERRORS = "errors";
27-
public final static String PLEX_USERNAME = "pref.plex_username";
17+
public final static String UUID = "pref.uuid";
18+
public final static String AUTHENTICATION_TOKEN = "pref.authentication_token";
19+
public final static String CLIENT = "Client";
20+
public final static String SERVER = "Server";
21+
public final static String RESUME = "resume";
22+
public final static String FEEDBACK = "feedback";
23+
public final static String ERRORS = "errors";
24+
public final static String PLEX_USERNAME = "pref.plex_username";
2825

29-
public static void setContext(Context context) {
30-
mContext = context;
31-
mPrefs = context.getSharedPreferences(PREFS, context.MODE_PRIVATE);
32-
mPrefsEditor = mPrefs.edit();
33-
}
26+
public Preferences(Context context) {
27+
mPrefs = context.getSharedPreferences(PREFS, context.MODE_PRIVATE);
28+
mPrefsEditor = mPrefs.edit();
29+
}
3430

35-
public static String get(String pref, String defaultValue) {
36-
return mPrefs.getString(pref, defaultValue);
37-
}
31+
public String get(String pref, String defaultValue) {
32+
return mPrefs.getString(pref, defaultValue);
33+
}
3834

39-
public static String getString(String pref) {
40-
return mPrefs.getString(pref, null);
41-
}
35+
public String getString(String pref) {
36+
return mPrefs.getString(pref, null);
37+
}
4238

43-
public static int get(String pref, int defaultValue) {
44-
return mPrefs.getInt(pref, defaultValue);
45-
}
39+
public int get(String pref, int defaultValue) {
40+
return mPrefs.getInt(pref, defaultValue);
41+
}
4642

47-
public static void put(String pref, String value) {
48-
mPrefsEditor.putString(pref, value);
49-
mPrefsEditor.commit();
50-
}
43+
public void put(String pref, String value) {
44+
mPrefsEditor.putString(pref, value);
45+
mPrefsEditor.commit();
46+
}
5147

52-
public static void put(String pref, int value) {
53-
mPrefsEditor.putInt(pref, value);
54-
mPrefsEditor.commit();
55-
}
48+
public void put(String pref, int value) {
49+
mPrefsEditor.putInt(pref, value);
50+
mPrefsEditor.commit();
51+
}
5652

57-
public static void put(String pref, boolean value) {
58-
mPrefsEditor.putBoolean(pref, value);
59-
mPrefsEditor.commit();
60-
}
53+
public void put(String pref, boolean value) {
54+
mPrefsEditor.putBoolean(pref, value);
55+
mPrefsEditor.commit();
56+
}
6157

62-
public static boolean get(String pref, boolean defaultValue) {
63-
return mPrefs.getBoolean(pref, defaultValue);
64-
}
58+
public boolean get(String pref, boolean defaultValue) {
59+
return mPrefs.getBoolean(pref, defaultValue);
60+
}
6561

66-
public static void remove(String pref) {
67-
mPrefsEditor.remove(pref);
68-
mPrefsEditor.commit();
69-
}
62+
public void remove(String pref) {
63+
mPrefsEditor.remove(pref);
64+
mPrefsEditor.commit();
65+
}
7066

71-
public static String getUUID() {
72-
String uuid = getString(UUID);
73-
if(uuid == null) {
74-
uuid = java.util.UUID.randomUUID().toString();
75-
put(UUID, uuid);
76-
}
77-
return uuid;
78-
}
67+
public String getUUID() {
68+
String uuid = getString(UUID);
69+
if(uuid == null) {
70+
uuid = java.util.UUID.randomUUID().toString();
71+
put(UUID, uuid);
72+
}
73+
return uuid;
74+
}
7975
}

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package com.atomjack.vcfp;
22

3-
import android.content.SharedPreferences;
43
import android.content.res.Resources;
54

65
import com.atomjack.vcfp.model.Device;
76
import com.atomjack.vcfp.model.MediaContainer;
8-
import com.atomjack.vcfp.model.PlexClient;
97
import com.atomjack.vcfp.model.PlexServer;
108
import com.google.gson.Gson;
119
import com.loopj.android.http.AsyncHttpClient;
@@ -16,7 +14,6 @@
1614
import org.simpleframework.xml.core.Persister;
1715

1816
import java.util.ArrayList;
19-
import java.util.HashMap;
2017
import java.util.List;
2118
import java.util.concurrent.ConcurrentHashMap;
2219

0 commit comments

Comments
 (0)