Skip to content

Commit 4ee4bdb

Browse files
author
Chris Bellew
committed
Added Plex login.
1 parent 345fbae commit 4ee4bdb

28 files changed

+744
-165
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,18 @@ public void m(String text) {
5757
feedback(text, false);
5858
}
5959

60+
public void m(int id) {
61+
feedback(context.getString(id), false);
62+
}
63+
6064
public void e(String text) {
6165
feedback(text, true);
6266
}
6367

68+
public void e(int id) {
69+
feedback(context.getString(id), true);
70+
}
71+
6472
private void feedback(String text, boolean errors) {
6573
if(mPrefs.getInt(errors ? "errors" : "feedback", MainActivity.FEEDBACK_TOAST) == MainActivity.FEEDBACK_VOICE) {
6674
TextToSpeech tts = errors ? errorsTts : feedbackTts;

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

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ public class LocalScan {
2626
private Class theClass;
2727
private Dialog searchDialog;
2828
private Dialog serverSelectDialog = null;
29-
private LocalScanHandler scanHandler;
29+
private ScanHandler scanHandler;
3030
private SharedPreferences mPrefs;
3131
private Gson gson = new Gson();
3232
private Feedback feedback;
3333
private int serversScanned = 0;
3434
private Map<String, PlexClient> m_clients = new HashMap<String, PlexClient>();
3535
private PlexServer server;
3636

37-
public LocalScan(Context ctx, Class cls, SharedPreferences prefs, LocalScanHandler handler) {
37+
public LocalScan(Context ctx, Class cls, SharedPreferences prefs, ScanHandler handler) {
3838
context = ctx;
3939
theClass = cls;
4040
scanHandler = handler;
@@ -79,7 +79,7 @@ public void showPlexServers(ConcurrentHashMap<String, PlexServer> servers) {
7979

8080
final ListView serverListView = (ListView)serverSelectDialog.findViewById(R.id.serverListView);
8181
if(servers == null)
82-
servers = new ConcurrentHashMap<String, PlexServer>(VoiceControlForPlexApplication.getPlexMediaServers());
82+
servers = new ConcurrentHashMap<String, PlexServer>(VoiceControlForPlexApplication.servers);
8383
final PlexListAdapter adapter = new PlexListAdapter(context, PlexListAdapter.TYPE_SERVER);
8484
adapter.setServers(servers);
8585
serverListView.setAdapter(adapter);
@@ -130,7 +130,7 @@ public void getClients(MediaContainer mc) {
130130
searchDialog.setTitle("Searching for Plex Clients");
131131

132132
searchDialog.show();
133-
PlexHttpClient.get(server.getClientsURL(), null, new PlexHttpMediaContainerHandler() {
133+
PlexHttpClient.get(server, "/clients", new PlexHttpMediaContainerHandler() {
134134
@Override
135135
public void onSuccess(MediaContainer clientMC) {
136136
// Exclude non-Plex Home Theater clients (pre 1.0.7)
@@ -211,12 +211,15 @@ public void onItemClick(AdapterView<?> parentAdapter, View view, int position,
211211
}
212212

213213
public void scanServersForClients() {
214-
ConcurrentHashMap<String, PlexServer> servers = VoiceControlForPlexApplication.getPlexMediaServers();
214+
ConcurrentHashMap<String, PlexServer> servers = VoiceControlForPlexApplication.servers;
215215
Logger.d("ScanServersForClients, number of servers = " + servers.size());
216216
serversScanned = 0;
217217
for(PlexServer thisServer : servers.values()) {
218+
// Skip non-owned servers
219+
if(!thisServer.owned)
220+
continue;
218221
Logger.d("ScanServersForClients server: %s", thisServer.name);
219-
PlexHttpClient.get(thisServer.getClientsURL(), null, new PlexHttpMediaContainerHandler()
222+
PlexHttpClient.get(thisServer, "/clients", new PlexHttpMediaContainerHandler()
220223
{
221224
@Override
222225
public void onSuccess(MediaContainer clientMC)
@@ -230,7 +233,7 @@ public void onSuccess(MediaContainer clientMC)
230233
}
231234
}
232235

233-
if(serversScanned == VoiceControlForPlexApplication.getPlexMediaServers().size()) {
236+
if(serversScanned == VoiceControlForPlexApplication.servers.size()) {
234237
searchDialog.dismiss();
235238
if(m_clients.size() == 0) {
236239
AlertDialog.Builder builder = new AlertDialog.Builder(context);

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

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,38 @@
22

33
import android.util.Log;
44

5+
import java.util.regex.Pattern;
6+
57
public class Logger
68
{
7-
public static void i(String format, Object ... args)
9+
10+
private static Pattern XPlexTokenPattern = Pattern.compile("(X-Plex-Token=)([^&])+");
11+
12+
private static String scrub(String text) {
13+
return XPlexTokenPattern.matcher(text).replaceAll("$1<XXXXXXXXXX>");
14+
}
15+
16+
public static void i(String format, Object ... args)
817
{
9-
String msg = String.format(format, args);
18+
String msg = scrub(String.format(format, args));
1019
Log.i("VoiceControlForPlex", msg);
1120
}
1221

1322
public static void d(String format, Object ... args)
1423
{
15-
String msg = String.format(format, args);
24+
String msg = scrub(String.format(format, args));
1625
Log.d("VoiceControlForPlex", msg);
1726
}
1827

1928
public static void w(String format, Object ... args)
2029
{
21-
String msg = String.format(format, args);
30+
String msg = scrub(String.format(format, args));
2231
Log.w("VoiceControlForPlex", msg);
2332
}
2433

2534
public static void e(String format, Object ... args)
2635
{
27-
String msg = String.format(format, args);
36+
String msg = scrub(String.format(format, args));
2837
Log.e("VoiceControlForPlex", msg);
2938
}
3039
}

0 commit comments

Comments
 (0)