Merge branch 'devel' into feature/nextgen
This commit is contained in:
@@ -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'
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -218,7 +218,7 @@
|
||||
app:layout_constraintTop_toBottomOf="@id/recyclerView_bookmarks"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
<org.koitharu.kotatsu.base.ui.widgets.SelectableTextView
|
||||
android:id="@+id/textView_description"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -40,8 +40,6 @@
|
||||
android:maxLines="4"
|
||||
android:padding="@dimen/margin_normal"
|
||||
android:textAlignment="viewStart"
|
||||
android:textAppearance="@style/TextAppearance.Design.Snackbar.Message"
|
||||
android:textColor="@android:color/white"
|
||||
tools:text="Look at all the wonderful snack bar text..." />
|
||||
|
||||
<Button
|
||||
@@ -53,7 +51,6 @@
|
||||
android:paddingStart="@dimen/margin_normal"
|
||||
android:paddingEnd="@dimen/margin_normal"
|
||||
android:visibility="gone"
|
||||
tools:targetApi="o"
|
||||
tools:text="Action"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
app:layout_constraintTop_toBottomOf="@id/recyclerView_bookmarks"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
<org.koitharu.kotatsu.base.ui.widgets.SelectableTextView
|
||||
android:id="@+id/textView_description"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -317,4 +317,5 @@
|
||||
<string name="invalid_domain_message">Ungültige Domäne</string>
|
||||
<string name="status_reading">Lesen</string>
|
||||
<string name="select_range">Bereich auswählen</string>
|
||||
<string name="not_found_404">Inhalt nicht gefunden oder entfernt</string>
|
||||
</resources>
|
||||
@@ -309,4 +309,5 @@
|
||||
<string name="data_deletion">Tietojen poistaminen</string>
|
||||
<string name="show_all">Näytä kaikki</string>
|
||||
<string name="select_range">Valitse alue</string>
|
||||
<string name="not_found_404">Sisältöä ei löydy tai se on poistettu</string>
|
||||
</resources>
|
||||
@@ -319,4 +319,5 @@
|
||||
<string name="status_re_reading">Relecture</string>
|
||||
<string name="invalid_domain_message">Domaine invalide</string>
|
||||
<string name="select_range">Sélectionner une plage</string>
|
||||
<string name="not_found_404">Contenu non trouvé ou supprimé</string>
|
||||
</resources>
|
||||
@@ -319,4 +319,5 @@
|
||||
<string name="status_dropped">Abbandonato</string>
|
||||
<string name="invalid_domain_message">Dominio non valido</string>
|
||||
<string name="select_range">Seleziona l\'intervallo</string>
|
||||
<string name="not_found_404">Contenuto non trovato o rimosso</string>
|
||||
</resources>
|
||||
@@ -318,4 +318,6 @@
|
||||
<string name="exclude_nsfw_from_history_summary">NSFWとマークされたマンガは履歴に追加されず、進行状況も保存されない</string>
|
||||
<string name="show_all">すべて表示</string>
|
||||
<string name="invalid_domain_message">無効なドメイン</string>
|
||||
<string name="select_range">範囲を選択</string>
|
||||
<string name="not_found_404">コンテンツが見つからない、または削除された</string>
|
||||
</resources>
|
||||
@@ -319,4 +319,5 @@
|
||||
<string name="show_all">Tümünü göster</string>
|
||||
<string name="invalid_domain_message">Geçersiz etki alanı</string>
|
||||
<string name="select_range">Aralık seç</string>
|
||||
<string name="not_found_404">İçerik bulunamadı veya kaldırıldı</string>
|
||||
</resources>
|
||||
@@ -318,4 +318,6 @@
|
||||
<string name="exclude_nsfw_from_history_summary">Манґа, позначена як NSFW, ніколи не буде додана до історії і ваш прогрес не буде збережений</string>
|
||||
<string name="clear_cookies_summary">Може допомогти в разі виникнення проблем. Усі авторизації будуть анульовані</string>
|
||||
<string name="show_all">Показати всі</string>
|
||||
<string name="select_range">Виберіть діапазон</string>
|
||||
<string name="not_found_404">Вміст не знайдено або видалено</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user