From d76e6316841d316f87ce10615eedc544cfc0222c Mon Sep 17 00:00:00 2001 From: andrekir Date: Thu, 3 Feb 2022 02:13:35 -0300 Subject: [PATCH 1/3] call perhapsChangeChannel from qr code result --- .../main/java/com/geeksville/mesh/MainActivity.kt | 4 ++-- .../com/geeksville/mesh/ui/ChannelFragment.kt | 15 ++------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index 9839c59c7..decbf2dce 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -830,9 +830,9 @@ class MainActivity : AppCompatActivity(), Logging, ).show() } - private fun perhapsChangeChannel() { + fun perhapsChangeChannel(url: Uri? = requestedChannelUrl) { // If the is opening a channel URL, handle it now - requestedChannelUrl?.let { url -> + if (url != null) { try { val channels = ChannelSet(url) val primary = channels.primaryChannel diff --git a/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt index 73b644550..daf62a33c 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt @@ -33,7 +33,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import com.google.protobuf.ByteString import com.google.zxing.integration.android.IntentIntegrator -import java.net.MalformedURLException import java.security.SecureRandom @@ -320,18 +319,8 @@ class ChannelFragment : ScreenFragment("Channel"), Logging { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { val result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data) if (result != null) { - if (result.contents == null) { - Snackbar.make(binding.scanButton, R.string.channel_invalid, Snackbar.LENGTH_LONG).show() - } else { - try { - val intent = Intent(Intent.ACTION_VIEW) - intent.data = ChannelSet(Uri.parse(result.contents)).getChannelUrl(false) - startActivity(intent) - } catch (ex: ActivityNotFoundException) { - Snackbar.make(binding.scanButton, R.string.channel_invalid, Snackbar.LENGTH_LONG).show() - } catch (ex: MalformedURLException) { - Snackbar.make(binding.scanButton, R.string.channel_invalid, Snackbar.LENGTH_LONG).show() - } + if (result.contents != null) { + ((requireActivity() as MainActivity).perhapsChangeChannel(Uri.parse(result.contents))) } } else { super.onActivityResult(requestCode, resultCode, data) From f540a7ad94c61f8400644ff69189ea2702b96afa Mon Sep 17 00:00:00 2001 From: andrekir Date: Thu, 3 Feb 2022 02:14:41 -0300 Subject: [PATCH 2/3] remove icon from reset channel --- .../main/res/drawable/ic_twotone_public_24.xml | 15 --------------- app/src/main/res/layout/channel_fragment.xml | 1 - 2 files changed, 16 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_twotone_public_24.xml diff --git a/app/src/main/res/drawable/ic_twotone_public_24.xml b/app/src/main/res/drawable/ic_twotone_public_24.xml deleted file mode 100644 index 403051e61..000000000 --- a/app/src/main/res/drawable/ic_twotone_public_24.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/app/src/main/res/layout/channel_fragment.xml b/app/src/main/res/layout/channel_fragment.xml index d916757ca..77b252e7d 100644 --- a/app/src/main/res/layout/channel_fragment.xml +++ b/app/src/main/res/layout/channel_fragment.xml @@ -100,7 +100,6 @@ android:layout_height="wrap_content" android:layout_marginEnd="10dp" android:text="@string/reset" - app:icon="@drawable/ic_twotone_public_24" app:layout_constraintBottom_toBottomOf="@id/bottomButtonsGuideline" app:layout_constraintEnd_toStartOf="@id/editableCheckbox" /> From c547109f80348def1c6d804282ad13e591b73184 Mon Sep 17 00:00:00 2001 From: andrekir Date: Thu, 3 Feb 2022 02:16:31 -0300 Subject: [PATCH 3/3] change to snackbar notifications --- .../java/com/geeksville/mesh/MainActivity.kt | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index decbf2dce..3ccba9869 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -60,7 +60,6 @@ import com.google.android.gms.tasks.Task import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import com.google.android.material.tabs.TabLayoutMediator -import com.google.protobuf.InvalidProtocolBufferException import com.vorlonsoft.android.rate.AppRate import com.vorlonsoft.android.rate.StoreType import kotlinx.coroutines.* @@ -388,12 +387,7 @@ class MainActivity : AppCompatActivity(), Logging, return if (message != null) { errormsg("Denied permissions: $message") - Snackbar.make(findViewById(android.R.id.content), message, Snackbar.LENGTH_INDEFINITE) - .apply { view.findViewById(R.id.snackbar_text).isSingleLine = false } - .setAction(R.string.okay) { - // dismiss - } - .show() + showSnackbar(message) true } else false @@ -814,20 +808,25 @@ class MainActivity : AppCompatActivity(), Logging, } } - private fun showToast(msgId: Int) { - Toast.makeText( - this, + private fun showSnackbar(msgId: Int) { + Snackbar.make( + findViewById(android.R.id.content), msgId, - Toast.LENGTH_LONG + Snackbar.LENGTH_LONG ).show() } - private fun showToast(msg: String) { - Toast.makeText( - this, + private fun showSnackbar(msg: String) { + Snackbar.make( + findViewById(android.R.id.content), msg, - Toast.LENGTH_LONG - ).show() + Snackbar.LENGTH_INDEFINITE + ) + .apply { view.findViewById(R.id.snackbar_text).isSingleLine = false } + .setAction(R.string.okay) { + // dismiss + } + .show() } fun perhapsChangeChannel(url: Uri? = requestedChannelUrl) { @@ -837,7 +836,7 @@ class MainActivity : AppCompatActivity(), Logging, val channels = ChannelSet(url) val primary = channels.primaryChannel if (primary == null) - showToast(R.string.channel_invalid) + showSnackbar(R.string.channel_invalid) else { requestedChannelUrl = null @@ -853,13 +852,14 @@ class MainActivity : AppCompatActivity(), Logging, model.setChannels(channels) } catch (ex: RemoteException) { errormsg("Couldn't change channel ${ex.message}") - showToast(R.string.cant_change_no_radio) + showSnackbar(R.string.cant_change_no_radio) } } .show() } - } catch (ex: InvalidProtocolBufferException) { - showToast(R.string.channel_invalid) + } catch (ex: Throwable) { + errormsg("Channel url error: ${ex.message}") + showSnackbar("${getString(R.string.channel_invalid)}: ${ex.message}") } } } @@ -1184,7 +1184,7 @@ class MainActivity : AppCompatActivity(), Logging, try { val packageInfo: PackageInfo = packageManager.getPackageInfo(packageName, 0) val versionName = packageInfo.versionName - showToast(versionName) + Toast.makeText(this, versionName, Toast.LENGTH_LONG).show() } catch (e: PackageManager.NameNotFoundException) { errormsg("Can not find the version: ${e.message}") }