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.READ_PROFILE" />
|
||||||
<uses-permission android:name="android.permission.CONFIGURE_WIFI_DISPLAY" />
|
<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.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.SET_TIME" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NOTIFICATIONS" />
|
<uses-permission android:name="android.permission.ACCESS_NOTIFICATIONS" />
|
||||||
<uses-permission android:name="android.permission.REBOOT" />
|
<uses-permission android:name="android.permission.REBOOT" />
|
||||||
|
@@ -14,11 +14,7 @@
|
|||||||
package com.android.settings.display;
|
package com.android.settings.display;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.IBinder;
|
import android.hardware.display.ColorDisplayManager;
|
||||||
import android.os.Parcel;
|
|
||||||
import android.os.RemoteException;
|
|
||||||
import android.os.ServiceManager;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
@@ -29,19 +25,16 @@ import com.android.settings.core.BasePreferenceController;
|
|||||||
public class ColorModePreferenceController extends BasePreferenceController {
|
public class ColorModePreferenceController extends BasePreferenceController {
|
||||||
private static final String TAG = "ColorModePreference";
|
private static final String TAG = "ColorModePreference";
|
||||||
|
|
||||||
private static final int SURFACE_FLINGER_TRANSACTION_QUERY_COLOR_MANAGEMENT = 1030;
|
|
||||||
|
|
||||||
private final ConfigurationWrapper mConfigWrapper;
|
|
||||||
private ColorDisplayController mColorDisplayController;
|
private ColorDisplayController mColorDisplayController;
|
||||||
|
|
||||||
public ColorModePreferenceController(Context context, String key) {
|
public ColorModePreferenceController(Context context, String key) {
|
||||||
super(context, key);
|
super(context, key);
|
||||||
mConfigWrapper = new ConfigurationWrapper();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
return mConfigWrapper.isDeviceColorManaged()
|
return mContext.getSystemService(ColorDisplayManager.class)
|
||||||
|
.isDeviceColorManaged()
|
||||||
&& !getColorDisplayController().getAccessibilityTransformActivated() ?
|
&& !getColorDisplayController().getAccessibilityTransformActivated() ?
|
||||||
AVAILABLE_UNSEARCHABLE : DISABLED_FOR_USER;
|
AVAILABLE_UNSEARCHABLE : DISABLED_FOR_USER;
|
||||||
}
|
}
|
||||||
@@ -68,32 +61,4 @@ public class ColorModePreferenceController extends BasePreferenceController {
|
|||||||
}
|
}
|
||||||
return mColorDisplayController;
|
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;
|
package com.android.settings.display;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import android.hardware.display.ColorDisplayManager;
|
import android.hardware.display.ColorDisplayManager;
|
||||||
|
|
||||||
import androidx.preference.DropDownPreference;
|
import androidx.preference.DropDownPreference;
|
||||||
|
Reference in New Issue
Block a user