diff --git a/app/build.gradle b/app/build.gradle
index 7d1fea5ef..1368b79fc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -15,8 +15,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdkVersion 21
targetSdkVersion 32
- versionCode 418
- versionName '3.4.6'
+ versionCode 419
+ versionName '3.4.7'
generatedDensities = []
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -84,7 +84,7 @@ afterEvaluate {
}
}
dependencies {
- implementation('com.github.nv95:kotatsu-parsers:fadb06aabb') {
+ implementation('com.github.nv95:kotatsu-parsers:7588617316') {
exclude group: 'org.json', module: 'json'
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/SelectableTextView.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/SelectableTextView.kt
new file mode 100644
index 000000000..e931853f0
--- /dev/null
+++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/widgets/SelectableTextView.kt
@@ -0,0 +1,29 @@
+package org.koitharu.kotatsu.base.ui.widgets
+
+import android.content.Context
+import android.text.Selection
+import android.text.Spannable
+import android.util.AttributeSet
+import android.view.MotionEvent
+import androidx.annotation.AttrRes
+import com.google.android.material.textview.MaterialTextView
+
+class SelectableTextView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ @AttrRes defStyleAttr: Int = android.R.attr.textViewStyle,
+) : MaterialTextView(context, attrs, defStyleAttr) {
+
+ override fun dispatchTouchEvent(event: MotionEvent?): Boolean {
+ fixSelectionRange()
+ return super.dispatchTouchEvent(event)
+ }
+
+ // https://stackoverflow.com/questions/22810147/error-when-selecting-text-from-textview-java-lang-indexoutofboundsexception-se
+ private fun fixSelectionRange() {
+ if (selectionStart < 0 || selectionEnd < 0) {
+ val spannableText = text as? Spannable ?: return
+ Selection.setSelection(spannableText, text.length)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt
index a695176c7..fe1c23770 100644
--- a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListFragment.kt
@@ -107,7 +107,7 @@ abstract class MangaListFragment :
setOnRefreshListener(this@MangaListFragment)
isEnabled = isSwipeRefreshEnabled
}
- addMenuProvider(MangaListMenuProvider(childFragmentManager))
+ addMenuProvider(MangaListMenuProvider(this))
viewModel.listMode.observe(viewLifecycleOwner, ::onListModeChanged)
viewModel.gridScale.observe(viewLifecycleOwner, ::onGridScaleChanged)
diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListMenuProvider.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListMenuProvider.kt
index 5950cd546..592ed9369 100644
--- a/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListMenuProvider.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/MangaListMenuProvider.kt
@@ -4,11 +4,11 @@ import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import androidx.core.view.MenuProvider
-import androidx.fragment.app.FragmentManager
+import androidx.fragment.app.Fragment
import org.koitharu.kotatsu.R
class MangaListMenuProvider(
- private val fragmentManager: FragmentManager,
+ private val fragment: Fragment,
) : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
@@ -17,7 +17,7 @@ class MangaListMenuProvider(
override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
R.id.action_list_mode -> {
- ListModeSelectDialog.show(fragmentManager)
+ ListModeSelectDialog.show(fragment.childFragmentManager)
true
}
else -> false
diff --git a/app/src/main/res/layout-w600dp/fragment_details.xml b/app/src/main/res/layout-w600dp/fragment_details.xml
index da0609645..05271da72 100644
--- a/app/src/main/res/layout-w600dp/fragment_details.xml
+++ b/app/src/main/res/layout-w600dp/fragment_details.xml
@@ -218,7 +218,7 @@
app:layout_constraintTop_toBottomOf="@id/recyclerView_bookmarks"
tools:visibility="visible" />
-
diff --git a/app/src/main/res/layout/fragment_details.xml b/app/src/main/res/layout/fragment_details.xml
index 22b45f4d5..09f271553 100644
--- a/app/src/main/res/layout/fragment_details.xml
+++ b/app/src/main/res/layout/fragment_details.xml
@@ -215,7 +215,7 @@
app:layout_constraintTop_toBottomOf="@id/recyclerView_bookmarks"
tools:visibility="visible" />
- Ungültige Domäne
Lesen
Bereich auswählen
+ Inhalt nicht gefunden oder entfernt
\ No newline at end of file
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index eaefdaa71..62ae98170 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -309,4 +309,5 @@
Tietojen poistaminen
Näytä kaikki
Valitse alue
+ Sisältöä ei löydy tai se on poistettu
\ No newline at end of file
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 5766fde42..715426b0c 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -319,4 +319,5 @@
Relecture
Domaine invalide
Sélectionner une plage
+ Contenu non trouvé ou supprimé
\ No newline at end of file
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 88eb65044..cfcbf91fb 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -319,4 +319,5 @@
Abbandonato
Dominio non valido
Seleziona l\'intervallo
+ Contenuto non trovato o rimosso
\ No newline at end of file
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 55469e6a2..21bae11a6 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -318,4 +318,6 @@
NSFWとマークされたマンガは履歴に追加されず、進行状況も保存されない
すべて表示
無効なドメイン
+ 範囲を選択
+ コンテンツが見つからない、または削除された
\ No newline at end of file
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index a28015222..a80cd86bb 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -319,4 +319,5 @@
Tümünü göster
Geçersiz etki alanı
Aralık seç
+ İçerik bulunamadı veya kaldırıldı
\ No newline at end of file
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index c46882135..1f2932beb 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -318,4 +318,6 @@
Манґа, позначена як NSFW, ніколи не буде додана до історії і ваш прогрес не буде збережений
Може допомогти в разі виникнення проблем. Усі авторизації будуть анульовані
Показати всі
+ Виберіть діапазон
+ Вміст не знайдено або видалено
\ No newline at end of file