0
0
mirror of https://github.com/markusfisch/BinaryEye.git synced 2024-09-19 19:42:18 +02:00

Add a menu item to toggle screen brightness

So this setting can be enabled/disabled where it's required, too.
This commit is contained in:
Markus Fisch 2024-07-09 19:37:06 +02:00
parent 54aa15e1be
commit 4fc1e36d04
3 changed files with 44 additions and 5 deletions

View File

@ -57,6 +57,7 @@ class BarcodeFragment : Fragment() {
private lateinit var barcode: Barcode<*>
private lateinit var addToHistoryItem: MenuItem
private lateinit var brightenScreenItem: MenuItem
private var currentBrightness = -1f;
@ -144,9 +145,9 @@ class BarcodeFragment : Fragment() {
override fun onResume() {
super.onResume()
if (prefs.brightenScreen) {
activity?.let {
currentBrightness = it.getScreenBrightness()
it.setScreenBrightness(1f);
// Post to make sure brightenScreenItem is initialized.
view?.post {
brightenScreen()
}
}
}
@ -154,8 +155,7 @@ class BarcodeFragment : Fragment() {
override fun onPause() {
super.onPause()
if (currentBrightness > -1f) {
activity?.setScreenBrightness(currentBrightness);
currentBrightness = -1f
restoreScreenBrightness()
}
}
@ -167,6 +167,7 @@ class BarcodeFragment : Fragment() {
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.fragment_barcode, menu)
addToHistoryItem = menu.findItem(R.id.add_to_history)
brightenScreenItem = menu.findItem(R.id.brighten_screen)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
@ -193,6 +194,17 @@ class BarcodeFragment : Fragment() {
true
}
R.id.brighten_screen -> {
prefs.brightenScreen = if (currentBrightness > -1f) {
restoreScreenBrightness()
false
} else {
brightenScreen()
true
}
true
}
else -> super.onOptionsItemSelected(item)
}
}
@ -317,6 +329,22 @@ class BarcodeFragment : Fragment() {
}
}
private fun brightenScreen() {
activity?.let {
currentBrightness = it.getScreenBrightness()
it.setScreenBrightness(1f);
brightenScreenItem.isChecked = true
}
}
private fun restoreScreenBrightness() {
if (currentBrightness > -1f) {
activity?.setScreenBrightness(currentBrightness);
currentBrightness = -1f
brightenScreenItem.isChecked = false
}
}
companion object {
private const val CONTENT_TEXT = "content_text"
private const val CONTENT_RAW = "content_raw"

View File

@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#FFFFFF" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M20,8.69L20,4h-4.69L12,0.69 8.69,4L4,4v4.69L0.69,12 4,15.31L4,20h4.69L12,23.31 15.31,20L20,20v-4.69L23.31,12 20,8.69zM12,18c-3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6 6,2.69 6,6 -2.69,6 -6,6zM12,8c-2.21,0 -4,1.79 -4,4s1.79,4 4,4 4,-1.79 4,-4 -1.79,-4 -4,-4z"/>
</vector>

View File

@ -16,4 +16,10 @@
android:title="@string/export_to_file"
android:icon="@drawable/ic_action_save"
material:showAsAction="ifRoom"/>
<item
android:id="@+id/brighten_screen"
android:title="@string/brighten_screen"
android:icon="@drawable/ic_action_bright"
android:checkable="true"
material:showAsAction="ifRoom"/>
</menu>