fix flash mode selection

This commit is contained in:
darthpaul 2022-08-25 07:58:22 +01:00
parent 5f7b2e0ecb
commit 64ff75511c
2 changed files with 12 additions and 10 deletions

View File

@ -26,7 +26,6 @@ import com.google.android.material.tabs.TabLayout
import com.simplemobiletools.camera.BuildConfig import com.simplemobiletools.camera.BuildConfig
import com.simplemobiletools.camera.R import com.simplemobiletools.camera.R
import com.simplemobiletools.camera.extensions.config import com.simplemobiletools.camera.extensions.config
import com.simplemobiletools.camera.extensions.idToAppFlashMode
import com.simplemobiletools.camera.extensions.toFlashModeId import com.simplemobiletools.camera.extensions.toFlashModeId
import com.simplemobiletools.camera.helpers.* import com.simplemobiletools.camera.helpers.*
import com.simplemobiletools.camera.implementations.CameraXInitializer import com.simplemobiletools.camera.implementations.CameraXInitializer
@ -41,6 +40,8 @@ import com.simplemobiletools.commons.models.Release
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.layout_flash.flash_auto import kotlinx.android.synthetic.main.layout_flash.flash_auto
import kotlinx.android.synthetic.main.layout_flash.flash_off
import kotlinx.android.synthetic.main.layout_flash.flash_on
import kotlinx.android.synthetic.main.layout_flash.flash_toggle_group import kotlinx.android.synthetic.main.layout_flash.flash_toggle_group
import kotlinx.android.synthetic.main.layout_media_size.media_size_toggle_group import kotlinx.android.synthetic.main.layout_media_size.media_size_toggle_group
@ -335,14 +336,14 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
shutter.setOnClickListener { shutterPressed() } shutter.setOnClickListener { shutterPressed() }
settings.setOnClickListener { launchSettings() } settings.setOnClickListener { launchSettings() }
change_resolution.setOnClickListener { mPreview?.showChangeResolution() } change_resolution.setOnClickListener { mPreview?.showChangeResolution() }
flash_toggle_group.check(config.flashlightState.toFlashModeId()) flash_on.setOnClickListener { selectFlashMode(FLASH_ON) }
flash_toggle_group.addOnButtonCheckedListener { _, checkedId, isChecked -> flash_off.setOnClickListener { selectFlashMode(FLASH_OFF) }
if (isChecked) { flash_auto.setOnClickListener { selectFlashMode(FLASH_AUTO) }
val flashMode = checkedId.idToAppFlashMode() }
closeOptions()
mPreview?.setFlashlightState(flashMode) private fun selectFlashMode(flashMode: Int) {
} closeOptions()
} mPreview?.setFlashlightState(flashMode)
} }
private fun toggleCamera() { private fun toggleCamera() {
@ -758,6 +759,7 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
flash_auto.beVisibleIf(photoCapture) flash_auto.beVisibleIf(photoCapture)
top_group.beInvisible() top_group.beInvisible()
flash_toggle_group.beVisible() flash_toggle_group.beVisible()
flash_toggle_group.check(config.flashlightState.toFlashModeId())
flash_toggle_group.children.map { it as MaterialButton }.forEach(::setButtonColors) flash_toggle_group.children.map { it as MaterialButton }.forEach(::setButtonColors)
} }

View File

@ -28,7 +28,7 @@ fun Int.toAppFlashMode(): Int {
fun Int.toFlashModeId(): Int { fun Int.toFlashModeId(): Int {
return when (this) { return when (this) {
FLASH_ON -> R.id.flash_on FLASH_ON -> R.id.flash_on
FLASH_OFF -> R.id.flash_on FLASH_OFF -> R.id.flash_off
FLASH_AUTO -> R.id.flash_auto FLASH_AUTO -> R.id.flash_auto
else -> throw IllegalArgumentException("Unknown mode: $this") else -> throw IllegalArgumentException("Unknown mode: $this")
} }