Move user-facing strings to strings.xml
This commit is contained in:
parent
fffc5165a4
commit
05036a5060
3 changed files with 69 additions and 36 deletions
|
|
@ -79,12 +79,12 @@ class MainActivity : AppCompatActivity() {
|
|||
if (newState == BluetoothProfile.STATE_CONNECTED) {
|
||||
Log.d(TAG, "GATT connected")
|
||||
bluetoothGatt = gatt
|
||||
runOnUiThread { statusText.text = "Verbonden, services zoeken..." }
|
||||
runOnUiThread { statusText.text = getString(R.string.status_discovering_services) }
|
||||
gatt.discoverServices()
|
||||
} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
|
||||
Log.d(TAG, "GATT disconnected")
|
||||
runOnUiThread {
|
||||
statusText.text = "Verbinden..."
|
||||
statusText.text = getString(R.string.status_connecting)
|
||||
relayButton.isEnabled = false
|
||||
}
|
||||
gatt.close()
|
||||
|
|
@ -99,7 +99,7 @@ class MainActivity : AppCompatActivity() {
|
|||
override fun onServicesDiscovered(gatt: BluetoothGatt, status: Int) {
|
||||
if (status != BluetoothGatt.GATT_SUCCESS) {
|
||||
Log.w(TAG, "Service discovery failed (status=$status)")
|
||||
runOnUiThread { statusText.text = "Servicefout" }
|
||||
runOnUiThread { statusText.text = getString(R.string.status_service_error) }
|
||||
return
|
||||
}
|
||||
Log.d(TAG, "Services discovered, requesting MTU...")
|
||||
|
|
@ -122,13 +122,13 @@ class MainActivity : AppCompatActivity() {
|
|||
gatt.writeDescriptor(descriptor)
|
||||
Log.d(TAG, "Ready, relay characteristic found")
|
||||
runOnUiThread {
|
||||
statusText.text = "Connected"
|
||||
statusText.text = getString(R.string.status_connected)
|
||||
relayButton.isEnabled = true
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG, "Service not found")
|
||||
runOnUiThread { statusText.text = "Service not found" }
|
||||
runOnUiThread { statusText.text = getString(R.string.status_service_not_found) }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ class MainActivity : AppCompatActivity() {
|
|||
Log.d(TAG, "Write confirmed by local BLE stack (status=$status)")
|
||||
} else {
|
||||
Log.w(TAG, "Write failed (status=$status)")
|
||||
runOnUiThread { statusText.text = "Communicatiefout" }
|
||||
runOnUiThread { statusText.text = getString(R.string.status_comm_error) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -175,7 +175,7 @@ class MainActivity : AppCompatActivity() {
|
|||
super.onResume()
|
||||
loadState()
|
||||
if (hmacKey == null) {
|
||||
statusText.text = "Geen HMAC sleutel - open Instellingen"
|
||||
statusText.text = getString(R.string.status_no_key)
|
||||
} else if (!isScanning && bluetoothGatt == null) {
|
||||
handler.postDelayed(scanRunnable, 300)
|
||||
}
|
||||
|
|
@ -227,7 +227,7 @@ class MainActivity : AppCompatActivity() {
|
|||
if (grantResults.all { it == PackageManager.PERMISSION_GRANTED }) {
|
||||
startScan()
|
||||
} else {
|
||||
statusText.text = "Permissies geweigerd — open Instellingen"
|
||||
statusText.text = getString(R.string.status_permissions_denied)
|
||||
relayButton.isEnabled = false
|
||||
}
|
||||
}
|
||||
|
|
@ -238,12 +238,12 @@ class MainActivity : AppCompatActivity() {
|
|||
when (event.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
sendRelayCommand(true)
|
||||
relayButton.text = "ON"
|
||||
relayButton.text = getString(R.string.button_on)
|
||||
true
|
||||
}
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
sendRelayCommand(false)
|
||||
relayButton.text = "HOLD"
|
||||
relayButton.text = getString(R.string.button_hold)
|
||||
true
|
||||
}
|
||||
else -> false
|
||||
|
|
@ -261,18 +261,18 @@ class MainActivity : AppCompatActivity() {
|
|||
|
||||
val adapter = BluetoothAdapter.getDefaultAdapter()
|
||||
if (adapter == null || !adapter.isEnabled) {
|
||||
statusText.text = "Bluetooth not enabled"
|
||||
statusText.text = getString(R.string.status_bluetooth_disabled)
|
||||
return
|
||||
}
|
||||
|
||||
if (hmacKey == null) {
|
||||
statusText.text = "Geen HMAC sleutel - open Instellingen"
|
||||
statusText.text = getString(R.string.status_no_key)
|
||||
return
|
||||
}
|
||||
|
||||
isScanning = true
|
||||
scanTimedOut = false
|
||||
statusText.text = "Scanning..."
|
||||
statusText.text = getString(R.string.status_scanning)
|
||||
Log.d(TAG, "Starting BLE scan for $DEVICE_NAME")
|
||||
|
||||
adapter.bluetoothLeScanner.startScan(scanCallback)
|
||||
|
|
@ -292,13 +292,13 @@ class MainActivity : AppCompatActivity() {
|
|||
val adapter = BluetoothAdapter.getDefaultAdapter()
|
||||
adapter?.bluetoothLeScanner?.stopScan(scanCallback)
|
||||
if (scanTimedOut) {
|
||||
statusText.text = "Device not found"
|
||||
statusText.text = getString(R.string.status_device_not_found)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("MissingPermission")
|
||||
private fun connectToDevice(device: android.bluetooth.BluetoothDevice) {
|
||||
runOnUiThread { statusText.text = "Connecting..." }
|
||||
runOnUiThread { statusText.text = getString(R.string.status_connecting) }
|
||||
Log.d(TAG, "Connecting to ${device.address}")
|
||||
bluetoothGatt = device.connectGatt(this, false, gattCallback)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
onDeviceReady(usbManager, device)
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(this@SettingsActivity, "USB-toegang geweigerd", Toast.LENGTH_SHORT).show()
|
||||
Toast.makeText(this@SettingsActivity, getString(R.string.usb_access_denied), Toast.LENGTH_SHORT).show()
|
||||
cleanupAction()
|
||||
}
|
||||
}
|
||||
|
|
@ -108,7 +108,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
setContentView(R.layout.activity_settings)
|
||||
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
supportActionBar?.title = "Instellingen"
|
||||
supportActionBar?.title = getString(R.string.title_settings)
|
||||
|
||||
findViewById<Button>(R.id.exchangeKeyButton).setOnClickListener {
|
||||
startKeyExchange()
|
||||
|
|
@ -118,7 +118,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
startFlashing()
|
||||
}
|
||||
|
||||
findViewById<TextView>(R.id.buildNumber).text = "Buildnummer: ${BuildConfig.BUILD_NUMBER}"
|
||||
findViewById<TextView>(R.id.buildNumber).text = getString(R.string.build_number, BuildConfig.BUILD_NUMBER)
|
||||
|
||||
registerReceiver(usbAttachedReceiver, IntentFilter(UsbManager.ACTION_USB_DEVICE_ATTACHED), Context.RECEIVER_EXPORTED)
|
||||
registerReceiver(usbPermissionReceiver, IntentFilter(ACTION_USB_PERMISSION), Context.RECEIVER_NOT_EXPORTED)
|
||||
|
|
@ -152,7 +152,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
if (device != null && usbManager.hasPermission(device)) {
|
||||
doKeyExchange(usbManager, device)
|
||||
} else {
|
||||
showWaitingDialog("Sleutel Uitwisselen", "Sluit de ESP aan via USB.")
|
||||
showWaitingDialog(getString(R.string.title_key_exchange), getString(R.string.msg_connect_usb))
|
||||
if (device != null) {
|
||||
requestUsbPermission(usbManager, device)
|
||||
}
|
||||
|
|
@ -160,7 +160,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
}
|
||||
|
||||
private fun doKeyExchange(usbManager: UsbManager, device: UsbDevice) {
|
||||
showProgressDialog("Sleutel Uitwisselen", "Sleutel uitlezen...", STYLE_SPINNER)
|
||||
showProgressDialog(getString(R.string.title_key_exchange), getString(R.string.msg_reading_key), STYLE_SPINNER)
|
||||
|
||||
lifecycleScope.launch(Dispatchers.IO) {
|
||||
val result = readKeyFromEsp(usbManager, device)
|
||||
|
|
@ -170,17 +170,17 @@ class SettingsActivity : AppCompatActivity() {
|
|||
is KeyResult.Success -> {
|
||||
val prefs = PrefsHelper.getPrefs(this@SettingsActivity)
|
||||
prefs.edit().putString(PrefsHelper.PREF_KEY, result.hexKey).apply()
|
||||
Toast.makeText(this@SettingsActivity, "Beveiligingssleutel gelezen", Toast.LENGTH_LONG).show()
|
||||
Toast.makeText(this@SettingsActivity, getString(R.string.key_read_success), Toast.LENGTH_LONG).show()
|
||||
cleanupAction()
|
||||
setResult(RESULT_SCAN)
|
||||
finish()
|
||||
}
|
||||
is KeyResult.Error -> {
|
||||
Toast.makeText(this@SettingsActivity, "Sleutel uitwisselen mislukt - probeer opnieuw", Toast.LENGTH_LONG).show()
|
||||
Toast.makeText(this@SettingsActivity, getString(R.string.key_exchange_failed), Toast.LENGTH_LONG).show()
|
||||
cleanupAction()
|
||||
}
|
||||
null -> {
|
||||
Toast.makeText(this@SettingsActivity, "Sleutel uitwisselen mislukt - probeer opnieuw", Toast.LENGTH_SHORT).show()
|
||||
Toast.makeText(this@SettingsActivity, getString(R.string.key_exchange_failed), Toast.LENGTH_SHORT).show()
|
||||
cleanupAction()
|
||||
}
|
||||
}
|
||||
|
|
@ -201,8 +201,8 @@ class SettingsActivity : AppCompatActivity() {
|
|||
doFlashing(usbManager, device)
|
||||
} else {
|
||||
showWaitingDialog(
|
||||
"Firmware Flashen",
|
||||
"Zet de ESP in download-modus (houd reset 2s in tot groene LED) en sluit aan via USB."
|
||||
getString(R.string.title_firmware_flash),
|
||||
getString(R.string.msg_flash_download_mode)
|
||||
)
|
||||
if (device != null) {
|
||||
requestUsbPermission(usbManager, device)
|
||||
|
|
@ -213,7 +213,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
private fun doFlashing(usbManager: UsbManager, device: UsbDevice) {
|
||||
dialog?.dismiss()
|
||||
dialog = null
|
||||
showProgressDialog("Firmware Flashen", "Initialiseren...", STYLE_HORIZONTAL)
|
||||
showProgressDialog(getString(R.string.title_firmware_flash), getString(R.string.msg_initializing), STYLE_HORIZONTAL)
|
||||
|
||||
val flasher = EspFlasher(this)
|
||||
val progressCallback = object : EspFlasher.FlashCallback {
|
||||
|
|
@ -233,9 +233,9 @@ class SettingsActivity : AppCompatActivity() {
|
|||
progressDialog?.dismiss()
|
||||
progressDialog = null
|
||||
dialog = AlertDialog.Builder(this@SettingsActivity)
|
||||
.setTitle("Firmware Flashen")
|
||||
.setMessage("Firmware geflashed!\n\nOntkoppel de ESP en sluit opnieuw aan om de sleutel in te stellen.")
|
||||
.setPositiveButton("Sluiten") { d, _ ->
|
||||
.setTitle(getString(R.string.title_firmware_flash))
|
||||
.setMessage(getString(R.string.msg_flash_complete))
|
||||
.setPositiveButton(getString(R.string.button_close)) { d, _ ->
|
||||
d.dismiss()
|
||||
dialog = null
|
||||
}
|
||||
|
|
@ -248,7 +248,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
} catch (e: Exception) {
|
||||
progressDialog?.dismiss()
|
||||
progressDialog = null
|
||||
Toast.makeText(this@SettingsActivity, "Flashen mislukt: ${e.message}", Toast.LENGTH_LONG).show()
|
||||
Toast.makeText(this@SettingsActivity, getString(R.string.flash_failed, e.message), Toast.LENGTH_LONG).show()
|
||||
cleanupAction()
|
||||
}
|
||||
}
|
||||
|
|
@ -274,7 +274,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
.setTitle(title)
|
||||
.setView(view)
|
||||
.setCancelable(true)
|
||||
.setNegativeButton("Annuleren") { _, _ ->
|
||||
.setNegativeButton(getString(R.string.button_cancel)) { _, _ ->
|
||||
cleanupAction()
|
||||
}
|
||||
.setOnCancelListener { cleanupAction() }
|
||||
|
|
@ -294,7 +294,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
progressDialog = AlertDialog.Builder(this)
|
||||
.setTitle(title)
|
||||
.setView(view)
|
||||
.setNegativeButton("Annuleren") { _, _ ->
|
||||
.setNegativeButton(getString(R.string.button_cancel)) { _, _ ->
|
||||
flasherJob?.cancel()
|
||||
cleanupAction()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,40 @@
|
|||
<resources>
|
||||
<string name="app_name">Atom Relay</string>
|
||||
<string name="settings">Instellingen</string>
|
||||
<string name="hmac_key_hint">C3F17B61...</string>
|
||||
<string name="save">Opslaan</string>
|
||||
<string name="back">Terug</string>
|
||||
</resources>
|
||||
|
||||
<!-- MainActivity status -->
|
||||
<string name="status_discovering_services">Verbonden, services zoeken…</string>
|
||||
<string name="status_connecting">Verbinden…</string>
|
||||
<string name="status_connected">Connected</string>
|
||||
<string name="status_service_error">Servicefout</string>
|
||||
<string name="status_service_not_found">Service not found</string>
|
||||
<string name="status_comm_error">Communicatiefout</string>
|
||||
<string name="status_no_key">Geen HMAC sleutel - open Instellingen</string>
|
||||
<string name="status_permissions_denied">Permissies geweigerd — open Instellingen</string>
|
||||
<string name="status_bluetooth_disabled">Bluetooth not enabled</string>
|
||||
<string name="status_scanning">Scanning…</string>
|
||||
<string name="status_device_not_found">Device not found</string>
|
||||
|
||||
<!-- MainActivity UI -->
|
||||
<string name="button_on">ON</string>
|
||||
<string name="button_hold">HOLD</string>
|
||||
|
||||
<!-- SettingsActivity -->
|
||||
<string name="title_settings">Instellingen</string>
|
||||
<string name="build_number">Buildnummer: %s</string>
|
||||
<string name="usb_access_denied">USB-toegang geweigerd</string>
|
||||
<string name="key_read_success">Beveiligingssleutel gelezen</string>
|
||||
<string name="key_exchange_failed">Sleutel uitwisselen mislukt - probeer opnieuw</string>
|
||||
<string name="flash_failed">Flashen mislukt: %s</string>
|
||||
|
||||
<!-- SettingsActivity dialogs -->
|
||||
<string name="title_key_exchange">Sleutel Uitwisselen</string>
|
||||
<string name="title_firmware_flash">Firmware Flashen</string>
|
||||
<string name="msg_connect_usb">Sluit de ESP aan via USB.</string>
|
||||
<string name="msg_reading_key">Sleutel uitlezen…</string>
|
||||
<string name="msg_flash_download_mode">Zet de ESP in download-modus (houd reset 2s in tot groene LED) en sluit aan via USB.</string>
|
||||
<string name="msg_initializing">Initialiseren…</string>
|
||||
<string name="msg_flash_complete">Firmware geflashed!\n\nOntkoppel de ESP en sluit opnieuw aan om de sleutel in te stellen.</string>
|
||||
<string name="button_close">Sluiten</string>
|
||||
<string name="button_cancel">Annuleren</string>
|
||||
</resources>
|
||||
|
|
|
|||
Loading…
Reference in a new issue