From 0866f1cb87bd8374d2581a5f806f05e320b0b072 Mon Sep 17 00:00:00 2001 From: saulhdev Date: Sat, 21 Sep 2024 21:52:09 -0600 Subject: [PATCH] Added option to open feed in WebView Signed-off-by: saulhdev --- .../feeder/feed/binders/StoryCardBinder.kt | 23 +++++++++++++------ .../saulhdev/feeder/overlay/OverlayView.kt | 4 ++-- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/saulhdev/feeder/feed/binders/StoryCardBinder.kt b/app/src/main/java/com/saulhdev/feeder/feed/binders/StoryCardBinder.kt index e2131ea..e41255e 100644 --- a/app/src/main/java/com/saulhdev/feeder/feed/binders/StoryCardBinder.kt +++ b/app/src/main/java/com/saulhdev/feeder/feed/binders/StoryCardBinder.kt @@ -18,7 +18,7 @@ import com.saulhdev.feeder.theme.Theming import com.saulhdev.feeder.utils.RelativeTimeHelper import com.saulhdev.feeder.utils.isDark import com.saulhdev.feeder.utils.launchView -import com.saulhdev.feeder.utils.urlEncode +import com.saulhdev.feeder.utils.openLinkInCustomTab import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -93,12 +93,21 @@ object StoryCardBinder : FeedBinder { ) ) } else { - view.context.startActivity( - MainActivity.navigateIntent( - view.context, - "${Routes.WEB_VIEW}/${content.link.urlEncode()}" - ) - ) + scope.launch { + if (prefs.offlineReader.getValue()) { + view.context.startActivity( + MainActivity.navigateIntent( + context, + "${Routes.ARTICLE_VIEW}/${item.id}" + ) + ) + } else { + openLinkInCustomTab( + context, + content.link + ) + } + } } } } diff --git a/app/src/main/java/com/saulhdev/feeder/overlay/OverlayView.kt b/app/src/main/java/com/saulhdev/feeder/overlay/OverlayView.kt index 6ad7600..61264b9 100644 --- a/app/src/main/java/com/saulhdev/feeder/overlay/OverlayView.kt +++ b/app/src/main/java/com/saulhdev/feeder/overlay/OverlayView.kt @@ -56,12 +56,12 @@ import com.saulhdev.feeder.views.DialogMenu import kotlinx.coroutines.CoroutineName import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.mapLatest import kotlinx.coroutines.launch import kotlinx.coroutines.plus import org.koin.java.KoinJavaComponent.inject - class OverlayView(val context: Context) : OverlayController(context, R.style.AppTheme, R.style.WindowTheme), OverlayBridge.OverlayBridgeCallback { @@ -77,7 +77,6 @@ class OverlayView(val context: Context) : val prefs = FeedPreferences.getInstance(context) - private fun setTheme(force: String?) { themeHolder.setTheme( when (force ?: prefs.overlayTheme.getValue()) { @@ -208,6 +207,7 @@ class OverlayView(val context: Context) : ) } + @OptIn(ExperimentalCoroutinesApi::class) override fun onCreate(bundle: Bundle?) { super.onCreate(bundle) getWindow().decorView.systemUiVisibility =