Fix broken menu after clicking source, move latest to the top

This commit is contained in:
Jobobby04 2020-10-24 17:17:00 -04:00
parent c049ce9018
commit a2cda24e01
2 changed files with 101 additions and 120 deletions

View File

@ -43,12 +43,12 @@ class IndexAdapter(val controller: IndexController) :
// stores and recycles views as they are scrolled off screen
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
private val browseAdapter = IndexCardAdapter(controller)
private var browseLastBoundResults: List<IndexCardItem>? = null
private val latestAdapter = IndexCardAdapter(controller)
private var latestLastBoundResults: List<IndexCardItem>? = null
private val browseAdapter = IndexCardAdapter(controller)
private var browseLastBoundResults: List<IndexCardItem>? = null
init {
binding.browseBarWrapper.clicks()
.onEach {
@ -61,32 +61,11 @@ class IndexAdapter(val controller: IndexController) :
}
.launchIn(scope)
binding.browseRecycler.layoutManager = LinearLayoutManager(itemView.context, LinearLayoutManager.HORIZONTAL, false)
binding.browseRecycler.adapter = browseAdapter
binding.latestRecycler.layoutManager = LinearLayoutManager(itemView.context, LinearLayoutManager.HORIZONTAL, false)
binding.latestRecycler.adapter = latestAdapter
}
fun bindBrowse(browseResults: List<IndexCardItem>?) {
when {
browseResults == null -> {
binding.browseProgress.isVisible = true
showBrowseResultsHolder()
}
browseResults.isEmpty() -> {
binding.browseProgress.isVisible = false
showBrowseNoResults()
}
else -> {
binding.browseProgress.isVisible = false
showBrowseResultsHolder()
}
}
if (browseResults !== browseLastBoundResults) {
browseAdapter.updateDataSet(browseResults)
browseLastBoundResults = browseResults
}
binding.browseRecycler.layoutManager = LinearLayoutManager(itemView.context, LinearLayoutManager.HORIZONTAL, false)
binding.browseRecycler.adapter = browseAdapter
}
fun bindLatest(latestResults: List<IndexCardItem>?) {
@ -110,24 +89,41 @@ class IndexAdapter(val controller: IndexController) :
}
}
private fun showBrowseResultsHolder() {
binding.browseNoResultsFound.isVisible = false
binding.browseCard.isVisible = true
}
private fun showBrowseNoResults() {
binding.browseNoResultsFound.isVisible = true
binding.browseCard.isVisible = false
fun bindBrowse(browseResults: List<IndexCardItem>?) {
when {
browseResults == null -> {
binding.browseProgress.isVisible = true
showBrowseResultsHolder()
}
browseResults.isEmpty() -> {
binding.browseProgress.isVisible = false
showBrowseNoResults()
}
else -> {
binding.browseProgress.isVisible = false
showBrowseResultsHolder()
}
}
if (browseResults !== browseLastBoundResults) {
browseAdapter.updateDataSet(browseResults)
browseLastBoundResults = browseResults
}
}
private fun showLatestResultsHolder() {
binding.latestNoResultsFound.isVisible = false
binding.latestCard.isVisible = true
}
private fun showLatestNoResults() {
binding.latestNoResultsFound.isVisible = true
binding.latestCard.isVisible = false
}
private fun showBrowseResultsHolder() {
binding.browseNoResultsFound.isVisible = false
}
private fun showBrowseNoResults() {
binding.browseNoResultsFound.isVisible = true
}
fun setLatestImage(manga: Manga) {

View File

@ -6,6 +6,70 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/latest_bar_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground">
<TextView
android:id="@+id/latest"
style="@style/TextAppearance.Regular.SubHeading"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="@dimen/material_component_text_fields_padding_above_and_below_label"
android:text="@string/latest"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/latest_bar_more_icon"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/latest_bar_more_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/label_more"
android:padding="@dimen/material_component_text_fields_padding_above_and_below_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_arrow_forward_24dp"
app:tint="?android:attr/textColorPrimary" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/latest_no_results_found"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/material_component_text_fields_padding_above_and_below_label"
android:paddingEnd="@dimen/material_component_text_fields_padding_above_and_below_label"
android:paddingBottom="@dimen/material_component_text_fields_padding_above_and_below_label"
android:text="@string/no_results_found"
android:visibility="gone" />
<ProgressBar
android:id="@+id/latest_progress"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/latest_recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="12dp"
android:paddingEnd="12dp"
tools:listitem="@layout/global_search_controller_card_item" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -53,100 +117,21 @@
android:text="@string/no_results_found"
android:visibility="gone" />
<androidx.cardview.widget.CardView
android:id="@+id/browse_card"
style="@style/Theme.Widget.CardView.Item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="144dp">
<ProgressBar
android:id="@+id/browse_progress"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/browse_recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:orientation="horizontal"
android:paddingStart="4dp"
android:paddingEnd="4dp"
tools:listitem="@layout/global_search_controller_card_item" />
</androidx.cardview.widget.CardView>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/latest_bar_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground">
<TextView
android:id="@+id/latest"
style="@style/TextAppearance.Regular.SubHeading"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="@dimen/material_component_text_fields_padding_above_and_below_label"
android:text="@string/latest"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/latest_bar_more_icon"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/latest_bar_more_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/label_more"
android:padding="@dimen/material_component_text_fields_padding_above_and_below_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_arrow_forward_24dp"
app:tint="?android:attr/textColorPrimary" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/latest_no_results_found"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/material_component_text_fields_padding_above_and_below_label"
android:paddingEnd="@dimen/material_component_text_fields_padding_above_and_below_label"
android:paddingBottom="@dimen/material_component_text_fields_padding_above_and_below_label"
android:text="@string/no_results_found"
android:visibility="gone" />
<androidx.cardview.widget.CardView
android:id="@+id/latest_card"
style="@style/Theme.Widget.CardView.Item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="144dp">
<ProgressBar
android:id="@+id/latest_progress"
android:id="@+id/browse_progress"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/latest_recycler"
android:id="@+id/browse_recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:orientation="horizontal"
android:paddingStart="4dp"
android:paddingEnd="4dp"
android:paddingStart="12dp"
android:paddingEnd="12dp"
tools:listitem="@layout/global_search_controller_card_item" />
</androidx.cardview.widget.CardView>
</LinearLayout>
</LinearLayout>