Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 681d87f8 authored by Jared Duke's avatar Jared Duke
Browse files

Update keep rules for SystemUI tuner package

Remove the wildcard rule for the tuner package, and instead insert
selective keep annotations for fragments referenced in <Preference>
tags.

Bug: 301283783
Test: m + presubmit
Change-Id: I2f82017f94abfe9a120e57a1b490edadf9b66114
parent 2951818e
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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.** {
+5 −0
Original line number Diff line number Diff line
@@ -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);
+5 −0
Original line number Diff line number Diff line
@@ -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);
+9 −0
Original line number Diff line number Diff line
@@ -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);