Fix landscape UI, change paddings and selectors

pull/189/head
Zakhar Timoshenko 4 years ago
parent 78f8407eca
commit 032ed27c38

@ -9,16 +9,17 @@ import android.graphics.drawable.Drawable
import android.graphics.drawable.InsetDrawable import android.graphics.drawable.InsetDrawable
import android.graphics.drawable.RippleDrawable import android.graphics.drawable.RippleDrawable
import android.graphics.drawable.ShapeDrawable import android.graphics.drawable.ShapeDrawable
import android.graphics.drawable.shapes.RectShape import android.graphics.drawable.shapes.RoundRectShape
import android.util.AttributeSet import android.util.AttributeSet
import androidx.annotation.AttrRes import androidx.annotation.AttrRes
import androidx.appcompat.widget.AppCompatCheckedTextView import androidx.appcompat.widget.AppCompatCheckedTextView
import androidx.core.content.ContextCompat
import androidx.core.content.withStyledAttributes import androidx.core.content.withStyledAttributes
import com.google.android.material.ripple.RippleUtils import com.google.android.material.ripple.RippleUtils
import com.google.android.material.shape.MaterialShapeDrawable import com.google.android.material.shape.MaterialShapeDrawable
import com.google.android.material.shape.ShapeAppearanceModel import com.google.android.material.shape.ShapeAppearanceModel
import org.koitharu.kotatsu.R import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.utils.ext.getThemeColorStateList import org.koitharu.kotatsu.utils.ext.resolveDp
@SuppressLint("RestrictedApi") @SuppressLint("RestrictedApi")
class ListItemTextView @JvmOverloads constructor( class ListItemTextView @JvmOverloads constructor(
@ -38,10 +39,11 @@ class ListItemTextView @JvmOverloads constructor(
context.withStyledAttributes(attrs, R.styleable.ListItemTextView, defStyleAttr) { context.withStyledAttributes(attrs, R.styleable.ListItemTextView, defStyleAttr) {
val itemRippleColor = getRippleColor(context) val itemRippleColor = getRippleColor(context)
val shape = createShapeDrawable(this) val shape = createShapeDrawable(this)
val roundCorners = FloatArray(8) { resources.resolveDp(32f) }
background = RippleDrawable( background = RippleDrawable(
RippleUtils.sanitizeRippleDrawableColor(itemRippleColor), RippleUtils.sanitizeRippleDrawableColor(itemRippleColor),
shape, shape,
ShapeDrawable(RectShape()), ShapeDrawable(RoundRectShape(roundCorners, null, null)),
) )
checkedDrawableStart = getDrawable(R.styleable.ListItemTextView_checkedDrawableStart) checkedDrawableStart = getDrawable(R.styleable.ListItemTextView_checkedDrawableStart)
checkedDrawableEnd = getDrawable(R.styleable.ListItemTextView_checkedDrawableEnd) checkedDrawableEnd = getDrawable(R.styleable.ListItemTextView_checkedDrawableEnd)
@ -118,7 +120,7 @@ class ListItemTextView @JvmOverloads constructor(
} }
private fun getRippleColor(context: Context): ColorStateList { private fun getRippleColor(context: Context): ColorStateList {
return context.getThemeColorStateList(android.R.attr.colorControlHighlight) return ContextCompat.getColorStateList(context, R.color.selector_overlay)
?: ColorStateList.valueOf(Color.TRANSPARENT) ?: ColorStateList.valueOf(Color.TRANSPARENT)
} }
} }

@ -75,13 +75,7 @@ class ExploreFragment :
} }
override fun onWindowInsetsChanged(insets: Insets) { override fun onWindowInsetsChanged(insets: Insets) {
binding.root.updatePadding(
left = insets.left,
right = insets.right,
)
binding.recyclerView.updatePadding( binding.recyclerView.updatePadding(
left = insets.left + paddingHorizontal,
right = insets.right + paddingHorizontal,
bottom = insets.bottom, bottom = insets.bottom,
) )
} }

@ -111,10 +111,6 @@ class LibraryFragment :
override fun onEmptyActionClick() = Unit override fun onEmptyActionClick() = Unit
override fun onWindowInsetsChanged(insets: Insets) { override fun onWindowInsetsChanged(insets: Insets) {
binding.root.updatePadding(
left = insets.left,
right = insets.right,
)
binding.recyclerView.updatePadding( binding.recyclerView.updatePadding(
bottom = insets.bottom, bottom = insets.bottom,
) )

@ -156,16 +156,7 @@ class MainActivity :
} }
} }
override fun onWindowInsetsChanged(insets: Insets) { override fun onWindowInsetsChanged(insets: Insets) = Unit
binding.toolbarCard.updateLayoutParams<MarginLayoutParams> {
leftMargin = insets.left
rightMargin = insets.right
}
binding.root.updatePadding(
left = insets.left,
right = insets.right,
)
}
override fun onFocusChange(v: View?, hasFocus: Boolean) { override fun onFocusChange(v: View?, hasFocus: Boolean) {
val fragment = supportFragmentManager.findFragmentByTag(TAG_SEARCH) val fragment = supportFragmentManager.findFragmentByTag(TAG_SEARCH)

@ -54,13 +54,11 @@ class MangaListActivity :
} }
override fun onWindowInsetsChanged(insets: Insets) { override fun onWindowInsetsChanged(insets: Insets) {
with(binding.toolbar) { binding.root.updatePadding(
updatePadding(
left = insets.left, left = insets.left,
right = insets.right, right = insets.right,
) )
} }
}
private class ApplyFilterRunnable( private class ApplyFilterRunnable(
private val fragment: RemoteListFragment, private val fragment: RemoteListFragment,

@ -77,8 +77,6 @@ class ToolsFragment :
override fun onWindowInsetsChanged(insets: Insets) { override fun onWindowInsetsChanged(insets: Insets) {
binding.root.updatePadding( binding.root.updatePadding(
left = insets.left,
right = insets.right,
bottom = insets.bottom, bottom = insets.bottom,
) )
} }

@ -93,13 +93,7 @@ class FeedFragment :
} }
override fun onWindowInsetsChanged(insets: Insets) { override fun onWindowInsetsChanged(insets: Insets) {
binding.root.updatePadding(
left = insets.left,
right = insets.right,
)
binding.recyclerView.updatePadding( binding.recyclerView.updatePadding(
left = insets.left + paddingHorizontal,
right = insets.right + paddingHorizontal,
bottom = insets.bottom, bottom = insets.bottom,
) )
} }

@ -47,6 +47,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:clipToPadding="false" android:clipToPadding="false"
android:orientation="vertical" android:orientation="vertical"
android:paddingVertical="@dimen/list_spacing"
android:scrollbars="vertical" android:scrollbars="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" /> app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" />

@ -47,6 +47,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:clipToPadding="false" android:clipToPadding="false"
android:orientation="vertical" android:orientation="vertical"
android:paddingVertical="@dimen/list_spacing"
android:scrollbars="vertical" android:scrollbars="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" /> app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" />

@ -5,7 +5,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/listPreferredItemHeightSmall" android:layout_height="?attr/listPreferredItemHeightSmall"
android:background="?selectableItemBackground" android:background="@drawable/list_selector"
android:clipChildren="false" android:clipChildren="false"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal"

@ -5,8 +5,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical">
android:paddingBottom="@dimen/list_spacing">
<org.koitharu.kotatsu.base.ui.widgets.BottomSheetHeaderBar <org.koitharu.kotatsu.base.ui.widgets.BottomSheetHeaderBar
android:id="@+id/headerBar" android:id="@+id/headerBar"
@ -32,6 +31,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:overScrollMode="never" android:overScrollMode="never"
android:paddingVertical="@dimen/list_spacing"
android:scrollbars="vertical" android:scrollbars="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_checkable_new" /> tools:listitem="@layout/item_checkable_new" />

Loading…
Cancel
Save