diff options
| author | 2023-11-07 16:52:57 +0000 | |
|---|---|---|
| committer | 2023-11-07 16:52:57 +0000 | |
| commit | 512cf072b4b9efe2dc9971100e55d9b9676b4cf6 (patch) | |
| tree | 116f7d2484baef5e25c7375976ed26ba652c68a3 | |
| parent | 2e4c7d4e3b180188d82fabc1fe12bbef89bb0b88 (diff) | |
| parent | 681d87f86f7929ea2125b21cc47265b34565c484 (diff) | |
Merge "Update keep rules for SystemUI tuner package" into main
4 files changed, 19 insertions, 2 deletions
diff --git a/packages/SystemUI/proguard_common.flags b/packages/SystemUI/proguard_common.flags index 445bdc2c1936..73ae59abcadf 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 771a8c8a0cfd..799e5af7e01d 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.phone.ExpandableIndicator; 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 @@ public class LockscreenFragment extends PreferenceFragment { 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 32b1b2607323..8d8599900530 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 android.os.Bundle; 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 9cc526a1c0f3..873b6d55de75 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.MetricsLogger; 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 @@ public class TunerFragment 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.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); |