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

Commit c4be214f authored by Christine Franks's avatar Christine Franks Committed by Android (Google) Code Review
Browse files

Merge "Move color management check to ColorDisplayManager"

parents e8ac1019 bce91d94
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@
    <uses-permission android:name="android.permission.READ_PROFILE" />
    <uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
    <uses-permission android:name="android.permission.CONFIGURE_DISPLAY_COLOR_MODE" />
    <uses-permission android:name="android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS" />
    <uses-permission android:name="android.permission.SET_TIME" />
    <uses-permission android:name="android.permission.ACCESS_NOTIFICATIONS" />
    <uses-permission android:name="android.permission.REBOOT" />
+3 −38
Original line number Diff line number Diff line
@@ -14,11 +14,7 @@
package com.android.settings.display;

import android.content.Context;
import android.os.IBinder;
import android.os.Parcel;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.util.Log;
import android.hardware.display.ColorDisplayManager;

import androidx.annotation.VisibleForTesting;

@@ -29,19 +25,16 @@ import com.android.settings.core.BasePreferenceController;
public class ColorModePreferenceController extends BasePreferenceController {
    private static final String TAG = "ColorModePreference";

    private static final int SURFACE_FLINGER_TRANSACTION_QUERY_COLOR_MANAGEMENT = 1030;

    private final ConfigurationWrapper mConfigWrapper;
    private ColorDisplayController mColorDisplayController;

    public ColorModePreferenceController(Context context, String key) {
        super(context, key);
        mConfigWrapper = new ConfigurationWrapper();
    }

    @Override
    public int getAvailabilityStatus() {
        return mConfigWrapper.isDeviceColorManaged()
        return mContext.getSystemService(ColorDisplayManager.class)
                .isDeviceColorManaged()
                && !getColorDisplayController().getAccessibilityTransformActivated() ?
                AVAILABLE_UNSEARCHABLE : DISABLED_FOR_USER;
    }
@@ -68,32 +61,4 @@ public class ColorModePreferenceController extends BasePreferenceController {
        }
        return mColorDisplayController;
    }

    @VisibleForTesting
    static class ConfigurationWrapper {
        private final IBinder mSurfaceFlinger;

        ConfigurationWrapper() {
            mSurfaceFlinger = ServiceManager.getService("SurfaceFlinger");
        }

        boolean isDeviceColorManaged() {
            if (mSurfaceFlinger != null) {
                final Parcel data = Parcel.obtain();
                final Parcel reply = Parcel.obtain();
                data.writeInterfaceToken("android.ui.ISurfaceComposer");
                try {
                    mSurfaceFlinger.transact(SURFACE_FLINGER_TRANSACTION_QUERY_COLOR_MANAGEMENT,
                            data, reply, 0);
                    return reply.readBoolean();
                } catch (RemoteException ex) {
                    Log.e(TAG, "Failed to query color management support", ex);
                } finally {
                    data.recycle();
                    reply.recycle();
                }
            }
            return false;
        }
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.settings.display;

import android.content.Context;

import android.hardware.display.ColorDisplayManager;

import androidx.preference.DropDownPreference;