Explorar o código

Fixed startActivityOrNull extension for API 30 and higher

Vadik Sirekanyan %!s(int64=4) %!d(string=hai) anos
pai
achega
14d6e89992

+ 0 - 6
app/src/main/java/com/sirekanyan/knigopis/common/extensions/Context.kt

@@ -2,7 +2,6 @@ package com.sirekanyan.knigopis.common.extensions
 
 import android.content.ClipboardManager
 import android.content.Context
-import android.content.Intent
 import android.content.res.Configuration.UI_MODE_NIGHT_MASK
 import android.content.res.Configuration.UI_MODE_NIGHT_YES
 import android.net.ConnectivityManager
@@ -22,11 +21,6 @@ val Context.systemInputMethodManager: InputMethodManager
 val Context.systemConnectivityManager: ConnectivityManager
     get() = getAndroidSystemService(Context.CONNECTIVITY_SERVICE)
 
-fun Context.startActivityOrNull(intent: Intent): Unit? =
-    packageManager.resolveActivity(intent, 0)?.let {
-        startActivity(intent)
-    }
-
 fun Context.showToast(@StringRes messageId: Int, vararg args: Any) {
     Toast.makeText(this, getString(messageId, *args), Toast.LENGTH_SHORT).show()
 }

+ 6 - 2
app/src/main/java/com/sirekanyan/knigopis/feature/MainActivity.kt

@@ -1,5 +1,6 @@
 package com.sirekanyan.knigopis.feature
 
+import android.content.ActivityNotFoundException
 import android.content.Context
 import android.content.Intent
 import android.content.Intent.*
@@ -11,7 +12,6 @@ import com.sirekanyan.knigopis.common.BaseActivity
 import com.sirekanyan.knigopis.common.extensions.app
 import com.sirekanyan.knigopis.common.extensions.io2main
 import com.sirekanyan.knigopis.common.extensions.showToast
-import com.sirekanyan.knigopis.common.extensions.startActivityOrNull
 import com.sirekanyan.knigopis.common.functions.logError
 import com.sirekanyan.knigopis.dependency.providePresenter
 import com.sirekanyan.knigopis.feature.book.createBookIntent
@@ -123,7 +123,11 @@ class MainActivity : BaseActivity(),
     }
 
     override fun openWebPage(uri: Uri) {
-        startActivityOrNull(Intent(ACTION_VIEW, uri)) ?: showToast(R.string.users_info_no_browser)
+        try {
+            startActivity(Intent(ACTION_VIEW, uri))
+        } catch (ex: ActivityNotFoundException) {
+            showToast(R.string.users_info_no_browser)
+        }
     }
 
 }