This commit is contained in:
Koitharu
2022-03-26 09:07:15 +02:00
parent 85b8bc5d07
commit b0f221e5a7
13 changed files with 51 additions and 20 deletions

View File

@@ -56,7 +56,7 @@ android {
}
lint {
abortOnError false
disable 'MissingTranslation'
disable 'MissingTranslation', 'PrivateResource'
}
testOptions {
unitTests.includeAndroidResources = true
@@ -65,7 +65,7 @@ android {
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation 'com.github.nv95:kotatsu-parsers:e15dbf2a4b'
implementation 'com.github.nv95:kotatsu-parsers:1ba2bba12e'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0'

View File

@@ -4,9 +4,10 @@ import android.content.Context
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.Rect
import androidx.core.content.ContextCompat
import androidx.core.view.children
import androidx.recyclerview.widget.RecyclerView
import org.koitharu.kotatsu.utils.ext.getThemeColor
import org.koitharu.kotatsu.R
class ChaptersSelectionDecoration(context: Context) : RecyclerView.ItemDecoration() {
@@ -15,7 +16,7 @@ class ChaptersSelectionDecoration(context: Context) : RecyclerView.ItemDecoratio
private val paint = Paint(Paint.ANTI_ALIAS_FLAG)
init {
paint.color = context.getThemeColor(com.google.android.material.R.attr.scrimBackground)
paint.color = ContextCompat.getColor(context, R.color.selector_foreground)
paint.style = Paint.Style.FILL
}

View File

@@ -8,6 +8,7 @@ import android.view.MenuItem
import android.view.View
import android.view.ViewGroup.MarginLayoutParams
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.core.content.ContextCompat
import androidx.core.graphics.Insets
import androidx.core.view.GravityCompat
import androidx.core.view.ViewCompat
@@ -62,7 +63,8 @@ import com.google.android.material.R as materialR
private const val TAG_PRIMARY = "primary"
private const val TAG_SEARCH = "search"
class MainActivity : BaseActivity<ActivityMainBinding>(),
class MainActivity :
BaseActivity<ActivityMainBinding>(),
NavigationView.OnNavigationItemSelectedListener,
AppBarOwner,
View.OnClickListener,
@@ -92,6 +94,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>(),
R.string.open_menu,
R.string.close_menu
).apply {
setHomeAsUpIndicator(
ContextCompat.getDrawable(this@MainActivity, materialR.drawable.abc_ic_ab_back_material)
)
setToolbarNavigationClickListener {
binding.searchView.hideKeyboard()
onBackPressed()
@@ -304,11 +309,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>(),
private fun onLoadingStateChanged(isLoading: Boolean) {
binding.fab.isEnabled = !isLoading
if (isLoading) {
binding.fab.setImageDrawable(CircularProgressDrawable(this).also {
it.setColorSchemeColors(R.color.kotatsu_onPrimaryContainer)
it.strokeWidth = resources.resolveDp(3.5f)
it.start()
})
binding.fab.setImageDrawable(
CircularProgressDrawable(this).also {
it.setColorSchemeColors(R.color.kotatsu_onPrimaryContainer)
it.strokeWidth = resources.resolveDp(3.5f)
it.start()
}
)
} else {
binding.fab.setImageResource(R.drawable.ic_read_fill)
}

View File

@@ -8,14 +8,19 @@ import androidx.core.graphics.Insets
import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import androidx.fragment.app.commit
import com.google.android.material.appbar.AppBarLayout
import org.koitharu.kotatsu.BuildConfig
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.base.ui.BaseActivity
import org.koitharu.kotatsu.databinding.ActivitySettingsSimpleBinding
import org.koitharu.kotatsu.main.ui.AppBarOwner
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.settings.*
class SimpleSettingsActivity : BaseActivity<ActivitySettingsSimpleBinding>() {
class SimpleSettingsActivity : BaseActivity<ActivitySettingsSimpleBinding>(), AppBarOwner {
override val appBar: AppBarLayout
get() = binding.appbar
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

View File

@@ -15,7 +15,8 @@ import org.koitharu.kotatsu.main.ui.AppBarOwner
import org.koitharu.kotatsu.search.ui.suggestion.adapter.SearchSuggestionAdapter
import org.koitharu.kotatsu.utils.ext.measureHeight
class SearchSuggestionFragment : BaseFragment<FragmentSearchSuggestionBinding>(),
class SearchSuggestionFragment :
BaseFragment<FragmentSearchSuggestionBinding>(),
SearchSuggestionItemCallback.SuggestionItemListener {
private val viewModel by sharedViewModel<SearchSuggestionViewModel>()
@@ -44,8 +45,8 @@ class SearchSuggestionFragment : BaseFragment<FragmentSearchSuggestionBinding>()
val headerHeight = (activity as? AppBarOwner)?.appBar?.measureHeight() ?: insets.top
binding.root.updatePadding(
top = headerHeight,
left = insets.left,
right = insets.right,
// left = insets.left,
// right = insets.right,
bottom = insets.bottom,
)
}

View File

@@ -11,6 +11,7 @@ import androidx.appcompat.widget.AppCompatEditText
import androidx.core.content.ContextCompat
import com.google.android.material.R
import org.koitharu.kotatsu.search.ui.suggestion.SearchSuggestionListener
import org.koitharu.kotatsu.utils.ext.drawableStart
private const val DRAWABLE_END = 2
@@ -57,7 +58,7 @@ class SearchEditText @JvmOverloads constructor(
) {
super.onTextChanged(text, start, lengthBefore, lengthAfter)
setCompoundDrawablesRelativeWithIntrinsicBounds(
null,
drawableStart,
null,
if (text.isNullOrEmpty()) null else clearIcon,
null,
@@ -86,4 +87,4 @@ class SearchEditText @JvmOverloads constructor(
super.clearFocus()
text?.clear()
}
}
}

View File

@@ -10,17 +10,24 @@ import androidx.fragment.app.FragmentTransaction
import androidx.fragment.app.commit
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.google.android.material.appbar.AppBarLayout
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.base.ui.BaseActivity
import org.koitharu.kotatsu.base.ui.util.RecyclerViewOwner
import org.koitharu.kotatsu.databinding.ActivitySettingsBinding
import org.koitharu.kotatsu.main.ui.AppBarOwner
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.utils.ext.isScrolledToTop
class SettingsActivity : BaseActivity<ActivitySettingsBinding>(),
class SettingsActivity :
BaseActivity<ActivitySettingsBinding>(),
PreferenceFragmentCompat.OnPreferenceStartFragmentCallback,
AppBarOwner,
FragmentManager.OnBackStackChangedListener {
override val appBar: AppBarLayout
get() = binding.appbar
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(ActivitySettingsBinding.inflate(layoutInflater))

View File

@@ -13,6 +13,7 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.base.ui.BaseFragment
import org.koitharu.kotatsu.base.ui.util.RecyclerViewOwner
import org.koitharu.kotatsu.databinding.FragmentSettingsSourcesBinding
import org.koitharu.kotatsu.main.ui.AppBarOwner
import org.koitharu.kotatsu.settings.SettingsActivity
import org.koitharu.kotatsu.settings.sources.adapter.SourceConfigAdapter
import org.koitharu.kotatsu.settings.sources.adapter.SourceConfigListener
@@ -108,7 +109,10 @@ class SourcesSettingsFragment : BaseFragment<FragmentSettingsSourcesBinding>(),
return true
}
override fun onMenuItemActionExpand(item: MenuItem?): Boolean = true
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
(activity as? AppBarOwner)?.appBar?.setExpanded(false, true)
return true
}
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
(item.actionView as SearchView).setQuery("", false)

View File

@@ -62,8 +62,9 @@
android:drawablePadding="16dp"
android:gravity="center_vertical"
android:hint="@string/search_manga"
android:imeOptions="actionSearch"
android:imeOptions="actionSearch|flagNoFullscreen"
android:importantForAutofill="no"
android:inputType="textShortMessage"
android:singleLine="true" />
</com.google.android.material.appbar.MaterialToolbar>

View File

@@ -54,8 +54,9 @@
android:background="@null"
android:gravity="center_vertical"
android:hint="@string/search_manga"
android:imeOptions="actionSearch"
android:imeOptions="actionSearch|flagNoFullscreen"
android:importantForAutofill="no"
android:inputType="textShortMessage"
android:paddingBottom="1dp"
android:singleLine="true"
tools:drawableEnd="@drawable/abc_ic_clear_material" />

View File

@@ -7,6 +7,7 @@
android:layout_height="match_parent"
android:background="?android:windowBackground"
android:clickable="true"
android:clipToPadding="false"
android:orientation="vertical"
android:scrollbars="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"

View File

@@ -6,5 +6,6 @@
<color name="onError">#680003</color>
<color name="onErrorContainer">#FFDAD4</color>
<color name="scrollbar">#66FFFFFF</color>
<color name="selector_foreground">#29FFFFFF</color>
</resources>

View File

@@ -19,5 +19,6 @@
<color name="grey_dark">#212121</color>
<color name="dim">#99000000</color>
<color name="scrollbar">#66000000</color>
<color name="selector_foreground">#29000000</color>
</resources>