From 5954029a7cc7f95b4782f53b6a688651c403e0e3 Mon Sep 17 00:00:00 2001 From: Mygod Date: Fri, 22 Feb 2019 12:10:22 +0800 Subject: [PATCH] Catch more exceptions for startActivity --- .../be/mygod/vpnhotspot/manage/ManageBar.kt | 23 ++++++------------- .../mygod/vpnhotspot/manage/TetherManager.kt | 3 +-- .../java/be/mygod/vpnhotspot/util/Utils.kt | 3 ++- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/ManageBar.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/ManageBar.kt index 52d03634..261a389b 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/ManageBar.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/ManageBar.kt @@ -1,6 +1,5 @@ package be.mygod.vpnhotspot.manage -import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent import android.os.Build @@ -45,21 +44,13 @@ object ManageBar : Manager() { fun start(context: Context) { try { context.startActivity(Intent().setClassName(SETTINGS_PACKAGE, SETTINGS_1)) - } catch (e: ActivityNotFoundException) { - startAlternative(context, e) - } catch (e: SecurityException) { - startAlternative(context, e) - } - } - - private fun startAlternative(context: Context, e: RuntimeException) { - try { - context.startActivity(Intent().setClassName(SETTINGS_PACKAGE, SETTINGS_2)) - DebugHelper.logEvent(TAG, bundleOf(Pair(SETTINGS_1, e.message))) - } catch (e: ActivityNotFoundException) { - DebugHelper.logEvent(TAG, bundleOf(Pair(SETTINGS_1, e.message), Pair(SETTINGS_2, e.message))) - } catch (e: SecurityException) { - DebugHelper.logEvent(TAG, bundleOf(Pair(SETTINGS_1, e.message), Pair(SETTINGS_2, e.message))) + } catch (e1: RuntimeException) { + try { + context.startActivity(Intent().setClassName(SETTINGS_PACKAGE, SETTINGS_2)) + DebugHelper.logEvent(TAG, bundleOf(Pair(SETTINGS_1, e1.message))) + } catch (e2: RuntimeException) { + DebugHelper.logEvent(TAG, bundleOf(Pair(SETTINGS_1, e1.message), Pair(SETTINGS_2, e2.message))) + } } } } diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt index f887d55d..47feb647 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/TetherManager.kt @@ -1,6 +1,5 @@ package be.mygod.vpnhotspot.manage -import android.content.ActivityNotFoundException import android.content.Intent import android.os.Build import android.provider.Settings @@ -50,7 +49,7 @@ sealed class TetherManager(protected val parent: TetheringFragment) : Manager(), manager.parent.startActivity(Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, "package:${mainActivity.packageName}".toUri())) return - } catch (e: ActivityNotFoundException) { + } catch (e: RuntimeException) { DebugHelper.logEvent("manage_write_settings", bundleOf(Pair("message", e.message))) } val started = manager.isStarted diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt b/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt index 50df1df4..a136236a 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt @@ -14,6 +14,7 @@ import androidx.databinding.BindingAdapter import be.mygod.vpnhotspot.App.Companion.app import be.mygod.vpnhotspot.room.macToString import be.mygod.vpnhotspot.widget.SmartSnackbar +import java.lang.RuntimeException import java.net.InetAddress import java.net.NetworkInterface import java.net.SocketException @@ -79,7 +80,7 @@ fun Context.launchUrl(url: String) { if (app.hasTouch) try { app.customTabsIntent.launchUrl(this, url.toUri()) return - } catch (_: ActivityNotFoundException) { } catch (_: SecurityException) { } + } catch (_: RuntimeException) { } SmartSnackbar.make(url).show() }