diff options
author | Quang Anh Luong <qal@google.com> | 2023-10-30 18:21:13 +0900 |
---|---|---|
committer | Quang Anh Luong <qal@google.com> | 2023-11-01 11:03:37 +0900 |
commit | 8fe66bc11f8a9b6a63ed86c2868eaf98e2d39ba3 (patch) | |
tree | a21aaa7cfb03132a8a7ec7c15301c40de31fd81d | |
parent | 5706fa57c6b95e12ec4d4b2c1e221b910983c1ef (diff) | |
download | wifi-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
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 |