summaryrefslogtreecommitdiff
path: root/src/com/android/networkrecommendation/wakeup/WifiWakeupController.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/networkrecommendation/wakeup/WifiWakeupController.java')
-rw-r--r--src/com/android/networkrecommendation/wakeup/WifiWakeupController.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/com/android/networkrecommendation/wakeup/WifiWakeupController.java b/src/com/android/networkrecommendation/wakeup/WifiWakeupController.java
index a9aa61f..4c9b4c1 100644
--- a/src/com/android/networkrecommendation/wakeup/WifiWakeupController.java
+++ b/src/com/android/networkrecommendation/wakeup/WifiWakeupController.java
@@ -28,6 +28,7 @@ import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.Handler;
import android.os.PowerManager;
+import android.os.UserManager;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
@@ -65,6 +66,7 @@ public class WifiWakeupController {
private final ContentResolver mContentResolver;
private final WifiManager mWifiManager;
private final PowerManager mPowerManager;
+ private final UserManager mUserManager;
private final WifiWakeupNetworkSelector mWifiWakeupNetworkSelector;
private final Handler mHandler;
private final WifiWakeupHelper mWifiWakeupHelper;
@@ -82,6 +84,7 @@ public class WifiWakeupController {
private boolean mAirplaneModeEnabled;
private boolean mAutopilotEnabledWifi;
private boolean mPowerSaverModeOn;
+ private boolean mWifiConfigRestricted;
public WifiWakeupController(
Context context,
@@ -89,6 +92,7 @@ public class WifiWakeupController {
Handler handler,
WifiManager wifiManager,
PowerManager powerManager,
+ UserManager userManager,
WifiWakeupNetworkSelector wifiWakeupNetworkSelector,
WifiWakeupHelper wifiWakeupHelper) {
mContext = context;
@@ -98,6 +102,7 @@ public class WifiWakeupController {
mStarted = new AtomicBoolean(false);
mWifiManager = wifiManager;
mPowerManager = powerManager;
+ mUserManager = userManager;
mWifiWakeupNetworkSelector = wifiWakeupNetworkSelector;
mContentObserver =
new ContentObserver(mHandler) {
@@ -115,6 +120,11 @@ public class WifiWakeupController {
Settings.Global.AIRPLANE_MODE_ON,
0)
== 1;
+ Blog.d(
+ TAG,
+ "onChange: [mWifiWakeupEnabled=%b,mAirplaneModeEnabled=%b]",
+ mWifiWakeupEnabled,
+ mAirplaneModeEnabled);
}
};
}
@@ -138,6 +148,9 @@ public class WifiWakeupController {
} else if (PowerManager.ACTION_POWER_SAVE_MODE_CHANGED.equals(
intent.getAction())) {
handlePowerSaverModeChanged();
+ } else if (RoboCompatUtil.ACTION_USER_RESTRICTIONS_CHANGED.equals(
+ intent.getAction())) {
+ handleUserRestrictionsChanged();
}
} catch (RuntimeException re) {
// TODO(b/35044022) Remove try/catch after a couple of releases when we are confident
@@ -160,6 +173,7 @@ public class WifiWakeupController {
filter.addAction(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION);
filter.addAction(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
filter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
+ filter.addAction(RoboCompatUtil.ACTION_USER_RESTRICTIONS_CHANGED);
// TODO(b/33695273): conditionally register this receiver based on wifi enabled setting
mContext.registerReceiver(mBroadcastReceiver, filter, null, mHandler);
mContentResolver.registerContentObserver(
@@ -172,6 +186,7 @@ public class WifiWakeupController {
mContentObserver);
mContentObserver.onChange(true);
handlePowerSaverModeChanged();
+ handleUserRestrictionsChanged();
handleWifiApStateChanged();
handleConfiguredNetworksChanged();
handleWifiStateChanged(true);
@@ -198,6 +213,11 @@ public class WifiWakeupController {
Blog.v(TAG, "handleWifiApStateChanged: %d", mWifiApState);
}
+ private void handleUserRestrictionsChanged() {
+ mWifiConfigRestricted = mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_WIFI);
+ Blog.v(TAG, "handleUserRestrictionsChanged: %b", mWifiConfigRestricted);
+ }
+
private void handleConfiguredNetworksChanged() {
List<WifiConfiguration> wifiConfigurations = mWifiManager.getConfiguredNetworks();
if (wifiConfigurations == null) {
@@ -289,7 +309,7 @@ public class WifiWakeupController {
}
private void handleScanResultsAvailable() {
- if (!mWifiWakeupEnabled) {
+ if (!mWifiWakeupEnabled || mWifiConfigRestricted) {
return;
}
List<ScanResult> scanResults = mWifiManager.getScanResults();