Compare commits
3 Commits
v123113311
...
v124010031
Author | SHA1 | Date | |
---|---|---|---|
6e27d6d4e6 | |||
14ff4dbd05 | |||
390c2d0cf3 |
@ -1,3 +1,11 @@
|
|||||||
|
**v123113311**
|
||||||
|
|
||||||
|
- chore: Source tracker url in the menu.
|
||||||
|
- fix: Handle kodein proguard rules.
|
||||||
|
- Changelog for v123102961 [CI SKIP]
|
||||||
|
|
||||||
|
--------------------------------------------------------------------
|
||||||
|
|
||||||
**v123102961**
|
**v123102961**
|
||||||
|
|
||||||
- chore: domain changes.
|
- chore: domain changes.
|
||||||
|
@ -140,20 +140,25 @@ class LoginActivity : AppCompatActivity(), DIAware {
|
|||||||
repository.refreshLoginInformation(url, login, password)
|
repository.refreshLoginInformation(url, login, password)
|
||||||
|
|
||||||
CoroutineScope(Dispatchers.Main).launch {
|
CoroutineScope(Dispatchers.Main).launch {
|
||||||
|
try {
|
||||||
repository.updateApiInformation()
|
repository.updateApiInformation()
|
||||||
val result = repository.login()
|
} catch (e: Exception) {
|
||||||
if (result) {
|
if (e.message?.startsWith("No transformation found") == true) {
|
||||||
val (errorFetching, displaySelfossOnly) = repository.shouldBeSelfossInstance()
|
|
||||||
if (!errorFetching && !displaySelfossOnly) {
|
|
||||||
goToMain()
|
|
||||||
} else {
|
|
||||||
if (displaySelfossOnly) {
|
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
applicationContext,
|
applicationContext,
|
||||||
R.string.application_selfoss_only,
|
R.string.application_selfoss_only,
|
||||||
Toast.LENGTH_LONG,
|
Toast.LENGTH_LONG,
|
||||||
).show()
|
).show()
|
||||||
|
preferenceError()
|
||||||
|
showProgress(false)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
val result = repository.login()
|
||||||
|
if (result) {
|
||||||
|
val errorFetching = repository.checkIfFetchFails()
|
||||||
|
if (!errorFetching) {
|
||||||
|
goToMain()
|
||||||
|
} else {
|
||||||
preferenceError()
|
preferenceError()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -17,6 +17,7 @@ import bou.amine.apps.readerforselfossv2.android.R
|
|||||||
import bou.amine.apps.readerforselfossv2.android.databinding.FilterFragmentBinding
|
import bou.amine.apps.readerforselfossv2.android.databinding.FilterFragmentBinding
|
||||||
import bou.amine.apps.readerforselfossv2.android.sendSilentlyWithAcraWithName
|
import bou.amine.apps.readerforselfossv2.android.sendSilentlyWithAcraWithName
|
||||||
import bou.amine.apps.readerforselfossv2.repository.Repository
|
import bou.amine.apps.readerforselfossv2.repository.Repository
|
||||||
|
import bou.amine.apps.readerforselfossv2.utils.getColorHexCode
|
||||||
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
|
||||||
@ -147,9 +148,9 @@ class FilterSheetFragment : BottomSheetDialogFragment(), DIAware {
|
|||||||
val gd = GradientDrawable()
|
val gd = GradientDrawable()
|
||||||
val gdColor =
|
val gdColor =
|
||||||
try {
|
try {
|
||||||
Color.parseColor(tag.color)
|
Color.parseColor(tag.getColorHexCode())
|
||||||
} catch (e: IllegalArgumentException) {
|
} catch (e: IllegalArgumentException) {
|
||||||
e.sendSilentlyWithAcraWithName("color issue " + tag.color)
|
e.sendSilentlyWithAcraWithName("color issue " + tag.color + " / " + tag.getColorHexCode())
|
||||||
resources.getColor(R.color.colorPrimary)
|
resources.getColor(R.color.colorPrimary)
|
||||||
}
|
}
|
||||||
gd.setColor(gdColor)
|
gd.setColor(gdColor)
|
||||||
|
@ -8,7 +8,6 @@ import bou.amine.apps.readerforselfossv2.rest.SelfossApi
|
|||||||
import bou.amine.apps.readerforselfossv2.service.AppSettingsService
|
import bou.amine.apps.readerforselfossv2.service.AppSettingsService
|
||||||
import bou.amine.apps.readerforselfossv2.utils.*
|
import bou.amine.apps.readerforselfossv2.utils.*
|
||||||
import io.github.aakira.napier.Napier
|
import io.github.aakira.napier.Napier
|
||||||
import io.ktor.client.call.*
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
@ -429,22 +428,19 @@ class Repository(
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun shouldBeSelfossInstance(): Pair<Boolean, Boolean> {
|
suspend fun checkIfFetchFails(): Boolean {
|
||||||
var fetchFailed = true
|
var fetchFailed = true
|
||||||
var showSelfossOnlyModal = false
|
|
||||||
if (isNetworkAvailable()) {
|
if (isNetworkAvailable()) {
|
||||||
try {
|
try {
|
||||||
// Trying to fetch one item, and check someone is trying to use the app with
|
// Trying to fetch one item, and check someone is trying to use the app with
|
||||||
// a random rss feed, that would throw a NoTransformationFoundException
|
// a random rss feed, that would throw a NoTransformationFoundException
|
||||||
fetchFailed = !api.getItemsWithoutCatch().success
|
fetchFailed = !api.getItemsWithoutCatch().success
|
||||||
} catch (e: NoTransformationFoundException) {
|
|
||||||
showSelfossOnlyModal = true
|
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
Napier.e(e.stackTraceToString(), tag = "RepositoryImpl.shouldBeSelfossInstance")
|
Napier.e(e.stackTraceToString(), tag = "RepositoryImpl.shouldBeSelfossInstance")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Pair(fetchFailed, showSelfossOnlyModal)
|
return fetchFailed
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun logout() {
|
suspend fun logout() {
|
||||||
|
@ -73,3 +73,13 @@ fun SelfossModel.Item.toEntity(): ITEM =
|
|||||||
this.tags.joinToString(","),
|
this.tags.joinToString(","),
|
||||||
this.author,
|
this.author,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
fun SelfossModel.Tag.getColorHexCode(): String =
|
||||||
|
if (this.color.length == 4) { // #000
|
||||||
|
val char1 = this.color.get(1)
|
||||||
|
val char2 = this.color.get(2)
|
||||||
|
val char3 = this.color.get(3)
|
||||||
|
"#$char1$char1$char2$char2$char3$char3"
|
||||||
|
} else {
|
||||||
|
this.color
|
||||||
|
}
|
Reference in New Issue
Block a user