Merge Android 14 QPR2 to AOSP main

Bug: 319669529
Merged-In: I7bbd1d0c8726dbfc642111ea04545c58ea4928cc
Change-Id: I53635a02468d56702a5a02918dc42f51579bcf40
diff --git a/ktlint-android-all.jar b/ktlint-android-all.jar
index 8de50b3..06c22af 100644
--- a/ktlint-android-all.jar
+++ b/ktlint-android-all.jar
Binary files differ
diff --git a/ktlint.py b/ktlint.py
index 2574319..fab6686 100755
--- a/ktlint.py
+++ b/ktlint.py
@@ -29,12 +29,12 @@
 MAIN_DIRECTORY = os.path.normpath(os.path.dirname(__file__))
 KTLINT_JAR = os.path.join(MAIN_DIRECTORY, 'ktlint-android-all.jar')
 EDITOR_CONFIG = os.path.join(MAIN_DIRECTORY, '.editorconfig')
-FORMAT_MESSAGE = '''
+FORMAT_MESSAGE = """
 **********************************************************************
 To format run:
 {}/ktlint.py --format --file {}
 **********************************************************************
-'''
+"""
 
 
 def main(args=None):
@@ -42,7 +42,9 @@
   parser.add_argument('--file', '-f', nargs='*')
   parser.add_argument('--format', '-F', dest='format', action='store_true')
   parser.add_argument('--noformat', dest='format', action='store_false')
-  parser.add_argument('--no-verify-format', dest='verify_format', action='store_false')
+  parser.add_argument(
+      '--no-verify-format', dest='verify_format', action='store_false'
+  )
   parser.add_argument('--editorconfig', default=EDITOR_CONFIG)
   parser.set_defaults(format=False, verify_format=True)
   args = parser.parse_args()
@@ -50,36 +52,63 @@
   if not kt_files:
     sys.exit(0)
 
-  disabled_rules = ['indent', 'paren-spacing', 'curly-spacing', 'wrapping']
+  disabled_rules = [
+      'indent',
+      'paren-spacing',
+      'curly-spacing',
+      'wrapping',
+      # trailing-comma requires wrapping
+      'trailing-comma-on-call-site',
+      'trailing-comma-on-declaration-site',
+      # annotations requires wrapping
+      'spacing-between-declarations-with-annotations',
+      'annotation',
+  ]
 
   # Disable more format-related rules if we shouldn't verify the format. This is usually
   # the case if files we are checking are already checked by ktfmt.
   if not args.verify_format:
-      disabled_rules += ['final-newline', 'no-consecutive-blank-lines', 'import-ordering']
+    disabled_rules += [
+        'final-newline',
+        'no-consecutive-blank-lines',
+        'import-ordering',
+        'comment-wrapping',
+        'argument-list-wrapping',
+        'spacing-between-declarations-with-comments',
+        'annotation-spacing',
+        'multiline-if-else',
+    ]
 
   ktlint_args = kt_files[:]
   ktlint_args += ['--disabled_rules=' + ','.join(disabled_rules)]
 
   # Setup editor config explicitly if defined - else will inherit from tree
   if args.editorconfig is not None:
-      ktlint_args += ['--editorconfig', args.editorconfig]
+    ktlint_args += ['--editorconfig', args.editorconfig]
 
   # Automatically format files if requested.
   if args.format:
     ktlint_args += ['-F']
 
-  ktlint_args += ['--android']
-
   ktlint_env = os.environ.copy()
   ktlint_env['JAVA_CMD'] = 'java'
   try:
-    check = subprocess.Popen(['java', '-jar', KTLINT_JAR] + ktlint_args,
-                             stdout=subprocess.PIPE, env=ktlint_env)
+    check = subprocess.Popen(
+        [
+            'java',
+            '--add-opens=java.base/java.lang=ALL-UNNAMED',
+            '-jar',
+            KTLINT_JAR,
+        ]
+        + ktlint_args,
+        stdout=subprocess.PIPE,
+        env=ktlint_env,
+    )
     stdout, _ = check.communicate()
     if stdout:
       print('prebuilts/ktlint found errors in files you changed:')
       print(stdout.decode('utf-8'))
-      if (args.verify_format):
+      if args.verify_format:
         print(FORMAT_MESSAGE.format(MAIN_DIRECTORY, ' '.join(kt_files)))
       sys.exit(1)
     else:
@@ -89,5 +118,6 @@
       print('Error running ktlint!')
       sys.exit(1)
 
+
 if __name__ == '__main__':
   main()