Merge "Update keep rules for SystemUI tuner package" into main
diff --git a/packages/SystemUI/proguard_common.flags b/packages/SystemUI/proguard_common.flags
index 445bdc2..73ae59a 100644
--- a/packages/SystemUI/proguard_common.flags
+++ b/packages/SystemUI/proguard_common.flags
@@ -20,8 +20,6 @@
public <init>(android.content.Context, android.util.AttributeSet);
}
--keep class com.android.systemui.tuner.*
-
# The plugins and core log subpackages act as shared libraries that might be referenced in
# dynamically-loaded plugin APKs.
-keep class com.android.systemui.plugins.** {
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/LockscreenFragment.java b/packages/SystemUI/src/com/android/systemui/tuner/LockscreenFragment.java
index 771a8c8..799e5af 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/LockscreenFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/LockscreenFragment.java
@@ -48,6 +48,8 @@
import com.android.systemui.statusbar.policy.ExtensionController.TunerFactory;
import com.android.systemui.tuner.ShortcutParser.Shortcut;
import com.android.systemui.tuner.TunerService.Tunable;
+import com.android.tools.r8.keepanno.annotations.KeepTarget;
+import com.android.tools.r8.keepanno.annotations.UsesReflection;
import java.util.ArrayList;
import java.util.Map;
@@ -69,6 +71,9 @@
private TunerService mTunerService;
private Handler mHandler;
+ // aapt doesn't generate keep rules for android:fragment references in <Preference> tags, so
+ // explicitly declare references per usage in `R.xml.lockscreen_settings`. See b/120445169.
+ @UsesReflection(@KeepTarget(classConstant = ShortcutPicker.class))
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
mTunerService = Dependency.get(TunerService.class);
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/OtherPrefs.java b/packages/SystemUI/src/com/android/systemui/tuner/OtherPrefs.java
index 32b1b26..8d85999 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/OtherPrefs.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/OtherPrefs.java
@@ -19,8 +19,13 @@
import androidx.preference.PreferenceFragment;
import com.android.systemui.res.R;
+import com.android.tools.r8.keepanno.annotations.KeepTarget;
+import com.android.tools.r8.keepanno.annotations.UsesReflection;
public class OtherPrefs extends PreferenceFragment {
+ // aapt doesn't generate keep rules for android:fragment references in <Preference> tags, so
+ // explicitly declare references per usage in `R.xml.other_settings`. See b/120445169.
+ @UsesReflection(@KeepTarget(classConstant = PowerNotificationControlsFragment.class))
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.other_settings);
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java b/packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java
index 9cc526a..873b6d5 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java
@@ -35,6 +35,8 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.res.R;
import com.android.systemui.shared.plugins.PluginPrefs;
+import com.android.tools.r8.keepanno.annotations.KeepTarget;
+import com.android.tools.r8.keepanno.annotations.UsesReflection;
public class TunerFragment extends PreferenceFragment {
@@ -77,6 +79,13 @@
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
}
+ // aapt doesn't generate keep rules for android:fragment references in <Preference> tags, so
+ // explicitly declare references per usage in `R.xml.tuner_prefs`. See b/120445169.
+ @UsesReflection({
+ @KeepTarget(classConstant = LockscreenFragment.class),
+ @KeepTarget(classConstant = NavBarTuner.class),
+ @KeepTarget(classConstant = PluginFragment.class),
+ })
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.tuner_prefs);