Compare commits
6 Commits
v123020572
...
v123030681
Author | SHA1 | Date | |
---|---|---|---|
d9d057c8dc | |||
1f3fa0c4a6 | |||
dea3def385 | |||
f72ef2f5d4 | |||
f28cb759df | |||
b9d69c3e64 |
16
CHANGELOG.md
16
CHANGELOG.md
@ -1,3 +1,19 @@
|
|||||||
|
**v123030621**
|
||||||
|
|
||||||
|
- fix: url required issue.
|
||||||
|
- fix: Canvas reused issue.
|
||||||
|
- Changelog for v123020572 [CI SKIP]
|
||||||
|
|
||||||
|
--------------------------------------------------------------------
|
||||||
|
|
||||||
|
**v123020572**
|
||||||
|
|
||||||
|
- fix: requirecontext issues ?
|
||||||
|
- debug: activity not found exception.
|
||||||
|
- Changelog for v123020571 [CI SKIP]
|
||||||
|
|
||||||
|
--------------------------------------------------------------------
|
||||||
|
|
||||||
**v123020571**
|
**v123020571**
|
||||||
|
|
||||||
- chore: remove errors logging.
|
- chore: remove errors logging.
|
||||||
|
@ -28,7 +28,7 @@ fun gitVersion(): String {
|
|||||||
val maybeTagOfCurrentCommit = execWithOutput("git -C ../ describe --contains HEAD", true)
|
val maybeTagOfCurrentCommit = execWithOutput("git -C ../ describe --contains HEAD", true)
|
||||||
process = if (maybeTagOfCurrentCommit.isEmpty()) {
|
process = if (maybeTagOfCurrentCommit.isEmpty()) {
|
||||||
println("No tag on current commit. Will take the latest one.")
|
println("No tag on current commit. Will take the latest one.")
|
||||||
execWithOutput("git -C ../ for-each-ref refs/tags --sort=-authordate --format='%(refname:short)' --count=1")
|
execWithOutput("git -C ../ for-each-ref refs/tags --sort=-refname --format='%(refname:short)' --count=1")
|
||||||
} else {
|
} else {
|
||||||
println("Tag found on current commit")
|
println("Tag found on current commit")
|
||||||
execWithOutput("git -C ../ describe --contains HEAD")
|
execWithOutput("git -C ../ describe --contains HEAD")
|
||||||
@ -145,8 +145,8 @@ dependencies {
|
|||||||
implementation("com.amulyakhare:com.amulyakhare.textdrawable:1.0.1")
|
implementation("com.amulyakhare:com.amulyakhare.textdrawable:1.0.1")
|
||||||
|
|
||||||
// glide
|
// glide
|
||||||
kapt("com.github.bumptech.glide:compiler:4.14.2")
|
kapt("com.github.bumptech.glide:compiler:4.15.0")
|
||||||
implementation("com.github.bumptech.glide:okhttp3-integration:4.14.2")
|
implementation("com.github.bumptech.glide:okhttp3-integration:4.15.0")
|
||||||
|
|
||||||
// Themes
|
// Themes
|
||||||
implementation("com.github.rubensousa:floatingtoolbar:1.5.1")
|
implementation("com.github.rubensousa:floatingtoolbar:1.5.1")
|
||||||
|
@ -20,10 +20,8 @@ import bou.amine.apps.readerforselfossv2.repository.Repository
|
|||||||
import bou.amine.apps.readerforselfossv2.utils.getHtmlDecoded
|
import bou.amine.apps.readerforselfossv2.utils.getHtmlDecoded
|
||||||
import bou.amine.apps.readerforselfossv2.utils.getIcon
|
import bou.amine.apps.readerforselfossv2.utils.getIcon
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import com.bumptech.glide.load.DataSource
|
import com.bumptech.glide.request.target.ViewTarget
|
||||||
import com.bumptech.glide.load.engine.GlideException
|
import com.bumptech.glide.request.transition.Transition
|
||||||
import com.bumptech.glide.request.RequestListener
|
|
||||||
import com.bumptech.glide.request.target.Target
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||||
import com.google.android.material.chip.Chip
|
import com.google.android.material.chip.Chip
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
@ -90,31 +88,19 @@ class FilterSheetFragment : BottomSheetDialogFragment(), DIAware {
|
|||||||
|
|
||||||
Glide.with(context)
|
Glide.with(context)
|
||||||
.load(source.getIcon(repository.baseUrl))
|
.load(source.getIcon(repository.baseUrl))
|
||||||
.listener(object : RequestListener<Drawable?> {
|
.into(object : ViewTarget<Chip?, Drawable?>(c) {
|
||||||
override fun onLoadFailed(
|
|
||||||
e: GlideException?,
|
|
||||||
model: Any?,
|
|
||||||
target: Target<Drawable?>?,
|
|
||||||
isFirstResource: Boolean
|
|
||||||
): Boolean {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onResourceReady(
|
override fun onResourceReady(
|
||||||
resource: Drawable?,
|
resource: Drawable,
|
||||||
model: Any?,
|
transition: Transition<in Drawable?>?
|
||||||
target: Target<Drawable?>?,
|
) {
|
||||||
dataSource: DataSource?,
|
|
||||||
isFirstResource: Boolean
|
|
||||||
): Boolean {
|
|
||||||
try {
|
try {
|
||||||
c.chipIcon = resource
|
c.chipIcon = resource
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
e.sendSilentlyWithAcraWithName("sources > onResourceReady")
|
e.sendSilentlyWithAcraWithName("sources > onResourceReady")
|
||||||
}
|
}
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
}).preload()
|
|
||||||
|
})
|
||||||
|
|
||||||
c.text = source.title.getHtmlDecoded()
|
c.text = source.title.getHtmlDecoded()
|
||||||
|
|
||||||
|
@ -24,8 +24,8 @@ class SelfossModel {
|
|||||||
@Serializable
|
@Serializable
|
||||||
class Stats(
|
class Stats(
|
||||||
val total: Int,
|
val total: Int,
|
||||||
val unread: Int,
|
val unread: Int?,
|
||||||
val starred: Int
|
val starred: Int?
|
||||||
)
|
)
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
@ -76,7 +76,7 @@ class SelfossModel {
|
|||||||
)
|
)
|
||||||
@Serializable
|
@Serializable
|
||||||
data class SourceParams(
|
data class SourceParams(
|
||||||
val url: String?
|
val url: String? = null
|
||||||
)
|
)
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Item(
|
data class Item(
|
||||||
|
@ -132,9 +132,9 @@ class Repository(
|
|||||||
if (isNetworkAvailable()) {
|
if (isNetworkAvailable()) {
|
||||||
val response = api.stats()
|
val response = api.stats()
|
||||||
if (response.success && response.data != null) {
|
if (response.success && response.data != null) {
|
||||||
_badgeUnread.value = response.data.unread
|
_badgeUnread.value = response.data.unread ?: 0
|
||||||
_badgeAll.value = response.data.total
|
_badgeAll.value = response.data.total
|
||||||
_badgeStarred.value = response.data.starred
|
_badgeStarred.value = response.data.starred ?: 0
|
||||||
success = true
|
success = true
|
||||||
}
|
}
|
||||||
} else if (appSettingsService.isItemCachingEnabled()) {
|
} else if (appSettingsService.isItemCachingEnabled()) {
|
||||||
|
@ -20,7 +20,7 @@ fun SOURCE.toView(): SelfossModel.Source =
|
|||||||
this.spout,
|
this.spout,
|
||||||
this.error,
|
this.error,
|
||||||
this.icon,
|
this.icon,
|
||||||
SelfossModel.SourceParams(this.url)
|
if (this.url != null) SelfossModel.SourceParams(this.url) else null
|
||||||
)
|
)
|
||||||
|
|
||||||
fun SelfossModel.Source.toEntity(): SOURCE =
|
fun SelfossModel.Source.toEntity(): SOURCE =
|
||||||
|
Reference in New Issue
Block a user