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

Commit 7d9fd496 authored by Santos Cordon's avatar Santos Cordon
Browse files

Allow display device config files in VENDOR directory.

Add vendor directory to the search path for display device config files.

Test: Manually test by moving display config files to vendor.
Change-Id: I037d72ee7f148fb956503a44f187339236df74de
parent a0dc8eaa
Loading
Loading
Loading
Loading
+22 −5
Original line number Diff line number Diff line
@@ -73,15 +73,31 @@ public class DisplayDeviceConfig {
    public static DisplayDeviceConfig create(long physicalDisplayId) {
        DisplayDeviceConfig config;

        config = loadConfigFromDirectory(Environment.getProductDirectory(), physicalDisplayId);
        if (config != null) {
            return config;
        }

        config = loadConfigFromDirectory(Environment.getVendorDirectory(), physicalDisplayId);
        if (config != null) {
            return config;
        }

        return null;
    }

    private static DisplayDeviceConfig loadConfigFromDirectory(
            File baseDirectory, long physicalDisplayId) {
        DisplayDeviceConfig config;
        // Create config using filename from physical ID (including "stable" bit).
        config = getConfigFromSuffix(STABLE_ID_SUFFIX_FORMAT, physicalDisplayId);
        config = getConfigFromSuffix(baseDirectory, STABLE_ID_SUFFIX_FORMAT, physicalDisplayId);
        if (config != null) {
            return config;
        }

        // Create config using filename from physical ID (excluding "stable" bit).
        final long withoutStableFlag = physicalDisplayId & ~STABLE_FLAG;
        config = getConfigFromSuffix(NO_SUFFIX_FORMAT, withoutStableFlag);
        config = getConfigFromSuffix(baseDirectory, NO_SUFFIX_FORMAT, withoutStableFlag);
        if (config != null) {
            return config;
        }
@@ -90,7 +106,7 @@ public class DisplayDeviceConfig {
        final DisplayAddress.Physical physicalAddress =
                DisplayAddress.fromPhysicalDisplayId(physicalDisplayId);
        int port = physicalAddress.getPort();
        config = getConfigFromSuffix(PORT_SUFFIX_FORMAT, port);
        config = getConfigFromSuffix(baseDirectory, PORT_SUFFIX_FORMAT, port);
        if (config != null) {
            return config;
        }
@@ -127,12 +143,13 @@ public class DisplayDeviceConfig {
        return str;
    }

    private static DisplayDeviceConfig getConfigFromSuffix(String suffixFormat, long idNumber) {
    private static DisplayDeviceConfig getConfigFromSuffix(File baseDirectory,
            String suffixFormat, long idNumber) {

        final String suffix = String.format(suffixFormat, idNumber);
        final String filename = String.format(CONFIG_FILE_FORMAT, suffix);
        final File filePath = Environment.buildPath(
                Environment.getProductDirectory(), ETC_DIR, DISPLAY_CONFIG_DIR, filename);
                baseDirectory, ETC_DIR, DISPLAY_CONFIG_DIR, filename);

        if (filePath.exists()) {
            final DisplayDeviceConfig config = new DisplayDeviceConfig();