Compare commits

..

No commits in common. "6b96eb358de41884b9bf3aae64dbac25b8f2cee2" and "b173664ff0506a9ced6350db1b9b7d2e45a8363c" have entirely different histories.

View File

@ -193,39 +193,41 @@ class ArticleFragment :
fab.mainFabClosedIconColor = colorOnSurface fab.mainFabClosedIconColor = colorOnSurface
fab.mainFabOpenedIconColor = colorOnSurface fab.mainFabOpenedIconColor = colorOnSurface
maybeIfContext { handleFloatingToolbarActionItems(it) } maybeIfContext { context -> handleFloatingToolbarActionItems(context) }
fab.setOnActionSelectedListener { actionItem -> fab.setOnActionSelectedListener { actionItem ->
when (actionItem.id) { when (actionItem.id) {
R.id.share_action -> requireActivity().shareLink(url, contentTitle) R.id.share_action -> requireActivity().shareLink(url, contentTitle)
R.id.open_action -> requireActivity().openItemUrlInBrowserAsNewTask(this@ArticleFragment.item) R.id.open_action -> requireActivity().openItemUrlInBrowserAsNewTask(this@ArticleFragment.item)
R.id.unread_action -> R.id.unread_action ->
if (this@ArticleFragment.item.unread) { try {
CoroutineScope(Dispatchers.IO).launch { if (this@ArticleFragment.item.unread) {
repository.markAsRead(this@ArticleFragment.item) CoroutineScope(Dispatchers.IO).launch {
} repository.markAsRead(this@ArticleFragment.item)
this@ArticleFragment.item.unread = false }
maybeIfContext { 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
Toast Toast
.makeText( .makeText(
it, context,
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, R.string.marked_as_unread,
Toast.LENGTH_LONG, Toast.LENGTH_LONG,
).show() ).show()
} }
} catch (e: IllegalStateException) {
e.sendSilentlyWithAcraWithName("Toolbar context required is null")
} }
else -> Unit else -> Unit
@ -311,8 +313,8 @@ class ArticleFragment :
private fun handleLeadImage(leadImageUrl: String?) { private fun handleLeadImage(leadImageUrl: String?) {
if (!leadImageUrl.isNullOrEmpty()) { if (!leadImageUrl.isNullOrEmpty()) {
binding.imageView.visibility = View.VISIBLE
maybeIfContext { maybeIfContext {
binding.imageView.visibility = View.VISIBLE
it.bitmapFitCenter(leadImageUrl, binding.imageView, appSettingsService) it.bitmapFitCenter(leadImageUrl, binding.imageView, appSettingsService)
} }
} else { } else {
@ -395,12 +397,13 @@ class ArticleFragment :
WHITE_COLOR_HEX and (if (colorOnSurface != DATA_NULL_UNDEFINED) colorOnSurface else 0), 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 { try {
binding.webcontent.settings.useWideViewPort = true
binding.webcontent.settings.loadWithOverviewMode = true
binding.webcontent.settings.javaScriptEnabled = false
handleImageLoading()
val gestureDetector = val gestureDetector =
GestureDetector( GestureDetector(
activity, activity,
@ -414,50 +417,49 @@ class ArticleFragment :
event, event,
) )
} }
binding.webcontent.settings.layoutAlgorithm =
WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
} catch (e: IllegalStateException) { } catch (e: IllegalStateException) {
e.sendSilentlyWithAcraWithName("Gesture detector issue ?") e.sendSilentlyWithAcraWithName("Context is null but wasn't, and that's causing issues with webview config")
return return
} }
binding.webcontent.settings.layoutAlgorithm =
WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
var baseUrl: String? = null
try { try {
val itemUrl = URL(url) var baseUrl: String? = null
baseUrl = itemUrl.protocol + "://" + itemUrl.host try {
} catch (e: MalformedURLException) { val itemUrl = URL(url)
e.sendSilentlyWithAcraWithName("htmlToWebview > $url") baseUrl = itemUrl.protocol + "://" + itemUrl.host
} } catch (e: MalformedURLException) {
e.sendSilentlyWithAcraWithName("htmlToWebview > $url")
}
val fontName: String = val fontName =
maybeIfContext {
when (font) { when (font) {
it.getString(R.string.open_sans_font_id) -> "Open Sans" getString(R.string.open_sans_font_id) -> "Open Sans"
it.getString(R.string.roboto_font_id) -> "Roboto" getString(R.string.roboto_font_id) -> "Roboto"
it.getString(R.string.source_code_pro_font_id) -> "Source Code Pro" getString(R.string.source_code_pro_font_id) -> "Source Code Pro"
else -> "" else -> ""
} }
}?.toString().orEmpty()
val fontLinkAndStyle = val fontLinkAndStyle =
if (fontName.isNotEmpty()) { if (font.isNotEmpty()) {
"""<link href="https://fonts.googleapis.com/css?family=${ """<link href="https://fonts.googleapis.com/css?family=${
fontName.replace( fontName.replace(
" ", " ",
"+", "+",
) )
}" rel="stylesheet"> }" rel="stylesheet">
|<style> |<style>
| * { | * {
| font-family: '$fontName'; | font-family: '$fontName';
| } | }
|</style> |</style>
""".trimMargin() """.trimMargin()
} else { } else {
"" ""
} }
try {
binding.webcontent.loadDataWithBaseURL( binding.webcontent.loadDataWithBaseURL(
baseUrl, baseUrl,
"""<html> """<html>