diff --git a/app/src/main/java/eu/wa5p/lightmeter/MainActivity.kt b/app/src/main/java/eu/wa5p/lightmeter/MainActivity.kt index df42209..4ac6219 100644 --- a/app/src/main/java/eu/wa5p/lightmeter/MainActivity.kt +++ b/app/src/main/java/eu/wa5p/lightmeter/MainActivity.kt @@ -57,11 +57,23 @@ class MainActivity : ComponentActivity(), SensorEventListener { illuminanceSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT) } + fun updateLightmeterState(illuminance: Double) { + val iso = lightmeterState.value.iso + val aperture = lightmeterState.value.aperture + val shutterSpeed = (aperture * aperture) / (illuminance * (iso / 100)) + lightmeterState.value = lightmeterState.value.copy( + illuminance = illuminance, + iso = iso, + aperture = aperture, + shutterSpeed = shutterSpeed + ) + } + override fun onSensorChanged(event: SensorEvent?) { event?.values?.let { for (v in it) { Log.d(TAG, "sensor changed: $v lux") - lightmeterState.value = lightmeterState.value.copy(illuminance = v.toDouble()) + updateLightmeterState(v.toDouble()) } } }