From feaa43e634b065491e4ab2eed8074f90570b193a Mon Sep 17 00:00:00 2001
From: Dhina17 <dhinalogu@gmail.com>
Date: Wed, 1 May 2024 06:19:44 +0000
Subject: [PATCH] SystemUI: Keep NavBarEditor class reference

Ref: https://android.googlesource.com/platform/frameworks/base/+/681d87f86f7929ea2125b21cc47265b34565c484

Change-Id: I4bf450a13b8176310842485754af6e544f4ae63f
---
 .../SystemUI/src/com/android/systemui/tuner/NavBarTuner.java | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java b/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java
index 96ce68143f3a..b45f22c68f9f 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java
@@ -49,6 +49,8 @@ import androidx.preference.PreferenceFragment;
 import com.android.systemui.Dependency;
 import com.android.systemui.res.R;
 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;
 
@@ -71,6 +73,9 @@ public class NavBarTuner extends PreferenceFragment {
         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.nav_bar_tuner`. See b/120445169.
+    @UsesReflection(@KeepTarget(classConstant = NavBarEditor.class))
     @Override
     public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
         addPreferencesFromResource(R.xml.nav_bar_tuner);
-- 
GitLab