Upgrade new DEBUG lint rules to error

DEBUG log fields should be final and disabled under most circumstances.
Upgrade the recently added Lint check to an error.

For existing violations that have a justifying comment or rationale,
suppress the error. For violations with no such rationale, make them
compliant.

Bug: 436095548
Test: presubmit + m lint-checks
Flag: EXEMPT trivial lint compliance fixes
Change-Id: I699009f96ee2e3a8a35c4e5ef9d484eea64329c4
diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java
index f8f846d..f888b50d 100644
--- a/core/java/android/app/FragmentManager.java
+++ b/core/java/android/app/FragmentManager.java
@@ -639,6 +639,7 @@
  * Container for fragments associated with an activity.
  */
 final class FragmentManagerImpl extends FragmentManager implements LayoutInflater.Factory2 {
+    @SuppressWarnings("DebugNonFinal")
     static boolean DEBUG = false;
     static final String TAG = "FragmentManager";
     
diff --git a/core/java/android/app/LoaderManager.java b/core/java/android/app/LoaderManager.java
index a70d493..4ece486 100644
--- a/core/java/android/app/LoaderManager.java
+++ b/core/java/android/app/LoaderManager.java
@@ -210,6 +210,8 @@
 
 class LoaderManagerImpl extends LoaderManager {
     static final String TAG = "LoaderManager";
+    // As this field is toggled by a public API, it cannot be made final.
+    @SuppressWarnings("DebugNonFinal")
     static boolean DEBUG = false;
 
     // These are the currently active loaders.  A loader is here
diff --git a/services/core/java/com/android/server/am/ComponentAliasResolver.java b/services/core/java/com/android/server/am/ComponentAliasResolver.java
index 5689038..71e3a2c 100644
--- a/services/core/java/com/android/server/am/ComponentAliasResolver.java
+++ b/services/core/java/com/android/server/am/ComponentAliasResolver.java
@@ -57,7 +57,7 @@
 @Deprecated
 public class ComponentAliasResolver {
     private static final String TAG = "ComponentAliasResolver";
-    private static final boolean DEBUG = true;
+    private static final boolean DEBUG = false;
 
     /**
      * This flag has to be enabled for the "android" package to use component aliases.
diff --git a/services/core/java/com/android/server/am/UserSwitchingDialog.java b/services/core/java/com/android/server/am/UserSwitchingDialog.java
index a1cc9dc..5b018ad 100644
--- a/services/core/java/com/android/server/am/UserSwitchingDialog.java
+++ b/services/core/java/com/android/server/am/UserSwitchingDialog.java
@@ -67,6 +67,7 @@
     private static final long TRACE_TAG = Trace.TRACE_TAG_ACTIVITY_MANAGER;
 
     // User switching doesn't happen that frequently, so it doesn't hurt to have it always on
+    @SuppressWarnings("DebugTrue")
     protected static final boolean DEBUG = true;
 
     private static final long DIALOG_SHOW_HIDE_ANIMATION_DURATION_MS = 300;
diff --git a/services/core/java/com/android/server/audio/SpatializerHelper.java b/services/core/java/com/android/server/audio/SpatializerHelper.java
index 00afde4..17899b1 100644
--- a/services/core/java/com/android/server/audio/SpatializerHelper.java
+++ b/services/core/java/com/android/server/audio/SpatializerHelper.java
@@ -69,7 +69,7 @@
 public class SpatializerHelper {
 
     private static final String TAG = "AS.SpatializerHelper";
-    private static final boolean DEBUG = true;
+    private static final boolean DEBUG = false;
     private static final boolean DEBUG_MORE = false;
 
     private static void logd(String s) {
diff --git a/services/core/java/com/android/server/input/debug/TouchpadVisualizationView.java b/services/core/java/com/android/server/input/debug/TouchpadVisualizationView.java
index eeec5cc..ec3b2d5 100644
--- a/services/core/java/com/android/server/input/debug/TouchpadVisualizationView.java
+++ b/services/core/java/com/android/server/input/debug/TouchpadVisualizationView.java
@@ -35,7 +35,7 @@
 
 public class TouchpadVisualizationView extends View {
     private static final String TAG = "TouchpadVizMain";
-    private static final boolean DEBUG = true;
+    private static final boolean DEBUG = false;
     private static final float DEFAULT_RES_X = 47f;
     private static final float DEFAULT_RES_Y = 45f;
     private static final float MAX_TRACE_HISTORY_DURATION_SECONDS = 1f;
diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
index e8c838b..8a4a7fe 100644
--- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
+++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
@@ -290,7 +290,7 @@
  */
 public class StatsPullAtomService extends SystemService {
     private static final String TAG = "StatsPullAtomService";
-    private static final boolean DEBUG = true;
+    private static final boolean DEBUG = false;
 
     // Random seed stable for StatsPullAtomService life cycle - can be used for stable sampling
     private static final int RANDOM_SEED = new Random().nextInt();
diff --git a/services/core/java/com/android/server/utils/AnrTimer.java b/services/core/java/com/android/server/utils/AnrTimer.java
index 6df7192..1a836b2 100644
--- a/services/core/java/com/android/server/utils/AnrTimer.java
+++ b/services/core/java/com/android/server/utils/AnrTimer.java
@@ -103,7 +103,7 @@
     /**
      * Enable debug messages.
      */
-    private static boolean DEBUG = false;
+    private static final boolean DEBUG = false;
 
     /**
      * The trace tag is the same usd by ActivityManager.
@@ -1003,13 +1003,6 @@
     }
 
     /**
-     * Enable or disable debugging.
-     */
-    static void debug(boolean f) {
-        DEBUG = f;
-    }
-
-    /**
      * The current time in milliseconds.
      */
     private static long now() {
diff --git a/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingController.java b/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingController.java
index 292627c..8b0c50c 100644
--- a/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingController.java
+++ b/services/core/java/com/android/server/wm/DeviceStateAutoRotateSettingController.java
@@ -76,9 +76,7 @@
     private static final String TAG = "DSAutoRotateCtrl";
     private static final int ACCELEROMETER_ROTATION_OFF = 0;
     private static final int ACCELEROMETER_ROTATION_ON = 1;
-    // TODO(b/413598268): Disable debugging after the
-    //  com.android.window.flags.enable_device_state_auto_rotate_setting_refactor flag is rolled-out
-    private static final boolean DEBUG = true;
+    private static final boolean DEBUG = false;
     private static final int MSG_UPDATE_STATE = 1;
 
     private final Handler mHandler;
diff --git a/telecomm/framework/java/android/telecom/Log.java b/telecomm/framework/java/android/telecom/Log.java
index 98949d0c..6f7d0f2 100644
--- a/telecomm/framework/java/android/telecom/Log.java
+++ b/telecomm/framework/java/android/telecom/Log.java
@@ -56,6 +56,8 @@
     // Generic tag for all Telecom logging
     @VisibleForTesting
     public static String TAG = "TelecomFramework";
+    // As the `TAG` field may be changed at runtime, dependent logging variables cannot be final.
+    @SuppressWarnings("DebugNonFinal")
     public static boolean DEBUG = isLoggable(android.util.Log.DEBUG);
     public static boolean INFO = isLoggable(android.util.Log.INFO);
     public static boolean VERBOSE = isLoggable(android.util.Log.VERBOSE);
diff --git a/tools/lint/framework/checks/src/main/java/com/google/android/lint/DebugFieldDetector.kt b/tools/lint/framework/checks/src/main/java/com/google/android/lint/DebugFieldDetector.kt
index bef76b1..0c0b3d7 100644
--- a/tools/lint/framework/checks/src/main/java/com/google/android/lint/DebugFieldDetector.kt
+++ b/tools/lint/framework/checks/src/main/java/com/google/android/lint/DebugFieldDetector.kt
@@ -126,8 +126,7 @@
         // Somewhat arbitrary priority, where `10` is the highest.
         private val ISSUE_PRIORITY = 6
 
-        // TODO(b/436095548): Upgrade to ERROR after updating appropriate lint baselines.
-        private val ISSUE_SEVERITY = Severity.WARNING
+        private val ISSUE_SEVERITY = Severity.ERROR
 
         private val DEBUG_TRUE_EXPLANATION =
             """
diff --git a/tools/lint/framework/checks/src/test/java/com/google/android/lint/DebugFieldDetectorTest.kt b/tools/lint/framework/checks/src/test/java/com/google/android/lint/DebugFieldDetectorTest.kt
index 56b4322..f75582d 100644
--- a/tools/lint/framework/checks/src/test/java/com/google/android/lint/DebugFieldDetectorTest.kt
+++ b/tools/lint/framework/checks/src/test/java/com/google/android/lint/DebugFieldDetectorTest.kt
@@ -68,10 +68,28 @@
                     .indented()
             )
             .run()
-            .expectWarningCount(1)
+            .expectErrorCount(1)
             .checkFix(null, after = expectedCleanJavaField)
     }
 
+    fun testJavaStaticFinalDebugTrueSuppressLint() {
+        lint()
+            .files(
+                java(
+                        """
+                package test.pkg;
+                class TestClass {
+                    @SuppressWarnings("DebugTrue")
+                    static final boolean DEBUG = true;
+                }
+                """
+                    )
+                    .indented()
+            )
+            .run()
+            .expectClean()
+    }
+
     fun testJavaStaticDebugTrue() {
         lint()
             .files(
@@ -86,7 +104,7 @@
                     .indented()
             )
             .run()
-            .expectWarningCount(2)
+            .expectErrorCount(2)
             .checkFix(null, after = expectedCleanJavaField)
     }
 
@@ -121,7 +139,7 @@
                     .indented()
             )
             .run()
-            .expectWarningCount(1)
+            .expectErrorCount(1)
             .checkFix(null, after = expectedCleanJavaField)
     }
 
@@ -158,7 +176,7 @@
                     .indented()
             )
             .run()
-            .expectWarningCount(2)
+            .expectErrorCount(2)
             .checkFix(null, after = expectedCleanKotlinField)
     }
 
@@ -178,7 +196,7 @@
                     .indented()
             )
             .run()
-            .expectWarningCount(1)
+            .expectErrorCount(1)
             .checkFix(null, after = expectedCleanKotlinField)
     }
 }