Compare commits
14 Commits
v123020521
...
v123030621
Author | SHA1 | Date | |
---|---|---|---|
f72ef2f5d4 | |||
f28cb759df | |||
b9d69c3e64 | |||
c2a1c9eaac | |||
bf37209a15 | |||
2c558fe6fd | |||
ad88011454 | |||
559c17bc1d | |||
ab9c46f0eb | |||
aa799d2ca8 | |||
177c978474 | |||
39b9991413 | |||
b303f110f1 | |||
f851941a6a |
@ -48,10 +48,11 @@ steps:
|
||||
commands:
|
||||
- apt-get update && apt-get install -y git
|
||||
- git fetch --tags -p
|
||||
- PREV=$(git describe --tags --abbrev=0)
|
||||
- ./build.sh --publish --from-ci
|
||||
- git remote add pushing https://$GITEA_USR:$GITEA_PASS@gitea.amine-louveau.fr/Louvorg/ReaderForSelfoss-multiplatform.git
|
||||
- VER=$(git describe --tags --abbrev=0)
|
||||
- CHANGELOG=$(git log $VER..HEAD --pretty="- %s")
|
||||
- CHANGELOG=$(git log $PREV..HEAD --pretty="- %s")
|
||||
- echo "**$VER**\n\n$CHANGELOG\n\n--------------------------------------------------------------------\n\n$(cat CHANGELOG.md)" > CHANGELOG.md
|
||||
- git add CHANGELOG.md
|
||||
- git commit -m "Changelog for $VER [CI SKIP]"
|
||||
|
23
CHANGELOG.md
23
CHANGELOG.md
@ -1,3 +1,26 @@
|
||||
**v123020572**
|
||||
|
||||
- fix: requirecontext issues ?
|
||||
- debug: activity not found exception.
|
||||
- Changelog for v123020571 [CI SKIP]
|
||||
|
||||
--------------------------------------------------------------------
|
||||
|
||||
**v123020571**
|
||||
|
||||
- chore: remove errors logging.
|
||||
- fix: quickfix for url param not provided for some sources.
|
||||
- Update 'CHANGELOG.md'
|
||||
- Changelog for v123020523 [CI SKIP]
|
||||
|
||||
--------------------------------------------------------------------
|
||||
|
||||
**v123020523**
|
||||
|
||||
- fix: Git changelog.
|
||||
|
||||
--------------------------------------------------------------------
|
||||
|
||||
**v123020491**
|
||||
|
||||
- fix: Fixed acra bug reporting.
|
||||
|
@ -145,8 +145,8 @@ dependencies {
|
||||
implementation("com.amulyakhare:com.amulyakhare.textdrawable:1.0.1")
|
||||
|
||||
// glide
|
||||
kapt("com.github.bumptech.glide:compiler:4.14.2")
|
||||
implementation("com.github.bumptech.glide:okhttp3-integration:4.14.2")
|
||||
kapt("com.github.bumptech.glide:compiler:4.15.0")
|
||||
implementation("com.github.bumptech.glide:okhttp3-integration:4.15.0")
|
||||
|
||||
// Themes
|
||||
implementation("com.github.rubensousa:floatingtoolbar:1.5.1")
|
||||
|
@ -1,5 +1,6 @@
|
||||
package bou.amine.apps.readerforselfossv2.android.fragments
|
||||
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.Intent
|
||||
import android.content.res.ColorStateList
|
||||
import android.content.res.TypedArray
|
||||
@ -150,6 +151,7 @@ class ArticleFragment : Fragment(), DIAware {
|
||||
|
||||
} catch (e: InflateException) {
|
||||
e.sendSilentlyWithAcraWithName("webview not available")
|
||||
if (context != null) {
|
||||
AlertDialog.Builder(requireContext())
|
||||
.setMessage(requireContext().getString(R.string.webview_dialog_issue_message))
|
||||
.setTitle(requireContext().getString(R.string.webview_dialog_issue_title))
|
||||
@ -162,6 +164,7 @@ class ArticleFragment : Fragment(), DIAware {
|
||||
.create()
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
||||
return binding.root
|
||||
}
|
||||
@ -304,10 +307,16 @@ class ArticleFragment : Fragment(), DIAware {
|
||||
binding.webcontent.webViewClient = object : WebViewClient() {
|
||||
@Deprecated("Deprecated in Java")
|
||||
override fun shouldOverrideUrlLoading(view: WebView?, url: String): Boolean {
|
||||
if (binding.webcontent.hitTestResult.type != WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
|
||||
return if (context != null && binding.webcontent.hitTestResult.type != WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
|
||||
try {
|
||||
requireContext().startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
e.sendSilentlyWithAcraWithName("activityNotFound > $url")
|
||||
}
|
||||
true
|
||||
} else {
|
||||
false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
@Deprecated("Deprecated in Java")
|
||||
@ -325,7 +334,7 @@ class ArticleFragment : Fragment(), DIAware {
|
||||
getBitmapInputStream(image, Bitmap.CompressFormat.JPEG)
|
||||
)
|
||||
} catch (e: ExecutionException) {
|
||||
e.sendSilentlyWithAcraWithName("shouldInterceptRequest > jpeg > $url")
|
||||
// Do nothing
|
||||
}
|
||||
} else if (url.lowercase(Locale.US).contains(".png")) {
|
||||
try {
|
||||
@ -337,7 +346,7 @@ class ArticleFragment : Fragment(), DIAware {
|
||||
getBitmapInputStream(image, Bitmap.CompressFormat.PNG)
|
||||
)
|
||||
} catch (e: ExecutionException) {
|
||||
e.sendSilentlyWithAcraWithName("shouldInterceptRequest > png > $url")
|
||||
// Do nothing
|
||||
}
|
||||
} else if (url.lowercase(Locale.US).contains(".webp")) {
|
||||
try {
|
||||
@ -349,7 +358,7 @@ class ArticleFragment : Fragment(), DIAware {
|
||||
getBitmapInputStream(image, Bitmap.CompressFormat.WEBP)
|
||||
)
|
||||
} catch (e: ExecutionException) {
|
||||
e.sendSilentlyWithAcraWithName("shouldInterceptRequest > webp > $url")
|
||||
// Do nothing
|
||||
}
|
||||
}
|
||||
|
||||
@ -359,7 +368,7 @@ class ArticleFragment : Fragment(), DIAware {
|
||||
}
|
||||
|
||||
private fun htmlToWebview() {
|
||||
|
||||
if (context != null) {
|
||||
val attrs: IntArray = intArrayOf(android.R.attr.fontFamily)
|
||||
val a: TypedArray = requireContext().obtainStyledAttributes(resId, attrs)
|
||||
|
||||
@ -500,6 +509,7 @@ class ArticleFragment : Fragment(), DIAware {
|
||||
null
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun scrollDown() {
|
||||
val height = binding.nestedScrollView.measuredHeight
|
||||
|
@ -20,10 +20,8 @@ import bou.amine.apps.readerforselfossv2.repository.Repository
|
||||
import bou.amine.apps.readerforselfossv2.utils.getHtmlDecoded
|
||||
import bou.amine.apps.readerforselfossv2.utils.getIcon
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.load.DataSource
|
||||
import com.bumptech.glide.load.engine.GlideException
|
||||
import com.bumptech.glide.request.RequestListener
|
||||
import com.bumptech.glide.request.target.Target
|
||||
import com.bumptech.glide.request.target.ViewTarget
|
||||
import com.bumptech.glide.request.transition.Transition
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import com.google.android.material.chip.Chip
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@ -90,31 +88,19 @@ class FilterSheetFragment : BottomSheetDialogFragment(), DIAware {
|
||||
|
||||
Glide.with(context)
|
||||
.load(source.getIcon(repository.baseUrl))
|
||||
.listener(object : RequestListener<Drawable?> {
|
||||
override fun onLoadFailed(
|
||||
e: GlideException?,
|
||||
model: Any?,
|
||||
target: Target<Drawable?>?,
|
||||
isFirstResource: Boolean
|
||||
): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
.into(object : ViewTarget<Chip?, Drawable?>(c) {
|
||||
override fun onResourceReady(
|
||||
resource: Drawable?,
|
||||
model: Any?,
|
||||
target: Target<Drawable?>?,
|
||||
dataSource: DataSource?,
|
||||
isFirstResource: Boolean
|
||||
): Boolean {
|
||||
resource: Drawable,
|
||||
transition: Transition<in Drawable?>?
|
||||
) {
|
||||
try {
|
||||
c.chipIcon = resource
|
||||
} catch (e: Exception) {
|
||||
e.sendSilentlyWithAcraWithName("sources > onResourceReady")
|
||||
}
|
||||
return false
|
||||
}
|
||||
}).preload()
|
||||
|
||||
})
|
||||
|
||||
c.text = source.title.getHtmlDecoded()
|
||||
|
||||
|
@ -76,7 +76,7 @@ class SelfossModel {
|
||||
)
|
||||
@Serializable
|
||||
data class SourceParams(
|
||||
val url: String
|
||||
val url: String? = null
|
||||
)
|
||||
@Serializable
|
||||
data class Item(
|
||||
|
Reference in New Issue
Block a user