WifiStateChangeService: exit after trying for 2 minutes
It was tried until it got an IP address, but that will only happen if there is a wifi device configured. Since WifiStateChangeService is started when F-Droid starts, WifiStateChangeService could run for days if someone never connected to WiFi in that time. WifiStateChangeService is also started by NETWORK_STATE_CHANGED_ACTION so it should start each time there is a change to the WiFi connection.
This commit is contained in:
parent
8a8ca2e6f7
commit
6448491751
@ -101,7 +101,7 @@ public class WifiStateChangeService extends IntentService {
|
||||
WifiInfo wifiInfo = null;
|
||||
|
||||
int wifiState = wifiManager.getWifiState();
|
||||
|
||||
int retryCount = 0;
|
||||
while (FDroidApp.ipAddressString == null) {
|
||||
if (isInterrupted()) { // can be canceled by a change via WifiStateChangeReceiver
|
||||
return;
|
||||
@ -116,7 +116,7 @@ public class WifiStateChangeService extends IntentService {
|
||||
try {
|
||||
FDroidApp.subnetInfo = new SubnetUtils(FDroidApp.ipAddressString, netmask).getInfo();
|
||||
} catch (IllegalArgumentException e) {
|
||||
// catch this mystery error: "java.lang.IllegalArgumentException: Could not parse [null/24]"
|
||||
// catch mystery: "java.lang.IllegalArgumentException: Could not parse [null/24]"
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@ -132,6 +132,11 @@ public class WifiStateChangeService extends IntentService {
|
||||
setIpInfoFromNetworkInterface();
|
||||
}
|
||||
|
||||
if (retryCount > 120) {
|
||||
return;
|
||||
}
|
||||
retryCount++;
|
||||
|
||||
if (FDroidApp.ipAddressString == null) {
|
||||
Thread.sleep(1000);
|
||||
Utils.debugLog(TAG, "waiting for an IP address...");
|
||||
|
Loading…
x
Reference in New Issue
Block a user