From 09325073468c91a23527bedd09e7fece15f2f1d9 Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Wed, 18 May 2022 22:14:14 +0300 Subject: [PATCH 1/4] Bottom sheet improvements --- .../kotatsu/base/ui/BaseBottomSheet.kt | 27 +++++++++++-------- .../koitharu/kotatsu/main/ui/MainActivity.kt | 2 ++ .../koitharu/kotatsu/utils/ext/DisplayExt.kt | 15 +++++++++++ .../main/res/anim/bottom_sheet_slide_in.xml | 10 +++++++ .../main/res/anim/bottom_sheet_slide_out.xml | 10 +++++++ .../res/drawable/sheet_toolbar_background.xml | 15 +++++++++++ .../res/layout-v23/item_loading_footer.xml | 2 +- .../res/layout/activity_category_edit.xml | 2 +- .../main/res/layout/item_loading_footer.xml | 3 ++- app/src/main/res/layout/sheet_chapters.xml | 3 ++- app/src/main/res/layout/sheet_filter.xml | 3 ++- app/src/main/res/layout/sheet_pages.xml | 3 ++- app/src/main/res/values-night/colors.xml | 1 + app/src/main/res/values-w600dp/dimens.xml | 1 + app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/dimens.xml | 3 +++ app/src/main/res/values/styles.xml | 23 +++++++++++++--- app/src/main/res/values/themes.xml | 4 +-- 18 files changed, 106 insertions(+), 22 deletions(-) create mode 100644 app/src/main/java/org/koitharu/kotatsu/utils/ext/DisplayExt.kt create mode 100644 app/src/main/res/anim/bottom_sheet_slide_in.xml create mode 100644 app/src/main/res/anim/bottom_sheet_slide_out.xml create mode 100644 app/src/main/res/drawable/sheet_toolbar_background.xml diff --git a/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseBottomSheet.kt b/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseBottomSheet.kt index 75503afc5..38758555f 100644 --- a/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseBottomSheet.kt +++ b/app/src/main/java/org/koitharu/kotatsu/base/ui/BaseBottomSheet.kt @@ -1,19 +1,18 @@ package org.koitharu.kotatsu.base.ui -import android.app.Dialog import android.os.Bundle +import android.util.DisplayMetrics import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.ViewGroup.LayoutParams -import androidx.appcompat.app.AppCompatDialog import androidx.core.view.updateLayoutParams import androidx.viewbinding.ViewBinding import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialogFragment import org.koitharu.kotatsu.R -import org.koitharu.kotatsu.base.ui.dialog.AppBottomSheetDialog +import org.koitharu.kotatsu.utils.ext.displayCompat import com.google.android.material.R as materialR abstract class BaseBottomSheet : BottomSheetDialogFragment() { @@ -33,6 +32,20 @@ abstract class BaseBottomSheet : BottomSheetDialogFragment() { ): View { val binding = onInflateView(inflater, container) viewBinding = binding + + // Enforce max width for tablets + val width = resources.getDimensionPixelSize(R.dimen.bottom_sheet_width) + if (width > 0) { + behavior?.maxWidth = width + } + + // Set peek height to 50% display height + requireContext().displayCompat?.let { + val metrics = DisplayMetrics() + it.getRealMetrics(metrics) + behavior?.peekHeight = metrics.heightPixels / 2 + } + return binding.root } @@ -41,14 +54,6 @@ abstract class BaseBottomSheet : BottomSheetDialogFragment() { super.onDestroyView() } - override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - return if (resources.getBoolean(R.bool.is_tablet)) { - AppCompatDialog(context, R.style.Theme_Kotatsu_Dialog) - } else { - AppBottomSheetDialog(requireContext(), theme) - } - } - protected abstract fun onInflateView(inflater: LayoutInflater, container: ViewGroup?): B protected fun setExpanded(isExpanded: Boolean, isLocked: Boolean) { diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt index e11527071..55cd36559 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt @@ -233,6 +233,8 @@ class MainActivity : } binding.toolbarCard.updateLayoutParams { topMargin = insets.top + bottomMargin + leftMargin = insets.left + rightMargin = insets.right } binding.root.updatePadding( left = insets.left, diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/ext/DisplayExt.kt b/app/src/main/java/org/koitharu/kotatsu/utils/ext/DisplayExt.kt new file mode 100644 index 000000000..205b98968 --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/utils/ext/DisplayExt.kt @@ -0,0 +1,15 @@ +package org.koitharu.kotatsu.utils.ext + +import android.content.Context +import android.os.Build +import android.view.Display +import android.view.WindowManager +import androidx.core.content.getSystemService + +val Context.displayCompat: Display? + get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + display + } else { + @Suppress("DEPRECATION") + getSystemService()?.defaultDisplay + } diff --git a/app/src/main/res/anim/bottom_sheet_slide_in.xml b/app/src/main/res/anim/bottom_sheet_slide_in.xml new file mode 100644 index 000000000..20c7c0d4e --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_slide_in.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_sheet_slide_out.xml b/app/src/main/res/anim/bottom_sheet_slide_out.xml new file mode 100644 index 000000000..ffa0e816b --- /dev/null +++ b/app/src/main/res/anim/bottom_sheet_slide_out.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/sheet_toolbar_background.xml b/app/src/main/res/drawable/sheet_toolbar_background.xml new file mode 100644 index 000000000..a4ea123d2 --- /dev/null +++ b/app/src/main/res/drawable/sheet_toolbar_background.xml @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-v23/item_loading_footer.xml b/app/src/main/res/layout-v23/item_loading_footer.xml index 0af71b68f..99a165524 100644 --- a/app/src/main/res/layout-v23/item_loading_footer.xml +++ b/app/src/main/res/layout-v23/item_loading_footer.xml @@ -11,6 +11,6 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:indeterminate="true" - app:indicatorSize="@dimen/list_footer_height_inner" /> + app:indicatorSize="24dp"/> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_category_edit.xml b/app/src/main/res/layout/activity_category_edit.xml index e8b9d8eab..c8c2fa22a 100644 --- a/app/src/main/res/layout/activity_category_edit.xml +++ b/app/src/main/res/layout/activity_category_edit.xml @@ -10,7 +10,7 @@ + android:layout_height="?attr/actionBarSize" /> + android:indeterminate="true" + android:padding="8dp"/> \ No newline at end of file diff --git a/app/src/main/res/layout/sheet_chapters.xml b/app/src/main/res/layout/sheet_chapters.xml index 4e17b4c76..e1932e31e 100644 --- a/app/src/main/res/layout/sheet_chapters.xml +++ b/app/src/main/res/layout/sheet_chapters.xml @@ -10,7 +10,8 @@ + android:layout_height="?attr/actionBarSize" + android:background="@drawable/sheet_toolbar_background"> + android:layout_height="?attr/actionBarSize" + android:background="@drawable/sheet_toolbar_background"> + android:layout_height="?attr/actionBarSize" + android:background="@drawable/sheet_toolbar_background"> #FFDAD4 #66FFFFFF #29FFFFFF + #1FFFFFFF \ No newline at end of file diff --git a/app/src/main/res/values-w600dp/dimens.xml b/app/src/main/res/values-w600dp/dimens.xml index 044349fc7..cff6a860c 100644 --- a/app/src/main/res/values-w600dp/dimens.xml +++ b/app/src/main/res/values-w600dp/dimens.xml @@ -3,4 +3,5 @@ 6dp 2dp 140dp + 420dp \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 1c8b7fb98..f4bae8418 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -20,5 +20,6 @@ #99000000 #66000000 #29000000 + #1F000000 \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 20debe81b..c03a20dc3 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -26,4 +26,7 @@ 124dp 4dp + + 0dp + 8dp \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 7f96a0bef..b44b1c1e5 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -22,9 +22,26 @@ - + + + + + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 69f2615b7..18c2b0c84 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -35,6 +35,8 @@ @color/errorContainer @color/onErrorContainer + @color/divider_default + ?attr/colorSurfaceVariant @@ -81,8 +83,6 @@ - \ No newline at end of file From 2b61b27271435b50a11b109bf1891a7931eb778c Mon Sep 17 00:00:00 2001 From: Artem Date: Tue, 17 May 2022 15:28:41 +0200 Subject: [PATCH 4/4] Translated using Weblate (Ukrainian) Currently translated at 100.0% (297 of 297 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (8 of 8 strings) Co-authored-by: Artem Translate-URL: https://hosted.weblate.org/projects/kotatsu/plurals/uk/ Translate-URL: https://hosted.weblate.org/projects/kotatsu/strings/uk/ Translation: Kotatsu/Strings Translation: Kotatsu/plurals --- app/src/main/res/values-uk/plurals.xml | 2 +- app/src/main/res/values-uk/strings.xml | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-uk/plurals.xml b/app/src/main/res/values-uk/plurals.xml index 0ced943b7..1b47f743e 100644 --- a/app/src/main/res/values-uk/plurals.xml +++ b/app/src/main/res/values-uk/plurals.xml @@ -2,7 +2,7 @@ %1$d новий розділ - %1$d нових розділи + %1$d нові розділи %1$d нових розділів %1$d нових розділів diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 9fd8db95a..b26c58fd1 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -64,7 +64,7 @@ Кеш Б|кБ|МБ|ГБ|ТБ Стандартний - Манхва + Вебтун Режим читання Розмір сітки Пошук по %s @@ -290,4 +290,8 @@ Додано закладку Скасувати Видалено з історії + DNS через HTTPS + Типовий режим + Автоматично визначати, чи є манга вебтуном + Автовизначення режиму читання \ No newline at end of file