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

Commit 8039843c authored by Bryce Lee's avatar Bryce Lee
Browse files

Add additional SystemUI services config.

This changelist adds a new array where SystemUI
services can be specified through an overlay.
This additional array helps prevent drift in
overlays in the main services array.

Bug: 194454071
Test: manual
Change-Id: I8910122f93bf1ebb6a10b6be9cd71c83dd06e7ab
parent 84e3770c
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -313,7 +313,8 @@
    <!-- SystemUIFactory component -->
    <string name="config_systemUIFactoryComponent" translatable="false">com.android.systemui.SystemUIFactory</string>

    <!-- SystemUI Services: The classes of the stuff to start. -->
    <!-- SystemUI Services: The classes of base stuff to start by default for all
         configurations. -->
    <string-array name="config_systemUIServiceComponents" translatable="false">
        <item>com.android.systemui.util.NotificationChannels</item>
        <item>com.android.systemui.keyguard.KeyguardViewMediator</item>
@@ -340,6 +341,12 @@
        <item>com.android.systemui.wmshell.WMShell</item>
    </string-array>

    <!-- SystemUI Services: The classes of the additional stuff to start. Services here are
                            specified as an overlay to provide configuration-specific services that
                            supplement those listed in config_systemUIServiceComponents. -->
    <string-array name="config_additionalSystemUIServiceComponents" translatable="false">
    </string-array>

    <!-- QS tile shape store width. negative implies fill configuration instead of stroke-->
    <dimen name="config_qsTileStrokeWidthActive">-1dp</dimen>
    <dimen name="config_qsTileStrokeWidthInactive">-1dp</dimen>
+13 −2
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ import com.android.systemui.util.NotificationChannels;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collections;

/**
 * Application class for SystemUI.
@@ -159,8 +161,17 @@ public class SystemUIApplication extends Application implements
     */

    public void startServicesIfNeeded() {
        String[] names = SystemUIFactory.getInstance().getSystemUIServiceComponents(getResources());
        startServicesIfNeeded(/* metricsPrefix= */ "StartServices", names);
        final String[] names = SystemUIFactory.getInstance()
                .getSystemUIServiceComponents(getResources());
        final String[] additionalNames = SystemUIFactory.getInstance()
                .getAdditionalSystemUIServiceComponents(getResources());

        final ArrayList<String> serviceComponents = new ArrayList<>();
        Collections.addAll(serviceComponents, names);
        Collections.addAll(serviceComponents, additionalNames);

        startServicesIfNeeded(/* metricsPrefix= */ "StartServices",
                serviceComponents.toArray(new String[serviceComponents.size()]));
    }

    /**
+7 −0
Original line number Diff line number Diff line
@@ -186,6 +186,13 @@ public class SystemUIFactory {
        return resources.getStringArray(R.array.config_systemUIServiceComponents);
    }

    /**
     * Returns the list of additional system UI components that should be started.
     */
    public String[] getAdditionalSystemUIServiceComponents(Resources resources) {
        return resources.getStringArray(R.array.config_additionalSystemUIServiceComponents);
    }

    /**
     * Returns the list of system UI components that should be started per user.
     */