From b1bc94b1e9a8ea7e67d8d340ea31d9db0e42a724 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 2 Jun 2023 09:03:05 +0300 Subject: [PATCH] Improve tablet ui --- .../kotatsu/details/ui/DetailsActivity.kt | 5 ++ .../filter/ui/model/FilterHeaderModel.kt | 3 ++ .../kotatsu/search/ui/MangaListActivity.kt | 13 ++++- .../main/res/layout-land/item_empty_state.xml | 47 +++++++++++++++++++ .../res/layout-w600dp/activity_container.xml | 19 ++------ .../activity_details.xml | 34 +++++++------- .../res/layout-w600dp/activity_manga_list.xml | 7 +-- app/src/main/res/values-w600dp/dimens.xml | 1 + app/src/main/res/values/dimens.xml | 2 + 9 files changed, 95 insertions(+), 36 deletions(-) create mode 100644 app/src/main/res/layout-land/item_empty_state.xml rename app/src/main/res/{layout-w720dp => layout-w600dp}/activity_details.xml (85%) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt index 723fc99e3..1206fa6ce 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/DetailsActivity.kt @@ -11,6 +11,7 @@ import android.view.Gravity import android.view.MenuItem import android.view.View import android.view.ViewGroup +import android.view.ViewGroup.MarginLayoutParams import android.view.animation.AccelerateDecelerateInterpolator import android.widget.Toast import androidx.activity.viewModels @@ -18,6 +19,7 @@ import androidx.appcompat.widget.PopupMenu import androidx.core.graphics.Insets import androidx.core.view.isGone import androidx.core.view.isVisible +import androidx.core.view.updateLayoutParams import androidx.core.view.updatePadding import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.snackbar.BaseTransientBottomBar @@ -238,6 +240,9 @@ class DetailsActivity : if (insets.bottom > 0) { window.setNavigationBarTransparentCompat(this, viewBinding.layoutBottom?.elevation ?: 0f, 0.9f) } + viewBinding.cardChapters?.updateLayoutParams { + bottomMargin = insets.bottom + marginEnd + } } private fun onHistoryChanged(info: HistoryInfo) { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/model/FilterHeaderModel.kt b/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/model/FilterHeaderModel.kt index c9733a3b3..cf9dcd834 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/model/FilterHeaderModel.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/filter/ui/model/FilterHeaderModel.kt @@ -10,6 +10,9 @@ class FilterHeaderModel( val hasSelectedTags: Boolean, ) : ListModel { + val textSummary: String + get() = chips.mapNotNull { if (it.isChecked) it.title else null }.joinToString() + override fun equals(other: Any?): Boolean { if (this === other) return true if (javaClass != other?.javaClass) return false diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/MangaListActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/MangaListActivity.kt index 898b33237..bec248475 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/MangaListActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/search/ui/MangaListActivity.kt @@ -11,6 +11,9 @@ import androidx.core.view.updatePadding import androidx.fragment.app.commit import com.google.android.material.appbar.AppBarLayout import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.flowOn +import kotlinx.coroutines.flow.map import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.model.parcelable.ParcelableMangaTags import org.koitharu.kotatsu.core.ui.BaseActivity @@ -106,11 +109,19 @@ class MangaListActivity : } } } + val filterOwner = FilterOwner.from(this) val chipSort = viewBinding.chipSort if (chipSort != null) { - FilterOwner.from(this).header.observe(this) { + filterOwner.header.observe(this) { chipSort.setTextAndVisible(it.sortOrder?.titleRes ?: 0) } + } else { + filterOwner.header.map { + it.textSummary + }.flowOn(Dispatchers.Default) + .observe(this) { + supportActionBar?.subtitle = it + } } } diff --git a/app/src/main/res/layout-land/item_empty_state.xml b/app/src/main/res/layout-land/item_empty_state.xml new file mode 100644 index 000000000..f039c9cbc --- /dev/null +++ b/app/src/main/res/layout-land/item_empty_state.xml @@ -0,0 +1,47 @@ + + + + + + + + + +