Skip to content

Commit 86ddb86

Browse files
author
Chris Bellew
committed
Fixed a few bugs in some of the language parsing; Added French Usage Examples button.
1 parent 6b2e7a4 commit 86ddb86

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public int onStartCommand(Intent intent, int flags, int startId) {
9494
// Received spoken query from the RecognizerIntent
9595
ArrayList<String> voiceResults = intent.getExtras().getStringArrayList(RecognizerIntent.EXTRA_RESULTS);
9696
for(String q : voiceResults) {
97+
Logger.d("q: %s", q);
9798
if(q.matches(getString(R.string.pattern_recognition))) {
9899
queryText = q;
99100
break;
@@ -163,6 +164,7 @@ private void startup() {
163164
PlexServer defaultServer = gson.fromJson(mPrefs.getString("Server", ""), PlexServer.class);
164165
if(specifiedServer != null && client != null && !specifiedServer.name.equals(getResources().getString(R.string.scan_all))) {
165166
// got a specified server and client from a shortcut
167+
Logger.d("Got hardcoded server and client from shortcut");
166168
plexmediaServers = new ConcurrentHashMap<String, PlexServer>();
167169
plexmediaServers.put(specifiedServer.name, specifiedServer);
168170
setClient();
@@ -172,11 +174,13 @@ private void startup() {
172174
// return;
173175
} else if(specifiedServer == null && defaultServer != null && !defaultServer.name.equals(getResources().getString(R.string.scan_all))) {
174176
// Use the server specified in the main settings
177+
Logger.d("Using server and client specified in main settings");
175178
plexmediaServers = new ConcurrentHashMap<String, PlexServer>();
176179
plexmediaServers.put(defaultServer.name, defaultServer);
177180
setClient();
178181
} else {
179182
// Scan All was chosen
183+
Logger.d("Scan all was chosen");
180184
if(mServiceIntent == null) {
181185
mServiceIntent = new Intent(this, GDMService.class);
182186
}
@@ -193,10 +197,12 @@ private void setClient() {
193197
Matcher matcher = p.matcher(queryText);
194198
if(!matcher.find()) {
195199
// Client not specified, so use default
200+
Logger.d("Using default client since none specified in query");
196201
actionToDo = handleVoiceSearch();
197202
actionToDo.run();
198203
} else {
199204
// Get available clients
205+
Logger.d("getting all available clients");
200206
serversScanned = 0;
201207
clients = new ArrayList<PlexClient>();
202208
for(PlexServer server : plexmediaServers.values()) {
@@ -234,15 +240,15 @@ private myRunnable handleVoiceSearch() {
234240
Matcher matcher = p.matcher(queryText);
235241

236242
if(matcher.find()) {
237-
String specifiedClient = matcher.group(1).toLowerCase();
243+
String specifiedClient = matcher.group(2).toLowerCase();
238244

239245
Logger.d("Clients: %d", clients.size());
240-
Logger.d("query text now %s", queryText);
246+
Logger.d("Specified client: %s", specifiedClient);
241247
for(int i=0;i<clients.size();i++) {
242248
if(clients.get(i).name.toLowerCase().equals(specifiedClient)) {
243249
client = clients.get(i);
244-
Logger.d("Specified client %s", client.name);
245-
queryText = queryText.replaceAll(" on (.*)$", "");
250+
queryText = queryText.replaceAll(getString(R.string.pattern_on_client), "$1");
251+
Logger.d("query text now %s", queryText);
246252
break;
247253
}
248254
}
@@ -1090,6 +1096,8 @@ public void onFailure(Throwable error) {
10901096
feedback.e(getResources().getString(R.string.got_error), error.getMessage());
10911097
}
10921098
});
1099+
} else {
1100+
feedback.e(getResources().getString(R.string.couldnt_find), queryTerm);
10931101
}
10941102
}
10951103
}
9.72 KB
Loading

Voice Control For Plex/src/main/res/values-fr/patterns.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ adding translations, please do not modify (.*), $1, ([0-9]+), etc.
1111
-->
1212
<item name="pattern_recognition" type="string">^(((lancer|reprendre lecture|écouter|lancer film) (.+)( sur (.+))?)|((position) (.+)( sur (.+))?)|((pause|reprise|arrêt) lecture( sur (.+))?))$</item>
1313

14-
<item name="pattern_on_client" type="string"> sur (.+)$</item>
14+
<item name="pattern_on_client" type="string">(.+) sur (.+)$</item>
1515
<item name="pattern_resume_watching" type="string">^reprendre lecture (.+)</item>
1616
<item name="pattern_watch" type="string">lancer $1</item>
1717
<item name="pattern_watch_movie" type="string">lancer film (.+)</item>

Voice Control For Plex/src/main/res/values/patterns.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ adding translations, please do not modify (.*), $1, ([0-9]+), etc.
1111
-->
1212
<item name="pattern_recognition" type="string">^(((watch|resume watching|listen to|watch movie) (.+)( on (.+))?)|((offset|timecode) (.+)( on (.+))?)|((pause|stop|resume) playback( on (.+))?))$</item>
1313

14-
<item name="pattern_on_client" type="string"> on (.+)$</item>
14+
<item name="pattern_on_client" type="string">(.+) on (.+)$</item>
1515
<item name="pattern_resume_watching" type="string">^resume watching (.+)</item>
1616
<item name="pattern_watch" type="string">watch $1</item>
1717
<item name="pattern_watch_movie" type="string">watch movie (.+)</item>

0 commit comments

Comments
 (0)