Copy utility classes into the jobscheduler module

Test: adb shell dumpsys jobscheduler

Change-Id: Ie618cc02df7f951bca451694b42e88ee4f65798d
diff --git a/Android.bp b/Android.bp
index 325077f..8f0e341 100644
--- a/Android.bp
+++ b/Android.bp
@@ -744,6 +744,27 @@
     ],
 }
 
+// keep these files in sync with the apex/jobscheduler/service jarjar-rules.txt for
+// the jobscheduler module.
+filegroup {
+    name: "framework-jobscheduler-shared-srcs",
+    srcs: [
+        "core/java/com/android/internal/util/ArrayUtils.java",
+        "core/java/com/android/internal/util/BitUtils.java",
+        "core/java/com/android/internal/util/CollectionUtils.java",
+        "core/java/com/android/internal/util/ConcurrentUtils.java",
+        "core/java/com/android/internal/util/DumpUtils.java",
+        "core/java/com/android/internal/util/FastPrintWriter.java",
+        "core/java/com/android/internal/util/FastXmlSerializer.java",
+        "core/java/com/android/internal/util/FunctionalUtils.java",
+        "core/java/com/android/internal/util/ParseUtils.java",
+        "core/java/com/android/internal/util/Preconditions.java",
+        "core/java/com/android/internal/util/RingBufferIndices.java",
+        "core/java/com/android/internal/util/StatLogger.java",
+        "core/java/com/android/internal/util/XmlUtils.java",
+    ],
+}
+
 // Build ext.jar
 // ============================================================
 java_library {
diff --git a/apex/jobscheduler/service/Android.bp b/apex/jobscheduler/service/Android.bp
index 69a9fd8..47267df 100644
--- a/apex/jobscheduler/service/Android.bp
+++ b/apex/jobscheduler/service/Android.bp
@@ -6,11 +6,17 @@
 
     srcs: [
         "java/**/*.java",
+        ":framework-jobscheduler-shared-srcs",
+        ":statslog-framework-java-gen", // FrameworkStatsLog.java
     ],
 
     libs: [
         "app-compat-annotations",
         "framework",
         "services.core",
+        "unsupportedappusage",
     ],
+
+    // Rename classes shared with the framework
+    jarjar_rules: "jarjar-rules.txt",
 }
diff --git a/apex/jobscheduler/service/jarjar-rules.txt b/apex/jobscheduler/service/jarjar-rules.txt
new file mode 100644
index 0000000..2f01c4b
--- /dev/null
+++ b/apex/jobscheduler/service/jarjar-rules.txt
@@ -0,0 +1,18 @@
+# Rename all com.android.internal.util classes to prevent class name collisions
+# between this module and the other versions of the utility classes linked into
+# the framework.
+
+# These must be kept in sync with the framework-jobscheduler-shared-srcs filegroup.
+rule com.android.internal.util.ArrayUtils* com.android.internal.util.jobs.ArrayUtils@1
+rule com.android.internal.util.BitUtils* com.android.internal.util.jobs.BitUtils@1
+rule com.android.internal.util.CollectionUtils* com.android.internal.util.jobs.CollectionUtils@1
+rule com.android.internal.util.ConcurrentUtils* com.android.internal.util.jobs.ConcurrentUtils@1
+rule com.android.internal.util.DumpUtils* com.android.internal.util.jobs.DumpUtils@1
+rule com.android.internal.util.FastPrintWriter* com.android.internal.util.jobs.FastPrintWriter@1
+rule com.android.internal.util.FastXmlSerializer* com.android.internal.util.jobs.FastXmlSerializer@1
+rule com.android.internal.util.FunctionalUtils* com.android.internal.util.jobs.FunctionalUtils@1
+rule com.android.internal.util.ParseUtils* com.android.internal.util.jobs.ParseUtils@1
+rule com.android.internal.util.Preconditions* com.android.internal.util.jobs.Preconditions@1
+rule com.android.internal.util.RingBufferIndices* com.android.internal.util.jobs.RingBufferIndices@1
+rule com.android.internal.util.StatLogger* com.android.internal.util.jobs.StatLogger@1
+rule com.android.internal.util.XmlUtils* com.android.internal.util.jobs.XmlUtils@1