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

Unverified Commit 2c127225 authored by Pranav Vashi's avatar Pranav Vashi Committed by Michael Bestas
Browse files

SystemUI: Add tunable for showing brightness icon



Change-Id: I2806c6d0ae32a5f86632f6e5e86770aaddd75662
Signed-off-by: default avatarPranav Vashi <neobuddy89@gmail.com>
parent ad39fa1e
Loading
Loading
Loading
Loading
+36 −1
Original line number Diff line number Diff line
@@ -16,7 +16,10 @@

package com.android.systemui.brightness.ui.compose

import android.content.ContentResolver
import android.content.Context
import android.database.ContentObserver
import android.os.UserHandle
import android.view.HapticFeedbackConstants
import android.view.MotionEvent
import androidx.annotation.VisibleForTesting
@@ -124,6 +127,7 @@ import com.android.systemui.lifecycle.rememberViewModel
import com.android.systemui.qs.ui.compose.borderOnFocus
import com.android.systemui.res.R
import com.android.systemui.utils.PolicyRestriction
import lineageos.providers.LineageSettings
import platform.test.motion.compose.values.MotionTestValueKey
import platform.test.motion.compose.values.motionTestValues

@@ -214,9 +218,30 @@ fun BrightnessSlider(
        }
    }

    val cr = context.contentResolver
    val hasAutoBrightness = context.resources.getBoolean(
        com.android.internal.R.bool.config_automatic_brightness_available
    )
    var showAutoBrightness by remember { mutableStateOf(readShowAutoBrightness(cr)) }

    DisposableEffect(Unit) {
        val observer = object : ContentObserver(null) {
            override fun onChange(selfChange: Boolean) {
                context.mainExecutor.execute {
                    showAutoBrightness = readShowAutoBrightness(cr)
                }
            }
        }

        cr.registerContentObserver(
            LineageSettings.Secure.getUriFor(LineageSettings.Secure.QS_SHOW_AUTO_BRIGHTNESS),
            false, observer, UserHandle.USER_ALL
        )

        onDispose {
            cr.unregisterContentObserver(observer)
        }
    }

    Row(
        verticalAlignment = Alignment.CenterVertically,
@@ -356,7 +381,7 @@ fun BrightnessSlider(
            },
        )

        if (hasAutoBrightness) {
        if (hasAutoBrightness && showAutoBrightness) {
            Spacer(modifier = Modifier.width(10.dp))
            drawAutoBrightnessButton(autoMode = autoMode, onIconClick = onIconClick)
        }
@@ -384,6 +409,16 @@ private fun Modifier.sliderBackground(color: Color) = drawWithCache {
    }
}

private fun readShowAutoBrightness(cr: ContentResolver): Boolean =
    try {
        LineageSettings.Secure.getIntForUser(
            cr, LineageSettings.Secure.QS_SHOW_AUTO_BRIGHTNESS,
            1, UserHandle.USER_CURRENT
        ) != 0
    } catch (_: Throwable) {
        false
    }

@Composable
private fun drawAutoBrightnessButton(
    autoMode: Boolean,