Fix gson usage with R8 full mode

Ensure the appropriate signatures are retained for ClockRegistry's gson
usage when R8 full mode is enabled.

Bug: 215530220
Bug: 229771520
Test: m + boot tests
Change-Id: I824b870a355a4cfea04e55d5648a6c441ab446d3
(cherry picked from commit 994594ba6f490c1fcb2035ba79be53246424335c)
Merged-In: I824b870a355a4cfea04e55d5648a6c441ab446d3
diff --git a/packages/SystemUI/shared/Android.bp b/packages/SystemUI/shared/Android.bp
index 18bd6b4..f59a320 100644
--- a/packages/SystemUI/shared/Android.bp
+++ b/packages/SystemUI/shared/Android.bp
@@ -59,6 +59,9 @@
     resource_dirs: [
         "res",
     ],
+    optimize: {
+        proguard_flags_files: ["proguard.flags"],
+    },
     java_version: "1.8",
     min_sdk_version: "current",
     plugins: ["dagger2-compiler"],
diff --git a/packages/SystemUI/shared/proguard.flags b/packages/SystemUI/shared/proguard.flags
new file mode 100644
index 0000000..5eda045
--- /dev/null
+++ b/packages/SystemUI/shared/proguard.flags
@@ -0,0 +1,4 @@
+# Retain signatures of TypeToken and its subclasses for gson usage in ClockRegistry
+-keepattributes Signature
+-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
+-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
\ No newline at end of file