From 50dc26b36deda63e37e28146e3e5e0355a3b6cc5 Mon Sep 17 00:00:00 2001 From: Kevin Hester Date: Sun, 14 Feb 2021 16:07:49 +0800 Subject: [PATCH] fix autobug if user tries to change settings during an update cc @vfurman-gh Caused by android.os.RemoteException: Operation prohibited during firmware update at com.geeksville.util.ExceptionsKt.toRemoteExceptions(ExceptionsKt.java:61) at com.geeksville.mesh.service.MeshService$binder$1.setRadioConfig(MeshService.java:1589) at com.geeksville.mesh.model.UIViewModel.setRadioConfig(UIViewModel.java:163) at com.geeksville.mesh.model.UIViewModel.setLsSleepSecs(UIViewModel.java:148) at com.geeksville.mesh.ui.SettingsFragment$initCommonUI$8.invoke(SettingsFragment.java:637) at com.geeksville.mesh.ui.SettingsFragment$initCommonUI$8.invoke(SettingsFragment.java:464) at com.geeksville.mesh.ui.MessagesFragmentKt$on$1.onEditorAction(MessagesFragmentKt.java:35) at android.widget.TextView.onEditorAction(TextView.java:7042) at com.android.internal.widget.EditableInputConnection.performEditorAction(EditableInputConnection.java:138) at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:357) at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:89) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7562) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) --- .../com/geeksville/mesh/ui/AdvancedSettingsFragment.kt | 9 +++++++-- geeksville-androidlib | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/ui/AdvancedSettingsFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/AdvancedSettingsFragment.kt index 4c970bf90..75175a14e 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/AdvancedSettingsFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/AdvancedSettingsFragment.kt @@ -14,6 +14,7 @@ import com.geeksville.mesh.databinding.AdvancedSettingsBinding import com.geeksville.mesh.model.ChannelOption import com.geeksville.mesh.model.UIViewModel import com.geeksville.mesh.service.MeshService +import com.geeksville.util.exceptionToSnackbar import com.google.android.material.snackbar.Snackbar class AdvancedSettingsFragment : ScreenFragment("Advanced Settings"), Logging { @@ -54,7 +55,9 @@ class AdvancedSettingsFragment : ScreenFragment("Advanced Settings"), Logging { ?: ChannelOption.defaultMinBroadcastPeriod if (n != null && n < MAX_INT_DEVICE && (n == 0 || n >= minBroadcastPeriodSecs)) { - model.positionBroadcastSecs = n + exceptionToSnackbar(requireView()) { + model.positionBroadcastSecs = n + } } else { // restore the value in the edit field textEdit.setText(model.positionBroadcastSecs.toString()) @@ -73,7 +76,9 @@ class AdvancedSettingsFragment : ScreenFragment("Advanced Settings"), Logging { val str = binding.lsSleepEditText.text.toString() val n = str.toIntOrNull() if (n != null && n < MAX_INT_DEVICE && n >= 0) { - model.lsSleepSecs = n + exceptionToSnackbar(requireView()) { + model.lsSleepSecs = n + } } else { Snackbar.make(requireView(), "Bad value: $str", Snackbar.LENGTH_LONG).show() } diff --git a/geeksville-androidlib b/geeksville-androidlib index ee6611838..fb14fb659 160000 --- a/geeksville-androidlib +++ b/geeksville-androidlib @@ -1 +1 @@ -Subproject commit ee6611838637d096b39e11365930eb90a5f0fd2e +Subproject commit fb14fb659d0b235d325a0d9195cb5f47424dff51