Finally a working comfortable grid

This commit is contained in:
Jobobby04 2020-05-24 15:59:14 -04:00
parent ccbe240846
commit 3a9f59b7a5
2 changed files with 93 additions and 140 deletions

View File

@ -3,10 +3,7 @@ package eu.kanade.tachiyomi.ui.library
import android.view.Gravity import android.view.Gravity
import android.view.View import android.view.View
import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.ImageView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.tfcporciuncula.flow.Preference import com.tfcporciuncula.flow.Preference
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
@ -19,13 +16,10 @@ import eu.kanade.tachiyomi.data.database.models.LibraryManga
import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.database.models.Track
import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.widget.AutofitRecyclerView import eu.kanade.tachiyomi.widget.AutofitRecyclerView
import exh.util.updateLayoutParams import kotlinx.android.synthetic.main.source_comfortable_grid_item.view.outside
import kotlinx.android.synthetic.main.source_comfortable_grid_item.view.constraint_layout
import kotlinx.android.synthetic.main.source_grid_item.view.card import kotlinx.android.synthetic.main.source_grid_item.view.card
import kotlinx.android.synthetic.main.source_grid_item.view.gradient import kotlinx.android.synthetic.main.source_grid_item.view.gradient
import kotlinx.android.synthetic.main.source_grid_item.view.thumbnail
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
@ -62,33 +56,11 @@ class LibraryItem(val manga: LibraryManga, private val libraryViewSetting: Prefe
} else { } else {
view.apply { view.apply {
val coverHeight = parent.itemWidth / 3 * 4 val coverHeight = parent.itemWidth / 3 * 4
card.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, coverHeight)
gradient.layoutParams = FrameLayout.LayoutParams( gradient.layoutParams = FrameLayout.LayoutParams(
MATCH_PARENT, MATCH_PARENT, coverHeight / 2, Gravity.BOTTOM
coverHeight * (66 / 100),
Gravity.BOTTOM
) )
card.updateLayoutParams<ConstraintLayout.LayoutParams> { outside.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, coverHeight + 200)
bottomMargin = 6.dpToPx
}
constraint_layout.layoutParams = FrameLayout.LayoutParams(
MATCH_PARENT, WRAP_CONTENT
)
thumbnail.maxHeight = Int.MAX_VALUE
thumbnail.minimumHeight = 0
constraint_layout.minHeight = 0
thumbnail.scaleType = ImageView.ScaleType.CENTER_CROP
thumbnail.adjustViewBounds = false
thumbnail.layoutParams = FrameLayout.LayoutParams(
MATCH_PARENT,
(parent.itemWidth / 3f * 3.7f).toInt()
)
// .layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, coverHeight)
// gradient.layoutParams = FrameLayout.LayoutParams(
// MATCH_PARENT, coverHeight / 2, Gravity.BOTTOM
// )
} }
LibraryComfortableGridHolder(view, adapter) LibraryComfortableGridHolder(view, adapter)
} }

View File

@ -7,108 +7,97 @@
android:background="@drawable/library_item_selector" android:background="@drawable/library_item_selector"
android:padding="4dp"> android:padding="4dp">
<androidx.constraintlayout.widget.ConstraintLayout <FrameLayout
android:id="@+id/constraint_layout" android:id="@+id/outside"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="260dp"
android:orientation="vertical"> android:background="@drawable/rounded_rectangle">
<FrameLayout <FrameLayout
android:id="@+id/card" android:id="@+id/card"
android:layout_width="wrap_content"
android:layout_height="220dp"
android:background="@drawable/rounded_rectangle">
<ImageView
android:id="@+id/thumbnail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSurface"
tools:ignore="ContentDescription"
tools:src="@mipmap/ic_launcher" />
<View
android:id="@+id/gradient"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/gradient_shape" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="220dp" android:layout_height="wrap_content"
android:layout_gravity="top" tools:layout_editor_absoluteX="7dp"
android:background="@drawable/rounded_rectangle" tools:layout_editor_absoluteY="7dp">
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">
<ImageView <TextView
android:id="@+id/thumbnail" android:id="@+id/unread_text"
android:layout_width="match_parent" style="@style/TextAppearance.Regular.Caption"
android:layout_height="match_parent"
android:background="?attr/colorSurface"
tools:ignore="ContentDescription"
android:scaleType="centerCrop"
tools:src="@mipmap/ic_launcher" />
<View
android:id="@+id/gradient"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/gradient_shape" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
tools:layout_editor_absoluteX="7dp" android:layout_marginStart="4dp"
tools:layout_editor_absoluteY="7dp"> android:layout_marginTop="4dp"
android:background="@color/colorAccentDark"
android:paddingStart="3dp"
android:paddingTop="1dp"
android:paddingEnd="3dp"
android:paddingBottom="1dp"
android:textColor="@color/md_white_1000"
android:visibility="gone"
app:layout_constraintStart_toEndOf="@+id/download_text"
app:layout_constraintTop_toTopOf="parent"
tools:text="120"
tools:visibility="visible" />
<TextView <TextView
android:id="@+id/unread_text" android:id="@+id/download_text"
style="@style/TextAppearance.Regular.Caption" style="@style/TextAppearance.Regular.Caption"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:background="@color/colorAccentDark" android:background="@color/md_red_500"
android:paddingStart="3dp" android:paddingStart="3dp"
android:paddingTop="1dp" android:paddingTop="1dp"
android:paddingEnd="3dp" android:paddingEnd="3dp"
android:paddingBottom="1dp" android:paddingBottom="1dp"
android:textColor="@color/md_white_1000" android:textColor="@color/md_white_1000"
android:visibility="gone" android:visibility="gone"
app:layout_constraintStart_toEndOf="@+id/download_text" app:layout_constraintStart_toEndOf="@+id/local_text"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="120" tools:text="120"
tools:visibility="visible" /> tools:visibility="visible" />
<TextView <TextView
android:id="@+id/download_text" android:id="@+id/local_text"
style="@style/TextAppearance.Regular.Caption" style="@style/TextAppearance.Regular.Caption"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:background="@color/md_red_500" android:background="@color/md_teal_500"
android:paddingStart="3dp" android:paddingStart="3dp"
android:paddingTop="1dp" android:paddingTop="1dp"
android:paddingEnd="3dp" android:paddingEnd="3dp"
android:paddingBottom="1dp" android:paddingBottom="1dp"
android:textColor="@color/md_white_1000" android:text="@string/local_source_badge"
android:visibility="gone" android:textColor="@color/md_white_1000"
app:layout_constraintStart_toEndOf="@+id/local_text" android:visibility="gone"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
tools:text="120" app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" /> tools:visibility="visible" />
<TextView </androidx.constraintlayout.widget.ConstraintLayout>
android:id="@+id/local_text"
style="@style/TextAppearance.Regular.Caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:background="@color/md_teal_500"
android:paddingStart="3dp"
android:paddingTop="1dp"
android:paddingEnd="3dp"
android:paddingBottom="1dp"
android:text="@string/local_source_badge"
android:textColor="@color/md_white_1000"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
<ProgressBar <ProgressBar
android:id="@+id/progress" android:id="@+id/progress"
@ -116,30 +105,22 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:visibility="gone" android:visibility="gone" />
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" </FrameLayout>
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/title" android:id="@+id/title"
style="@style/TextAppearance.Regular.Body1" style="@style/TextAppearance.Regular.Body1"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom" android:layout_gravity="bottom|start|end"
android:ellipsize="end" android:ellipsize="end"
android:fontFamily="@font/ptsans_narrow_bold" android:fontFamily="@font/ptsans_narrow_bold"
android:lineSpacingExtra="-4dp" android:lineSpacingExtra="-4dp"
android:maxLines="2" android:maxLines="2"
android:padding="8dp" android:padding="8dp"
android:shadowColor="@color/textColorPrimaryLight" android:shadowColor="@color/textColorPrimaryLight"
app:layout_constraintEnd_toEndOf="parent" tools:text="Sample name" />
app:layout_constraintStart_toStartOf="parent" </FrameLayout>
app:layout_constraintBottom_toBottomOf="parent"
tools:text="Sample name"
android:orientation="vertical" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout> </FrameLayout>