1
0

Merge pull request #9170 from SomberNight/202408_android_qr_set_max_brightness

qml/android: set max screen brightness when displaying QR codes
This commit is contained in:
ghost43
2024-09-02 15:45:11 +00:00
committed by GitHub
2 changed files with 34 additions and 1 deletions

View File

@@ -24,7 +24,7 @@ Item {
source: qrdata && render ? 'image://qrgen/' + qrdata : ''
visible: !isTextState
Rectangle {
Rectangle { // container for logo inside qr code
visible: root.render && _qrprops.valid
color: 'white'
x: (parent.width - width) / 2
@@ -75,4 +75,13 @@ Item {
}
}
onVisibleChanged: {
if (root.visible) {
// set max brightness to make qr code easier to scan
AppController.setMaxScreenBrightness()
} else {
AppController.resetScreenBrightness()
}
}
}

View File

@@ -206,6 +206,30 @@ class QEAppController(BaseCrashReporter, QObject):
it = jIntent.createChooser(sendIntent, cast('java.lang.CharSequence', jString(title)))
jpythonActivity.startActivity(it)
@pyqtSlot()
def setMaxScreenBrightness(self):
self._set_screen_brightness(1.0)
@pyqtSlot()
def resetScreenBrightness(self):
self._set_screen_brightness(-1.0)
def _set_screen_brightness(self, br: float) -> None:
"""br is the desired screen brightness, a value in the [0, 1] interval.
A negative value, e.g. -1.0, means a "reset" back to the system preferred value.
"""
if not self.isAndroid():
return
from android.runnable import run_on_ui_thread
@run_on_ui_thread
def set_br():
window = jpythonActivity.getWindow()
attrs = window.getAttributes()
attrs.screenBrightness = br
window.setAttributes(attrs)
set_br()
@pyqtSlot('QString')
def textToClipboard(self, text):
QGuiApplication.clipboard().setText(text)