diff --git a/androidApp/src/main/java/bou/amine/apps/readerforselfossv2/android/fragments/ArticleFragment.kt b/androidApp/src/main/java/bou/amine/apps/readerforselfossv2/android/fragments/ArticleFragment.kt index 6b1276a..a4ef8f3 100644 --- a/androidApp/src/main/java/bou/amine/apps/readerforselfossv2/android/fragments/ArticleFragment.kt +++ b/androidApp/src/main/java/bou/amine/apps/readerforselfossv2/android/fragments/ArticleFragment.kt @@ -193,41 +193,39 @@ class ArticleFragment : fab.mainFabClosedIconColor = colorOnSurface fab.mainFabOpenedIconColor = colorOnSurface - maybeIfContext { context -> handleFloatingToolbarActionItems(context) } + maybeIfContext { handleFloatingToolbarActionItems(it) } fab.setOnActionSelectedListener { actionItem -> when (actionItem.id) { R.id.share_action -> requireActivity().shareLink(url, contentTitle) R.id.open_action -> requireActivity().openItemUrlInBrowserAsNewTask(this@ArticleFragment.item) R.id.unread_action -> - try { - if (this@ArticleFragment.item.unread) { - CoroutineScope(Dispatchers.IO).launch { - repository.markAsRead(this@ArticleFragment.item) - } - this@ArticleFragment.item.unread = false - maybeIfContext { - Toast - .makeText( - it, - R.string.marked_as_read, - Toast.LENGTH_LONG, - ).show() - } - } else { - CoroutineScope(Dispatchers.IO).launch { - repository.unmarkAsRead(this@ArticleFragment.item) - } - this@ArticleFragment.item.unread = true + if (this@ArticleFragment.item.unread) { + CoroutineScope(Dispatchers.IO).launch { + repository.markAsRead(this@ArticleFragment.item) + } + this@ArticleFragment.item.unread = false + maybeIfContext { Toast .makeText( - context, + it, + R.string.marked_as_read, + Toast.LENGTH_LONG, + ).show() + } + } else { + CoroutineScope(Dispatchers.IO).launch { + repository.unmarkAsRead(this@ArticleFragment.item) + } + this@ArticleFragment.item.unread = true + maybeIfContext { + Toast + .makeText( + it, R.string.marked_as_unread, Toast.LENGTH_LONG, ).show() } - } catch (e: IllegalStateException) { - e.sendSilentlyWithAcraWithName("Toolbar context required is null") } else -> Unit @@ -313,8 +311,8 @@ class ArticleFragment : private fun handleLeadImage(leadImageUrl: String?) { if (!leadImageUrl.isNullOrEmpty()) { - binding.imageView.visibility = View.VISIBLE maybeIfContext { + binding.imageView.visibility = View.VISIBLE it.bitmapFitCenter(leadImageUrl, binding.imageView, appSettingsService) } } else { @@ -397,13 +395,12 @@ class ArticleFragment : WHITE_COLOR_HEX and (if (colorOnSurface != DATA_NULL_UNDEFINED) colorOnSurface else 0), ) + binding.webcontent.settings.useWideViewPort = true + binding.webcontent.settings.loadWithOverviewMode = true + binding.webcontent.settings.javaScriptEnabled = false + + handleImageLoading() try { - binding.webcontent.settings.useWideViewPort = true - binding.webcontent.settings.loadWithOverviewMode = true - binding.webcontent.settings.javaScriptEnabled = false - - handleImageLoading() - val gestureDetector = GestureDetector( activity, @@ -417,49 +414,50 @@ class ArticleFragment : event, ) } - - binding.webcontent.settings.layoutAlgorithm = - WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING } catch (e: IllegalStateException) { - e.sendSilentlyWithAcraWithName("Context is null but wasn't, and that's causing issues with webview config") + e.sendSilentlyWithAcraWithName("Gesture detector issue ?") return } - try { - var baseUrl: String? = null - try { - val itemUrl = URL(url) - baseUrl = itemUrl.protocol + "://" + itemUrl.host - } catch (e: MalformedURLException) { - e.sendSilentlyWithAcraWithName("htmlToWebview > $url") - } + binding.webcontent.settings.layoutAlgorithm = + WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING - val fontName = + var baseUrl: String? = null + try { + val itemUrl = URL(url) + baseUrl = itemUrl.protocol + "://" + itemUrl.host + } catch (e: MalformedURLException) { + e.sendSilentlyWithAcraWithName("htmlToWebview > $url") + } + + val fontName: String = + maybeIfContext { when (font) { - getString(R.string.open_sans_font_id) -> "Open Sans" - getString(R.string.roboto_font_id) -> "Roboto" - getString(R.string.source_code_pro_font_id) -> "Source Code Pro" + it.getString(R.string.open_sans_font_id) -> "Open Sans" + it.getString(R.string.roboto_font_id) -> "Roboto" + it.getString(R.string.source_code_pro_font_id) -> "Source Code Pro" else -> "" } + }?.toString().orEmpty() - val fontLinkAndStyle = - if (font.isNotEmpty()) { - """ + val fontLinkAndStyle = + if (fontName.isNotEmpty()) { + """ | - """.trimMargin() - } else { - "" - } - + """.trimMargin() + } else { + "" + } + try { binding.webcontent.loadDataWithBaseURL( baseUrl, """