From 4f19c761a040dfa0ea1acf7b8df2b587065fc653 Mon Sep 17 00:00:00 2001 From: Severin Kaderli Date: Sun, 27 Nov 2022 15:20:48 +0100 Subject: [PATCH] Add logic for calibration process to app Signed-off-by: Severin Kaderli --- .../dev/kaderli/magsend/BaseSensorActivity.kt | 21 +++++++++++++++++++ .../kaderli/magsend/CalibrationActivity.kt | 18 +++++++++++++++- .../main/res/layout/activity_calibration.xml | 1 - .../app/src/main/res/values/strings.xml | 1 + 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 src/MagSend/app/src/main/java/dev/kaderli/magsend/BaseSensorActivity.kt diff --git a/src/MagSend/app/src/main/java/dev/kaderli/magsend/BaseSensorActivity.kt b/src/MagSend/app/src/main/java/dev/kaderli/magsend/BaseSensorActivity.kt new file mode 100644 index 0000000..3072efd --- /dev/null +++ b/src/MagSend/app/src/main/java/dev/kaderli/magsend/BaseSensorActivity.kt @@ -0,0 +1,21 @@ +package dev.kaderli.magsend + +import android.content.Context +import android.hardware.Sensor +import android.hardware.SensorEventListener +import android.hardware.SensorManager +import android.os.Bundle + +abstract class BaseSensorActivity : BaseActivity(), SensorEventListener { + private lateinit var sensorManager: SensorManager; + private lateinit var sensor: Sensor; + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager + sensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); + sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_UI); + } + + override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {} +} diff --git a/src/MagSend/app/src/main/java/dev/kaderli/magsend/CalibrationActivity.kt b/src/MagSend/app/src/main/java/dev/kaderli/magsend/CalibrationActivity.kt index 1e1ddb3..f858af6 100644 --- a/src/MagSend/app/src/main/java/dev/kaderli/magsend/CalibrationActivity.kt +++ b/src/MagSend/app/src/main/java/dev/kaderli/magsend/CalibrationActivity.kt @@ -1,7 +1,23 @@ package dev.kaderli.magsend -class CalibrationActivity : BaseActivity() { +import android.hardware.SensorEvent +import android.os.Bundle +import android.widget.TextView + +class CalibrationActivity : BaseSensorActivity() { + private lateinit var calibrationValue: TextView + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + calibrationValue = findViewById(R.id.calibrationValue) + calibrationValue.text = getString(R.string.calibration_value, 0f) + } + override fun getLayoutId(): Int { return R.layout.activity_calibration } + + override fun onSensorChanged(event: SensorEvent) { + calibrationValue.text = getString(R.string.calibration_value, event.values[0]) + } } diff --git a/src/MagSend/app/src/main/res/layout/activity_calibration.xml b/src/MagSend/app/src/main/res/layout/activity_calibration.xml index c28bd5f..af88e45 100644 --- a/src/MagSend/app/src/main/res/layout/activity_calibration.xml +++ b/src/MagSend/app/src/main/res/layout/activity_calibration.xml @@ -22,7 +22,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/component_spacing" - android:text="82µT " android:textSize="48sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/src/MagSend/app/src/main/res/values/strings.xml b/src/MagSend/app/src/main/res/values/strings.xml index 5954412..067e3a0 100644 --- a/src/MagSend/app/src/main/res/values/strings.xml +++ b/src/MagSend/app/src/main/res/values/strings.xml @@ -10,4 +10,5 @@ Restart Calibration Receive + %1$.2f µT