diff --git a/XperiaParts/Android.bp b/XperiaParts/Android.bp index 74225e3..48373c9 100644 --- a/XperiaParts/Android.bp +++ b/XperiaParts/Android.bp @@ -10,9 +10,15 @@ android_app { system_ext_specific: true, privileged: true, + libs: [ + "framework", + "services", + ], + static_libs: [ "androidx.core_core", "androidx.preference_preference", + "androidx.core_core-ktx", "org.lineageos.settings.resources", "org.lineageos.platform.internal", "vendor.semc.hardware.display-V2.0-java", diff --git a/XperiaParts/src/org/lineageos/settings/device/display/CreatorModeUtils.kt b/XperiaParts/src/org/lineageos/settings/device/display/CreatorModeUtils.kt index 6ba9dad..4ac0c4e 100644 --- a/XperiaParts/src/org/lineageos/settings/device/display/CreatorModeUtils.kt +++ b/XperiaParts/src/org/lineageos/settings/device/display/CreatorModeUtils.kt @@ -5,12 +5,16 @@ package org.lineageos.settings.device.display +import android.app.Activity import android.content.Context -import android.hardware.display.ColorDisplayManager import android.provider.Settings import android.util.Log +import android.view.View -import lineageos.hardware.LiveDisplayManager +import android.graphics.ColorMatrix +import android.graphics.ColorMatrixColorFilter +import androidx.core.content.ContextCompat +import android.hardware.display.ColorDisplayManager import vendor.semc.hardware.display.V2_0.IDisplay import vendor.semc.hardware.display.V2_0.IDisplayCallback @@ -22,7 +26,6 @@ class CreatorModeUtils(private val context: Context) : IDisplayCallback.Stub() { ?: throw Exception("Display manager is NULL") private val semcDisplayService: IDisplay = IDisplay.getService() ?: throw Exception("SEMC Display HIDL not found") - private val liveDisplayManager: LiveDisplayManager = LiveDisplayManager.getInstance(context) val isEnabled: Boolean get() = Settings.Secure.getInt(context.contentResolver, CREATOR_MODE_ENABLE, 0) != 0 @@ -44,9 +47,20 @@ class CreatorModeUtils(private val context: Context) : IDisplayCallback.Stub() { } override fun onWhiteBalanceMatrixChanged(matrix: PccMatrix) { - val colorMatrix: FloatArray = floatArrayOf(matrix.red, matrix.green, matrix.blue) + val colorMatrix: ColorMatrix = ColorMatrix().apply { + set(floatArrayOf( + matrix.red, matrix.green, matrix.blue, 0f, 0f, + matrix.red, matrix.green, matrix.blue, 0f, 0f, + matrix.red, matrix.green, matrix.blue, 0f, 0f, + 0f, 0f, 0f, 1f, 0f + )) + } + + val filter = ColorMatrixColorFilter(colorMatrix) + + val views = (context as Activity).window.decorView + views.post { views.background.colorFilter = filter } Log.i(TAG, "New white balance: ${matrix.red}, ${matrix.green}, ${matrix.blue}") - liveDisplayManager.setColorAdjustment(colorMatrix) } companion object {