Merge "Honor country code change in wifi disabled state" into mnc-dr-dev
diff --git a/service/java/com/android/server/wifi/DummyWifiLogger.java b/service/java/com/android/server/wifi/DummyWifiLogger.java
new file mode 100644
index 0000000..2727b8c
--- /dev/null
+++ b/service/java/com/android/server/wifi/DummyWifiLogger.java
@@ -0,0 +1,29 @@
+
+package com.android.server.wifi;
+
+import android.util.Log;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
+class DummyWifiLogger {
+
+ public DummyWifiLogger() { }
+
+ public synchronized void startLogging(boolean verboseEnabled) { }
+
+ public synchronized void startPacketLog() { }
+
+ public synchronized void stopPacketLog() { }
+
+ public synchronized void stopLogging() { }
+
+ public synchronized void captureBugReportData(int reason) { }
+
+ public synchronized void captureAlertData(int errorCode, byte[] alertData) { }
+
+ public synchronized void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ pw.println("*** firmware logging disabled, no debug data ****");
+ pw.println("set config_wifi_enable_wifi_firmware_debugging to enable");
+ }
+}
\ No newline at end of file
diff --git a/service/java/com/android/server/wifi/WifiLogger.java b/service/java/com/android/server/wifi/WifiLogger.java
index 8add779..c3f6510 100644
--- a/service/java/com/android/server/wifi/WifiLogger.java
+++ b/service/java/com/android/server/wifi/WifiLogger.java
@@ -35,7 +35,7 @@
/**
* Tracks various logs for framework
*/
-class WifiLogger {
+class WifiLogger extends DummyWifiLogger {
private static final String TAG = "WifiLogger";
private static final boolean DBG = false;
@@ -92,6 +92,7 @@
mWifiStateMachine = wifiStateMachine;
}
+ @Override
public synchronized void startLogging(boolean verboseEnabled) {
mFirmwareVersion = WifiNative.getFirmwareVersion();
mDriverVersion = WifiNative.getDriverVersion();
@@ -112,6 +113,7 @@
}
}
+ @Override
public synchronized void startPacketLog() {
if (mPerPacketRingBuffer != null) {
startLoggingRingBuffer(mPerPacketRingBuffer);
@@ -120,6 +122,7 @@
}
}
+ @Override
public synchronized void stopPacketLog() {
if (mPerPacketRingBuffer != null) {
stopLoggingRingBuffer(mPerPacketRingBuffer);
@@ -128,6 +131,7 @@
}
}
+ @Override
public synchronized void stopLogging() {
if (mLogLevel != VERBOSE_NO_LOG) {
//resetLogHandler only can be used when you terminate all logging since all handler will
@@ -143,17 +147,20 @@
}
}
+ @Override
public synchronized void captureBugReportData(int reason) {
BugReport report = captureBugreport(reason, true);
mLastBugReports.addLast(report);
}
+ @Override
public synchronized void captureAlertData(int errorCode, byte[] alertData) {
BugReport report = captureBugreport(errorCode, /* captureFWDump = */ true);
report.alertData = alertData;
mLastAlerts.addLast(report);
}
+ @Override
public synchronized void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
pw.println("Chipset information :-----------------------------------------------");
pw.println("FW Version is: " + mFirmwareVersion);
@@ -236,7 +243,7 @@
}
}
- static class LimitedCircularArray<E> {
+ private static class LimitedCircularArray<E> {
private CircularArray<E> mArray;
private int mMax;
LimitedCircularArray(int max) {
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index 355a634..87ed29c 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -194,7 +194,7 @@
private WifiAutoJoinController mWifiAutoJoinController;
private INetworkManagementService mNwService;
private ConnectivityManager mCm;
- private WifiLogger mWifiLogger;
+ private DummyWifiLogger mWifiLogger;
private WifiApConfigStore mWifiApConfigStore;
private final boolean mP2pSupported;
private final AtomicBoolean mP2pConnected = new AtomicBoolean(false);
@@ -1124,7 +1124,15 @@
mWifiAutoJoinController = new WifiAutoJoinController(context, this,
mWifiConfigStore, mWifiConnectionStatistics, mWifiNative);
mWifiMonitor = new WifiMonitor(this, mWifiNative);
- mWifiLogger = new WifiLogger(this);
+
+ boolean enableFirmwareLogs = mContext.getResources().getBoolean(
+ R.bool.config_wifi_enable_wifi_firmware_debugging);
+
+ if (enableFirmwareLogs) {
+ mWifiLogger = new WifiLogger(this);
+ } else {
+ mWifiLogger = new DummyWifiLogger();
+ }
mWifiInfo = new WifiInfo();
mSupplicantStateTracker = new SupplicantStateTracker(context, this, mWifiConfigStore,
@@ -8477,6 +8485,13 @@
}
return NOT_HANDLED;
case WifiMonitor.NETWORK_CONNECTION_EVENT:
+ mWifiInfo.setBSSID((String) message.obj);
+ mLastNetworkId = message.arg1;
+ mWifiInfo.setNetworkId(mLastNetworkId);
+ if(!mLastBssid.equals((String) message.obj)) {
+ mLastBssid = (String) message.obj;
+ sendNetworkStateChangeBroadcast(mLastBssid);
+ }
break;
case CMD_RSSI_POLL:
if (message.arg1 == mRssiPollToken) {