Move color management check to ColorDisplayManager
Bug: 111215474 Test: make RunSettingsRoboTests -j100 Change-Id: I8ab675a49e119014e59fcfdb61fcd9253e8c0da1
This commit is contained in:
@@ -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" />
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -17,7 +17,6 @@
|
||||
package com.android.settings.display;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import android.hardware.display.ColorDisplayManager;
|
||||
|
||||
import androidx.preference.DropDownPreference;
|
||||
|
Reference in New Issue
Block a user