Skip to content

Commit 43e9f4e

Browse files
author
Chris Bellew
committed
Show error when trying to scan for servers or clients if there's no WiFi connection; Fixed display of tasker/utter!/autovoice menu items.
1 parent 6bdac61 commit 43e9f4e

File tree

4 files changed

+45
-19
lines changed

4 files changed

+45
-19
lines changed

Voice Control For Plex/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<uses-permission android:name="com.mohammadag.googlesearchapi.permission.ACCESS_GGOGLE_SEARCH_API" />
88
<uses-permission android:name="android.permission.INTERNET" />
99
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
10+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
1011
<uses-permission android:name="net.dinglisch.android.tasker.PERMISSION_RUN_TASKS" />
1112
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
1213
<uses-permission android:name="android.permission.RECORD_AUDIO" />

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

Lines changed: 42 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@
1313
import android.app.AlertDialog;
1414
import android.app.Dialog;
1515
import android.content.BroadcastReceiver;
16+
import android.content.Context;
1617
import android.content.DialogInterface;
1718
import android.content.Intent;
1819
import android.content.IntentFilter;
1920
import android.content.SharedPreferences;
2021
import android.content.pm.PackageInfo;
2122
import android.content.pm.PackageManager;
2223
import android.content.res.AssetManager;
24+
import android.net.ConnectivityManager;
25+
import android.net.NetworkInfo;
2326
import android.net.Uri;
2427
import android.os.Bundle;
2528
import android.os.Environment;
@@ -73,8 +76,6 @@ public class MainActivity extends Activity implements TextToSpeech.OnInitListene
7376
private SharedPreferences mPrefs;
7477
private SharedPreferences.Editor mPrefsEditor;
7578

76-
private Menu menu;
77-
7879
private int serversScanned = 0;
7980
AlertDialog.Builder helpDialog;
8081

@@ -96,20 +97,6 @@ protected void onCreate(Bundle savedInstanceState) {
9697

9798
setContentView(R.layout.main);
9899

99-
if (hasValidAutoVoice() || hasValidUtter()) {
100-
101-
} else if (!hasValidGoogleSearch()) {
102-
if (!hasValidTasker()) {
103-
menu.findItem(R.id.menu_install_tasker).setVisible(true);
104-
}
105-
if (!hasValidUtter()) {
106-
menu.findItem(R.id.menu_install_utter).setVisible(true);
107-
}
108-
if (!hasValidAutoVoice()) {
109-
menu.findItem(R.id.menu_install_autovoice).setVisible(true);
110-
}
111-
}
112-
113100
this.server = gson.fromJson(mPrefs.getString("Server", ""), PlexServer.class);
114101
this.client = gson.fromJson(mPrefs.getString("Client", ""), PlexClient.class);
115102

@@ -404,8 +391,12 @@ public void onClick(DialogInterface dialog, int id) {
404391
});
405392
usageDialog.show();
406393
}
407-
394+
408395
private void searchForPlexServers() {
396+
if(!isWifiConnected()) {
397+
showNoWifiDialog();
398+
return;
399+
}
409400
searchDialog = new Dialog(this);
410401

411402
searchDialog.setContentView(R.layout.search_popup);
@@ -593,6 +584,10 @@ public void onFailure(Throwable error) {
593584
}
594585

595586
private void getClients() {
587+
if(!isWifiConnected()) {
588+
showNoWifiDialog();
589+
return;
590+
}
596591
if(server == null || server.name.equals(getResources().getString(R.string.scan_all))) {
597592
scanForClients();
598593
} else {
@@ -718,7 +713,18 @@ private void saveSettings() {
718713
public boolean onCreateOptionsMenu(Menu _menu) {
719714
// Inflate the menu; this adds items to the action bar if it is present.
720715
getMenuInflater().inflate(R.menu.menu_main, _menu);
721-
menu = _menu;
716+
if (!hasValidAutoVoice() || !hasValidUtter()) {
717+
_menu.findItem(R.id.menu_tasker_import).setVisible(false);
718+
if (!hasValidTasker()) {
719+
_menu.findItem(R.id.menu_install_tasker).setVisible(true);
720+
}
721+
if (!hasValidUtter()) {
722+
_menu.findItem(R.id.menu_install_utter).setVisible(true);
723+
}
724+
if (!hasValidAutoVoice()) {
725+
_menu.findItem(R.id.menu_install_autovoice).setVisible(true);
726+
}
727+
}
722728
return true;
723729
}
724730

@@ -805,6 +811,24 @@ public void onClick(DialogInterface d, int n) {
805811
}
806812
}
807813
}
814+
815+
public boolean isWifiConnected() {
816+
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
817+
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
818+
return mWifi.isConnected();
819+
}
820+
821+
public void showNoWifiDialog() {
822+
AlertDialog.Builder usageDialog = new AlertDialog.Builder(MainActivity.this);
823+
usageDialog.setTitle(R.string.no_wifi_connection);
824+
usageDialog.setMessage(R.string.no_wifi_connection_message);
825+
usageDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
826+
public void onClick(DialogInterface dialog, int id) {
827+
dialog.dismiss();
828+
}
829+
});
830+
usageDialog.show();
831+
}
808832
}
809833

810834

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,5 +99,4 @@ public static boolean isVersionLessThan(String v1, String v2) {
9999
VersionComparator cmp = new VersionComparator();
100100
return cmp.compare(v1, v2) < 0;
101101
}
102-
103102
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,6 @@
6060
<string name="widget_instructions">To trigger voice recognition, simply add the <b>Voice Control for Plex</b> widget on to your home screen.</string>
6161
<string name="title_changelog">What\'s New</string>
6262
<string name="changelog_close">Close</string>
63+
<string name="no_wifi_connection">No WiFi Connection</string>
64+
<string name="no_wifi_connection_message">A WiFi connection is required. Please check your WiFi settings and try again.</string>
6365
</resources>

0 commit comments

Comments
 (0)