summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuang Anh Luong <qal@google.com>2023-10-30 18:21:13 +0900
committerQuang Anh Luong <qal@google.com>2023-11-01 11:03:37 +0900
commit8fe66bc11f8a9b6a63ed86c2868eaf98e2d39ba3 (patch)
treea21aaa7cfb03132a8a7ec7c15301c40de31fd81d
parent5706fa57c6b95e12ec4d4b2c1e221b910983c1ef (diff)
downloadwifi-8fe66bc11f8a9b6a63ed86c2868eaf98e2d39ba3.tar.gz
Enable WifiTrackerLib verbose logging for userdebug builds
Enable WifiTrackerLib verbose logging for userdebug builds, but keep the verbose summary tied to the wifi service verbose logging level. We also need to change the verbose logging flag from static to non-static, since the static BaseWifiTracker object is shared between all clients in SystemUI, including the QuickSettings which we do want to show verbose logging for. Bug: 301199999 Bug: 279512950 Test: atest WifiTrackerLibTests, manually verify verbose logging (but not summaries) is shown for userdebug build when wifi verbose logging is disabled. Change-Id: I3464d56c704e4b5dbb386f26c87283d8b73bd279
-rw-r--r--libs/WifiTrackerLib/res/values/config.xml2
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java16
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java10
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java10
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java10
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java4
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java7
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java31
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java1
9 files changed, 60 insertions, 31 deletions
diff --git a/libs/WifiTrackerLib/res/values/config.xml b/libs/WifiTrackerLib/res/values/config.xml
index 91df95872..8ec73f5c2 100644
--- a/libs/WifiTrackerLib/res/values/config.xml
+++ b/libs/WifiTrackerLib/res/values/config.xml
@@ -16,5 +16,5 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Enables verbose logging on user debug builds by default -->
- <bool name="wifitrackerlib_enable_verbose_logging_for_userdebug">false</bool>
+ <bool name="wifitrackerlib_enable_verbose_logging_for_userdebug">true</bool>
</resources>
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
index 5b1e78d9b..c7f6bba1f 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
@@ -42,7 +42,6 @@ import android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.SharedConnectivityClientCallback;
import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
-import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.telephony.SubscriptionManager;
@@ -92,10 +91,8 @@ import java.util.concurrent.Executor;
public class BaseWifiTracker {
private final String mTag;
- private static boolean sVerboseLogging;
-
- public static boolean isVerboseLoggingEnabled() {
- return BaseWifiTracker.sVerboseLogging;
+ public boolean isVerboseLoggingEnabled() {
+ return mInjector.isVerboseLoggingEnabled();
}
private int mWifiState = WifiManager.WIFI_STATE_DISABLED;
@@ -369,13 +366,6 @@ public class BaseWifiTracker {
mScanResultUpdater = new ScanResultUpdater(clock,
maxScanAgeMillis + scanIntervalMillis);
mScanner = new BaseWifiTracker.Scanner(workerHandler.getLooper());
- if (mContext.getResources().getBoolean(
- R.bool.wifitrackerlib_enable_verbose_logging_for_userdebug)
- && Build.TYPE.equals("userdebug")) {
- sVerboseLogging = true;
- } else {
- sVerboseLogging = mWifiManager.isVerboseLoggingEnabled();
- }
}
/**
@@ -385,7 +375,7 @@ public class BaseWifiTracker {
mIsScanningDisabled = true;
// This method indicates SystemUI usage, which shouldn't output verbose logs since it's
// always up.
- sVerboseLogging = false;
+ mInjector.disableVerboseLogging();
}
/**
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java
index 090592dea..9f98ed777 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/MergedCarrierEntry.java
@@ -19,7 +19,7 @@ package com.android.wifitrackerlib;
import static android.net.wifi.WifiInfo.DEFAULT_MAC_ADDRESS;
import static android.net.wifi.WifiInfo.sanitizeSsid;
-import static com.android.wifitrackerlib.Utils.getVerboseLoggingDescription;
+import static com.android.wifitrackerlib.Utils.getVerboseSummary;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
@@ -62,10 +62,10 @@ public class MergedCarrierEntry extends WifiEntry {
public String getSummary(boolean concise) {
StringJoiner sj = new StringJoiner(mContext.getString(
R.string.wifitrackerlib_summary_separator));
- if (!concise) {
- final String verboseLoggingDescription = getVerboseLoggingDescription(this);
- if (!TextUtils.isEmpty(verboseLoggingDescription)) {
- sj.add(verboseLoggingDescription);
+ if (!concise && isVerboseSummaryEnabled()) {
+ final String verboseSummary = getVerboseSummary(this);
+ if (!TextUtils.isEmpty(verboseSummary)) {
+ sj.add(verboseSummary);
}
}
return sj.toString();
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
index f7785ff56..8b945e865 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
@@ -30,7 +30,7 @@ import static com.android.wifitrackerlib.Utils.getConnectedDescription;
import static com.android.wifitrackerlib.Utils.getConnectingDescription;
import static com.android.wifitrackerlib.Utils.getDisconnectedDescription;
import static com.android.wifitrackerlib.Utils.getMeteredDescription;
-import static com.android.wifitrackerlib.Utils.getVerboseLoggingDescription;
+import static com.android.wifitrackerlib.Utils.getVerboseSummary;
import android.content.Context;
import android.net.ConnectivityManager;
@@ -207,10 +207,10 @@ public class PasspointWifiEntry extends WifiEntry implements WifiEntry.WifiEntry
sj.add(meteredDescription);
}
- if (!concise) {
- String verboseLoggingDescription = getVerboseLoggingDescription(this);
- if (!TextUtils.isEmpty(verboseLoggingDescription)) {
- sj.add(verboseLoggingDescription);
+ if (!concise && isVerboseSummaryEnabled()) {
+ String verboseSummary = getVerboseSummary(this);
+ if (!TextUtils.isEmpty(verboseSummary)) {
+ sj.add(verboseSummary);
}
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
index 6e64ad713..9ab30b015 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
@@ -43,7 +43,7 @@ import static com.android.wifitrackerlib.Utils.getMeteredDescription;
import static com.android.wifitrackerlib.Utils.getSecurityTypesFromScanResult;
import static com.android.wifitrackerlib.Utils.getSecurityTypesFromWifiConfiguration;
import static com.android.wifitrackerlib.Utils.getSingleSecurityTypeFromMultipleSecurityTypes;
-import static com.android.wifitrackerlib.Utils.getVerboseLoggingDescription;
+import static com.android.wifitrackerlib.Utils.getVerboseSummary;
import android.annotation.SuppressLint;
import android.app.admin.DevicePolicyManager;
@@ -223,10 +223,10 @@ public class StandardWifiEntry extends WifiEntry {
sj.add(meteredDescription);
}
- if (!concise) {
- final String verboseLoggingDescription = getVerboseLoggingDescription(this);
- if (!TextUtils.isEmpty(verboseLoggingDescription)) {
- sj.add(verboseLoggingDescription);
+ if (!concise && isVerboseSummaryEnabled()) {
+ final String verboseSummary = getVerboseSummary(this);
+ if (!TextUtils.isEmpty(verboseSummary)) {
+ sj.add(verboseSummary);
}
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
index ad5231d4e..e02754c6e 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
@@ -522,8 +522,8 @@ public class Utils {
}
}
- static String getVerboseLoggingDescription(@NonNull WifiEntry wifiEntry) {
- if (!BaseWifiTracker.isVerboseLoggingEnabled() || wifiEntry == null) {
+ static String getVerboseSummary(@NonNull WifiEntry wifiEntry) {
+ if (wifiEntry == null) {
return "";
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
index 4d50edb39..5901f9950 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
@@ -1251,4 +1251,11 @@ public class WifiEntry {
*/
void onExecute();
}
+
+ /**
+ * Whether this WifiEntry is using a verbose summary.
+ */
+ public boolean isVerboseSummaryEnabled() {
+ return mInjector.isVerboseSummaryEnabled();
+ }
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java
index f9f3eed91..c70a88a41 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiTrackerInjector.java
@@ -18,6 +18,8 @@ package com.android.wifitrackerlib;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
+import android.net.wifi.WifiManager;
+import android.os.Build;
import android.os.UserManager;
import android.provider.DeviceConfig;
import android.util.ArraySet;
@@ -34,13 +36,17 @@ public class WifiTrackerInjector {
@NonNull private final Context mContext;
private final boolean mIsDemoMode;
+ private final WifiManager mWifiManager;
private final UserManager mUserManager;
private final DevicePolicyManager mDevicePolicyManager;
@NonNull private final Set<String> mNoAttributionAnnotationPackages;
+ private boolean mIsUserDebugVerboseLoggingEnabled;
+ private boolean mVerboseLoggingDisabledOverride = false;
// TODO(b/201571677): Migrate the rest of the common objects to WifiTrackerInjector.
WifiTrackerInjector(@NonNull Context context) {
mContext = context;
+ mWifiManager = context.getSystemService(WifiManager.class);
mIsDemoMode = NonSdkApiWrapper.isDemoMode(context);
mUserManager = context.getSystemService(UserManager.class);
mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
@@ -50,6 +56,9 @@ public class WifiTrackerInjector {
for (int i = 0; i < noAttributionAnnotationPackages.length; i++) {
mNoAttributionAnnotationPackages.add(noAttributionAnnotationPackages[i]);
}
+ mIsUserDebugVerboseLoggingEnabled = context.getResources().getBoolean(
+ R.bool.wifitrackerlib_enable_verbose_logging_for_userdebug)
+ && Build.TYPE.equals("userdebug");
}
@NonNull Context getContext() {
@@ -79,4 +88,26 @@ public class WifiTrackerInjector {
return DeviceConfig.getBoolean(DEVICE_CONFIG_NAMESPACE,
"shared_connectivity_enabled", false);
}
+
+ /**
+ * Whether verbose logging is enabled.
+ */
+ public boolean isVerboseLoggingEnabled() {
+ return !mVerboseLoggingDisabledOverride
+ && (mWifiManager.isVerboseLoggingEnabled() || mIsUserDebugVerboseLoggingEnabled);
+ }
+
+ /**
+ * Whether verbose summaries should be shown in WifiEntry.
+ */
+ public boolean isVerboseSummaryEnabled() {
+ return !mVerboseLoggingDisabledOverride && mWifiManager.isVerboseLoggingEnabled();
+ }
+
+ /**
+ * Permanently disables verbose logging.
+ */
+ public void disableVerboseLogging() {
+ mVerboseLoggingDisabledOverride = true;
+ }
}
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
index 5270d7b91..932b3a0bb 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
@@ -2308,6 +2308,7 @@ public class WifiPickerTrackerTest {
ArgumentCaptor.forClass(WifiScanner.ScanListener.class);
verify(mWifiScanner, never()).startScan(any(), mScanListenerCaptor.capture());
verify(mMockWifiManager, never()).startScan();
+ verify(mInjector).disableVerboseLogging();
}
@Test