forked from Louvorg/ReaderForSelfoss-multiplatform
Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e36189e2e7 | ||
|
|
d6bdf510a4 | ||
|
|
a464e93370 | ||
|
|
4b63afe62a | ||
|
|
ac4c4b9441 | ||
|
|
16b10dc1b7 | ||
|
|
6d610ed61a | ||
|
|
792950be7c |
@@ -6,6 +6,7 @@ plugins {
|
||||
id("com.android.application")
|
||||
kotlin("android")
|
||||
kotlin("kapt")
|
||||
id("com.mikepenz.aboutlibraries.plugin")
|
||||
}
|
||||
|
||||
fun Project.execWithOutput(cmd: String, ignore: Boolean = false): String {
|
||||
@@ -62,7 +63,7 @@ android {
|
||||
kotlinOptions {
|
||||
jvmTarget = "11"
|
||||
}
|
||||
compileSdk = 32
|
||||
compileSdk = 33
|
||||
buildToolsVersion = "31.0.0"
|
||||
buildFeatures {
|
||||
viewBinding = true
|
||||
@@ -70,7 +71,7 @@ android {
|
||||
defaultConfig {
|
||||
applicationId = "bou.amine.apps.readerforselfossv2.android"
|
||||
minSdk = 21
|
||||
targetSdk = 32
|
||||
targetSdk = 33
|
||||
versionCode = versionCodeFromGit()
|
||||
versionName = versionNameFromGit()
|
||||
|
||||
@@ -138,9 +139,8 @@ dependencies {
|
||||
implementation("androidx.multidex:multidex:2.0.1")
|
||||
|
||||
// About
|
||||
implementation("com.mikepenz:aboutlibraries-core:8.9.4")
|
||||
implementation("com.mikepenz:aboutlibraries:8.9.4")
|
||||
implementation("com.mikepenz:aboutlibraries-definitions:8.9.4")
|
||||
implementation("com.mikepenz:aboutlibraries-core:10.5.1")
|
||||
implementation("com.mikepenz:aboutlibraries:10.5.1")
|
||||
|
||||
// Retrofit + http logging + okhttp
|
||||
implementation("com.squareup.retrofit2:retrofit:2.9.0")
|
||||
@@ -209,4 +209,14 @@ tasks.withType<Test> {
|
||||
)
|
||||
showStandardStreams = true
|
||||
}
|
||||
}
|
||||
|
||||
aboutLibraries {
|
||||
offlineMode = true
|
||||
fetchRemoteLicense = false
|
||||
fetchRemoteFunding = false
|
||||
includePlatform = false
|
||||
strictMode = com.mikepenz.aboutlibraries.plugin.StrictMode.FAIL
|
||||
duplicationMode = com.mikepenz.aboutlibraries.plugin.DuplicateMode.MERGE
|
||||
duplicationRule = com.mikepenz.aboutlibraries.plugin.DuplicateRule.GROUP
|
||||
}
|
||||
+2
-2
@@ -36,9 +36,9 @@ class ReaderActivity : AppCompatActivity(), DIAware {
|
||||
|
||||
private fun showMenuItem(willAddToFavorite: Boolean) {
|
||||
if (willAddToFavorite) {
|
||||
toolbarMenu.findItem(R.id.star).icon.setTint(Color.WHITE)
|
||||
toolbarMenu.findItem(R.id.star).icon?.setTint(Color.WHITE)
|
||||
} else {
|
||||
toolbarMenu.findItem(R.id.star).icon.setTint(Color.RED)
|
||||
toolbarMenu.findItem(R.id.star).icon?.setTint(Color.RED)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,13 +63,6 @@ class SourcesActivity : AppCompatActivity(), DIAware {
|
||||
)
|
||||
binding.recyclerView.adapter = mAdapter
|
||||
mAdapter.notifyDataSetChanged()
|
||||
if (items.isEmpty()) {
|
||||
Toast.makeText(
|
||||
this@SourcesActivity,
|
||||
R.string.nothing_here,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(
|
||||
this@SourcesActivity,
|
||||
|
||||
+9
-5
@@ -61,9 +61,13 @@ class SourcesListAdapter(
|
||||
binding.sourceTitle.text = itm.title.getHtmlDecoded()
|
||||
}
|
||||
|
||||
override fun getItemId(position: Int) = position.toLong()
|
||||
|
||||
override fun getItemViewType(position: Int) = position
|
||||
|
||||
override fun getItemCount(): Int = items.size
|
||||
|
||||
inner class ViewHolder(internal val mView: ConstraintLayout) : RecyclerView.ViewHolder(mView) {
|
||||
inner class ViewHolder(private val mView: ConstraintLayout) : RecyclerView.ViewHolder(mView) {
|
||||
|
||||
init {
|
||||
handleClickListeners()
|
||||
@@ -74,13 +78,13 @@ class SourcesListAdapter(
|
||||
val deleteBtn: Button = mView.findViewById(R.id.deleteBtn)
|
||||
|
||||
deleteBtn.setOnClickListener {
|
||||
val (id) = items[adapterPosition]
|
||||
val (id) = items[bindingAdapterPosition]
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
val successfullyDeletedSource = repository.deleteSource(id)
|
||||
if (successfullyDeletedSource) {
|
||||
items.removeAt(adapterPosition)
|
||||
notifyItemRemoved(adapterPosition)
|
||||
notifyItemRangeChanged(adapterPosition, itemCount)
|
||||
items.removeAt(bindingAdapterPosition)
|
||||
notifyItemRemoved(bindingAdapterPosition)
|
||||
notifyItemRangeChanged(bindingAdapterPosition, itemCount)
|
||||
} else {
|
||||
Toast.makeText(
|
||||
app,
|
||||
|
||||
+1
-1
@@ -389,7 +389,7 @@ class ArticleFragment : Fragment(), DIAware {
|
||||
}
|
||||
|
||||
val gestureDetector = GestureDetector(activity, object : GestureDetector.SimpleOnGestureListener() {
|
||||
override fun onSingleTapUp(e: MotionEvent?): Boolean {
|
||||
override fun onSingleTapUp(e: MotionEvent): Boolean {
|
||||
return performClick()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -299,9 +299,9 @@ class RepositoryTest {
|
||||
}
|
||||
|
||||
assertSame(true, success)
|
||||
assertSame(NUMBER_ARTICLES, repository.badgeAll)
|
||||
assertSame(NUMBER_UNREAD, repository.badgeUnread)
|
||||
assertSame(NUMBER_STARRED, repository.badgeStarred)
|
||||
assertEquals(NUMBER_ARTICLES, repository.badgeAll.value)
|
||||
assertEquals(NUMBER_UNREAD, repository.badgeUnread.value)
|
||||
assertEquals(NUMBER_STARRED, repository.badgeStarred.value)
|
||||
coVerify(atLeast = 1) { api.stats() }
|
||||
verify(exactly = 0) { db.itemsQueries.items().executeAsList() }
|
||||
}
|
||||
@@ -318,9 +318,9 @@ class RepositoryTest {
|
||||
}
|
||||
|
||||
assertSame(false, success)
|
||||
assertSame(0, repository.badgeAll)
|
||||
assertSame(0, repository.badgeUnread)
|
||||
assertSame(0, repository.badgeStarred)
|
||||
assertSame(0, repository.badgeAll.value)
|
||||
assertSame(0, repository.badgeUnread.value)
|
||||
assertSame(0, repository.badgeStarred.value)
|
||||
coVerify(atLeast = 1) { api.stats() }
|
||||
verify(exactly = 0) { db.itemsQueries.items().executeAsList() }
|
||||
}
|
||||
@@ -338,9 +338,9 @@ class RepositoryTest {
|
||||
}
|
||||
|
||||
assertTrue(success)
|
||||
assertSame(1, repository.badgeAll)
|
||||
assertSame(1, repository.badgeUnread)
|
||||
assertSame(1, repository.badgeStarred)
|
||||
assertEquals(1, repository.badgeAll.value)
|
||||
assertEquals(1, repository.badgeUnread.value)
|
||||
assertEquals(1, repository.badgeStarred.value)
|
||||
coVerify(exactly = 0) { api.stats() }
|
||||
verify(atLeast = 1) { db.itemsQueries.items().executeAsList() }
|
||||
}
|
||||
@@ -358,9 +358,9 @@ class RepositoryTest {
|
||||
}
|
||||
|
||||
assertFalse(success)
|
||||
assertSame(0, repository.badgeAll)
|
||||
assertSame(0, repository.badgeUnread)
|
||||
assertSame(0, repository.badgeStarred)
|
||||
assertSame(0, repository.badgeAll.value)
|
||||
assertSame(0, repository.badgeUnread.value)
|
||||
assertSame(0, repository.badgeStarred.value)
|
||||
coVerify(exactly = 0) { api.stats() }
|
||||
verify(exactly = 0) { db.itemsQueries.items().executeAsList() }
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ plugins {
|
||||
kotlin("android").version("1.7.20").apply(false)
|
||||
kotlin("multiplatform").version("1.7.20").apply(false)
|
||||
id("org.sonarqube").version("3.4.0.2513").apply(false)
|
||||
id("com.mikepenz.aboutlibraries.plugin").version("10.5.1").apply(false)
|
||||
}
|
||||
|
||||
apply(plugin = "org.sonarqube")
|
||||
|
||||
Reference in New Issue
Block a user