diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-04-23 19:34:45 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-04-23 19:34:45 +0000 |
commit | a8f40c8c7f4b4fde3222f644e266bf716954cac6 (patch) | |
tree | 9a0e37e94bdf621b0b91c8046c65df3eb4d0134a /service | |
parent | b5f40c794badf717128b645225905948e6e5ea69 (diff) | |
parent | ebf8acdbe44fe70d070e5c9911c50d6f0e5e89c0 (diff) |
Merge changes I173f66fa,Iaa714f51 into qt-dev
* changes:
WifiController: Minor cleanups
WifiController: Defer broadcast registration
Diffstat (limited to 'service')
3 files changed, 23 insertions, 39 deletions
diff --git a/service/java/com/android/server/wifi/WifiController.java b/service/java/com/android/server/wifi/WifiController.java index 0fdfb6f51..bfa2ae033 100644 --- a/service/java/com/android/server/wifi/WifiController.java +++ b/service/java/com/android/server/wifi/WifiController.java @@ -21,8 +21,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.location.LocationManager; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; import android.net.wifi.WifiManager; import android.os.Handler; import android.os.Looper; @@ -35,6 +33,7 @@ import com.android.internal.R; import com.android.internal.util.Protocol; import com.android.internal.util.State; import com.android.internal.util.StateMachine; +import com.android.server.wifi.util.WifiPermissionsUtil; /** * WifiController is the class used to manage wifi state for various operating @@ -60,20 +59,18 @@ public class WifiController extends StateMachine { // probably rounding errors. add a margin to prevent problems private static final long DEFER_MARGIN_MS = 5; - NetworkInfo mNetworkInfo = new NetworkInfo(ConnectivityManager.TYPE_WIFI, 0, "WIFI", ""); - /* References to values tracked in WifiService */ private final ClientModeImpl mClientModeImpl; private final Looper mClientModeImplLooper; private final ActiveModeWarden mActiveModeWarden; private final WifiSettingsStore mSettingsStore; + private final FrameworkFacade mFacade; + private final WifiPermissionsUtil mWifiPermissionsUtil; private long mReEnableDelayMillis; private int mRecoveryDelayMillis; - private FrameworkFacade mFacade; - private static final int BASE = Protocol.BASE_WIFI_CONTROLLER; static final int CMD_EMERGENCY_MODE_CHANGED = BASE + 1; @@ -107,7 +104,7 @@ public class WifiController extends StateMachine { WifiController(Context context, ClientModeImpl clientModeImpl, Looper clientModeImplLooper, WifiSettingsStore wss, Looper wifiServiceLooper, FrameworkFacade f, - ActiveModeWarden amw) { + ActiveModeWarden amw, WifiPermissionsUtil wifiPermissionsUtil) { super(TAG, wifiServiceLooper); mFacade = f; mContext = context; @@ -115,6 +112,7 @@ public class WifiController extends StateMachine { mClientModeImplLooper = clientModeImplLooper; mActiveModeWarden = amw; mSettingsStore = wss; + mWifiPermissionsUtil = wifiPermissionsUtil; // CHECKSTYLE:OFF IndentationCheck addState(mDefaultState); @@ -124,12 +122,23 @@ public class WifiController extends StateMachine { addState(mEcmState, mDefaultState); // CHECKSTYLE:ON IndentationCheck + setLogRecSize(100); + setLogOnlyTransitions(false); + + // register for state updates via callbacks (vs the intents registered below) + mActiveModeWarden.registerScanOnlyCallback(mScanOnlyModeCallback); + mActiveModeWarden.registerClientModeCallback(mClientModeCallback); + + readWifiReEnableDelay(); + readWifiRecoveryDelay(); + } + + @Override + public void start() { boolean isAirplaneModeOn = mSettingsStore.isAirplaneModeOn(); boolean isWifiEnabled = mSettingsStore.isWifiToggleEnabled(); boolean isScanningAlwaysAvailable = mSettingsStore.isScanAlwaysAvailable(); - boolean isLocationModeActive = - mSettingsStore.getLocationModeSetting(mContext) - == Settings.Secure.LOCATION_MODE_OFF; + boolean isLocationModeActive = mWifiPermissionsUtil.isLocationModeEnabled(); log("isAirplaneModeOn = " + isAirplaneModeOn + ", isWifiEnabled = " + isWifiEnabled @@ -141,16 +150,7 @@ public class WifiController extends StateMachine { } else { setInitialState(mStaDisabledState); } - - setLogRecSize(100); - setLogOnlyTransitions(false); - - // register for state updates via callbacks (vs the intents registered below) - mActiveModeWarden.registerScanOnlyCallback(mScanOnlyModeCallback); - mActiveModeWarden.registerClientModeCallback(mClientModeCallback); - IntentFilter filter = new IntentFilter(); - filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); filter.addAction(WifiManager.WIFI_AP_STATE_CHANGED_ACTION); filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); filter.addAction(LocationManager.MODE_CHANGED_ACTION); @@ -159,10 +159,7 @@ public class WifiController extends StateMachine { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { - mNetworkInfo = (NetworkInfo) intent.getParcelableExtra( - WifiManager.EXTRA_NETWORK_INFO); - } else if (action.equals(WifiManager.WIFI_AP_STATE_CHANGED_ACTION)) { + if (action.equals(WifiManager.WIFI_AP_STATE_CHANGED_ACTION)) { int state = intent.getIntExtra( WifiManager.EXTRA_WIFI_AP_STATE, WifiManager.WIFI_AP_STATE_FAILED); @@ -180,15 +177,12 @@ public class WifiController extends StateMachine { } }, new IntentFilter(filter)); - - readWifiReEnableDelay(); - readWifiRecoveryDelay(); + super.start(); } private boolean checkScanOnlyModeAvailable() { // first check if Location service is disabled, if so return false - if (mSettingsStore.getLocationModeSetting(mContext) - == Settings.Secure.LOCATION_MODE_OFF) { + if (!mWifiPermissionsUtil.isLocationModeEnabled()) { return false; } return mSettingsStore.isScanAlwaysAvailable(); diff --git a/service/java/com/android/server/wifi/WifiInjector.java b/service/java/com/android/server/wifi/WifiInjector.java index 988bdf086..705ce41ba 100644 --- a/service/java/com/android/server/wifi/WifiInjector.java +++ b/service/java/com/android/server/wifi/WifiInjector.java @@ -323,7 +323,7 @@ public class WifiInjector { mClock, mWifiMetrics); mWifiController = new WifiController(mContext, mClientModeImpl, clientModeImplLooper, mSettingsStore, mWifiServiceHandlerThread.getLooper(), mFrameworkFacade, - mActiveModeWarden); + mActiveModeWarden, mWifiPermissionsUtil); mSelfRecovery = new SelfRecovery(mWifiController, mClock); mWifiMulticastLockManager = new WifiMulticastLockManager( mClientModeImpl.getMcastLockManagerFilterController(), diff --git a/service/java/com/android/server/wifi/WifiSettingsStore.java b/service/java/com/android/server/wifi/WifiSettingsStore.java index 71b4deb97..8d8d587b5 100644 --- a/service/java/com/android/server/wifi/WifiSettingsStore.java +++ b/service/java/com/android/server/wifi/WifiSettingsStore.java @@ -225,14 +225,4 @@ public class WifiSettingsStore { Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1; } - - /** - * Get Location Mode settings for the context - * @param context - * @return Location Mode setting - */ - public int getLocationModeSetting(Context context) { - return Settings.Secure.getInt(context.getContentResolver(), - Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); - } } |