fix: toast tekst ingekort, settings balk volledig klikbaar, version-check fallback voor oude ESP firmware
This commit is contained in:
parent
1499d840ce
commit
57ef68fcab
4 changed files with 27 additions and 20 deletions
|
|
@ -288,11 +288,13 @@ class BleRelayManager(
|
||||||
if (versionChar != null) {
|
if (versionChar != null) {
|
||||||
val ok = gatt.readCharacteristic(versionChar)
|
val ok = gatt.readCharacteristic(versionChar)
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
Log.w(TAG, "readCharacteristic(VERSION) returned false, skipping version check")
|
Log.w(TAG, "readCharacteristic(VERSION) returned false, treating as no version")
|
||||||
|
handler.post { callbacks.onFirmwareVersion("", appVersion) }
|
||||||
handler.post { callbacks.onStatusChanged(BleStatus.Connected) }
|
handler.post { callbacks.onStatusChanged(BleStatus.Connected) }
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.d(TAG, "VERSION characteristic not found, skipping version check")
|
Log.d(TAG, "VERSION characteristic not found on ESP (old firmware)")
|
||||||
|
handler.post { callbacks.onFirmwareVersion("", appVersion) }
|
||||||
handler.post { callbacks.onStatusChanged(BleStatus.Connected) }
|
handler.post { callbacks.onStatusChanged(BleStatus.Connected) }
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -301,14 +303,16 @@ class BleRelayManager(
|
||||||
handler.post { callbacks.onStatusChanged(BleStatus.WrongDevice) }
|
handler.post { callbacks.onStatusChanged(BleStatus.WrongDevice) }
|
||||||
gatt.disconnect()
|
gatt.disconnect()
|
||||||
}
|
}
|
||||||
} else if (characteristic.uuid == VERSION_UUID && status == BluetoothGatt.GATT_SUCCESS) {
|
} else if (characteristic.uuid == VERSION_UUID) {
|
||||||
|
if (status == BluetoothGatt.GATT_SUCCESS) {
|
||||||
val version = String(value, Charsets.UTF_8).trim()
|
val version = String(value, Charsets.UTF_8).trim()
|
||||||
espVersion = version
|
espVersion = version
|
||||||
Log.d(TAG, "ESP firmware version: $version, app bundled: $appVersion")
|
Log.d(TAG, "ESP firmware version: $version, app bundled: $appVersion")
|
||||||
handler.post { callbacks.onFirmwareVersion(version, appVersion) }
|
handler.post { callbacks.onFirmwareVersion(version, appVersion) }
|
||||||
handler.post { callbacks.onStatusChanged(BleStatus.Connected) }
|
} else {
|
||||||
} else if (characteristic.uuid == VERSION_UUID) {
|
Log.w(TAG, "Version read failed (status=$status), treating as no version")
|
||||||
Log.w(TAG, "Version read failed (status=$status), using Connected anyway")
|
handler.post { callbacks.onFirmwareVersion("", appVersion) }
|
||||||
|
}
|
||||||
handler.post { callbacks.onStatusChanged(BleStatus.Connected) }
|
handler.post { callbacks.onStatusChanged(BleStatus.Connected) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
import android.widget.ImageButton
|
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
|
@ -97,9 +96,9 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
||||||
statusText = findViewById(R.id.statusText)
|
statusText = findViewById(R.id.statusText)
|
||||||
relay1Button = findViewById(R.id.relay1Button)
|
relay1Button = findViewById(R.id.relay1Button)
|
||||||
relay2Button = findViewById(R.id.relay2Button)
|
relay2Button = findViewById(R.id.relay2Button)
|
||||||
val settingsButton = findViewById<ImageButton>(R.id.settingsButton)
|
val settingsContainer = findViewById<android.view.View>(R.id.settingsContainer)
|
||||||
|
|
||||||
settingsButton.setOnClickListener {
|
settingsContainer.setOnClickListener {
|
||||||
startActivityForResult(Intent(this, SettingsActivity::class.java), REQUEST_SETTINGS)
|
startActivityForResult(Intent(this, SettingsActivity::class.java), REQUEST_SETTINGS)
|
||||||
}
|
}
|
||||||
setupRelayButton()
|
setupRelayButton()
|
||||||
|
|
@ -222,7 +221,7 @@ class MainActivity : AppCompatActivity(), BleCallbacks {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onFirmwareVersion(espVersion: String, appVersion: String) {
|
override fun onFirmwareVersion(espVersion: String, appVersion: String) {
|
||||||
if (espVersion != appVersion) {
|
if (espVersion.isEmpty() || espVersion != appVersion) {
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
Toast.makeText(this, getString(R.string.ota_update_available), Toast.LENGTH_LONG).show()
|
Toast.makeText(this, getString(R.string.ota_update_available), Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,15 @@
|
||||||
android:padding="16dp">
|
android:padding="16dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/settingsContainer"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="end|top"
|
android:layout_gravity="end|top"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical"
|
||||||
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@
|
||||||
<string name="button_ota_update">Firmware bijwerken via Bluetooth</string>
|
<string name="button_ota_update">Firmware bijwerken via Bluetooth</string>
|
||||||
<string name="title_ota_update">OTA Firmware Update</string>
|
<string name="title_ota_update">OTA Firmware Update</string>
|
||||||
<string name="msg_ota_starting">OTA update starten...</string>
|
<string name="msg_ota_starting">OTA update starten...</string>
|
||||||
<string name="ota_update_available">Nieuwe firmware beschikbaar — open Instellingen om bij te werken</string>
|
<string name="ota_update_available">Nieuwe firmware beschikbaar</string>
|
||||||
<string name="ota_complete">Update voltooid! ESP herstart...</string>
|
<string name="ota_complete">Update voltooid! ESP herstart...</string>
|
||||||
<string name="ota_failed">OTA update mislukt: %s</string>
|
<string name="ota_failed">OTA update mislukt: %s</string>
|
||||||
<string name="ota_load_failed">Kan firmware bestand niet laden</string>
|
<string name="ota_load_failed">Kan firmware bestand niet laden</string>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue