mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Remove the remaining MotionLayout (#5854)
* Remove the remaining MotionLayout * Use ImageButton instead of Blank View to handle taps in dead area And some tweaks
This commit is contained in:
		| @@ -18,7 +18,6 @@ import eu.kanade.tachiyomi.source.model.SManga | ||||
| import eu.kanade.tachiyomi.source.online.HttpSource | ||||
| import eu.kanade.tachiyomi.ui.base.controller.getMainAppBarHeight | ||||
| import eu.kanade.tachiyomi.ui.manga.MangaController | ||||
| import eu.kanade.tachiyomi.util.system.applySystemAnimatorScale | ||||
| import eu.kanade.tachiyomi.util.system.copyToClipboard | ||||
| import eu.kanade.tachiyomi.util.view.loadAnyAutoPause | ||||
| import eu.kanade.tachiyomi.util.view.setChips | ||||
| @@ -90,9 +89,6 @@ class MangaInfoHeaderAdapter( | ||||
|  | ||||
|     inner class HeaderViewHolder(private val view: View) : RecyclerView.ViewHolder(view) { | ||||
|         fun bind() { | ||||
|             val summaryTransition = binding.mangaSummarySection.getTransition(R.id.manga_summary_section_transition) | ||||
|             summaryTransition.applySystemAnimatorScale(view.context) | ||||
|  | ||||
|             // For rounded corners | ||||
|             binding.mangaCover.clipToOutline = true | ||||
|  | ||||
| @@ -264,17 +260,14 @@ class MangaInfoHeaderAdapter( | ||||
|                     val enabledLanguages = preferences.enabledLanguages().get() | ||||
|                         .filterNot { it == "all" } | ||||
|  | ||||
|                     text = if (enabledLanguages.size == 1) { | ||||
|                     val hasOneActiveLanguages = enabledLanguages.size == 1 | ||||
|                     val isInEnabledLanguages = source.lang in enabledLanguages | ||||
|                     text = when { | ||||
|                         // For edge cases where user disables a source they got manga of in their library. | ||||
|                         if (source.lang !in enabledLanguages) { | ||||
|                             mangaSource | ||||
|                         } else { | ||||
|                             // Hide the language tag when only one language is used. | ||||
|                             source.name | ||||
|                         } | ||||
|                     } else { | ||||
|                         // Display the language tag when multiple languages are used. | ||||
|                         mangaSource | ||||
|                         hasOneActiveLanguages && !isInEnabledLanguages -> mangaSource | ||||
|                         // Hide the language tag when only one language is used. | ||||
|                         hasOneActiveLanguages && isInEnabledLanguages -> source.name | ||||
|                         else -> mangaSource | ||||
|                     } | ||||
|  | ||||
|                     setOnClickListener { | ||||
| @@ -286,16 +279,14 @@ class MangaInfoHeaderAdapter( | ||||
|             } | ||||
|  | ||||
|             // Update manga status. | ||||
|             binding.apply { | ||||
|                 val (statusDrawable, statusString) = when (manga.status) { | ||||
|                     SManga.ONGOING -> R.drawable.ic_status_ongoing_24dp to R.string.ongoing | ||||
|                     SManga.COMPLETED -> R.drawable.ic_status_completed_24dp to R.string.completed | ||||
|                     SManga.LICENSED -> R.drawable.ic_status_licensed_24dp to R.string.licensed | ||||
|                     else -> R.drawable.ic_status_unknown_24dp to R.string.unknown | ||||
|                 } | ||||
|                 mangaStatusIcon.setImageResource(statusDrawable) | ||||
|                 mangaStatus.setText(statusString) | ||||
|             val (statusDrawable, statusString) = when (manga.status) { | ||||
|                 SManga.ONGOING -> R.drawable.ic_status_ongoing_24dp to R.string.ongoing | ||||
|                 SManga.COMPLETED -> R.drawable.ic_status_completed_24dp to R.string.completed | ||||
|                 SManga.LICENSED -> R.drawable.ic_status_licensed_24dp to R.string.licensed | ||||
|                 else -> R.drawable.ic_status_unknown_24dp to R.string.unknown | ||||
|             } | ||||
|             binding.mangaStatusIcon.setImageResource(statusDrawable) | ||||
|             binding.mangaStatus.setText(statusString) | ||||
|  | ||||
|             // Set the favorite drawable to the correct one. | ||||
|             setFavoriteButtonState(manga.favorite) | ||||
| @@ -322,6 +313,7 @@ class MangaInfoHeaderAdapter( | ||||
|                         controller::performGenreSearch | ||||
|                     ) | ||||
|                 } else { | ||||
|                     binding.mangaGenresTagsCompact.isVisible = false | ||||
|                     binding.mangaGenresTagsCompactChips.isVisible = false | ||||
|                     binding.mangaGenresTagsFullChips.isVisible = false | ||||
|                 } | ||||
| @@ -331,25 +323,20 @@ class MangaInfoHeaderAdapter( | ||||
|                     binding.mangaSummaryText.clicks(), | ||||
|                     binding.mangaInfoToggleMore.clicks(), | ||||
|                     binding.mangaInfoToggleLess.clicks(), | ||||
|                     binding.mangaSummarySection.clicks() | ||||
|                     binding.mangaSummarySection.clicks(), | ||||
|                 ) | ||||
|                     .onEach { toggleMangaInfo() } | ||||
|                     .launchIn(controller.viewScope) | ||||
|  | ||||
|                 if (initialLoad) { | ||||
|                     binding.mangaGenresTagsCompact.requestLayout() | ||||
|                 } | ||||
|  | ||||
|                 // Expand manga info if navigated from source listing or explicitly set to | ||||
|                 // (e.g. on tablets) | ||||
|                 if (initialLoad && (fromSource || isTablet)) { | ||||
|                     toggleMangaInfo() | ||||
|                     initialLoad = false | ||||
|                     // wrap_content and autoFixTextSize can cause unwanted behaviour this tries to solve it | ||||
|                     binding.mangaFullTitle.requestLayout() | ||||
|                 } | ||||
|  | ||||
|                 // Refreshes will change the state and it needs to be set to correct state to display correctly | ||||
|                 if (binding.mangaSummaryText.maxLines == maxLines) { | ||||
|                     binding.mangaSummarySection.transitionToState(R.id.start) | ||||
|                 } else { | ||||
|                     binding.mangaSummarySection.transitionToState(R.id.end) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| @@ -361,34 +348,28 @@ class MangaInfoHeaderAdapter( | ||||
|         private fun toggleMangaInfo() { | ||||
|             val isCurrentlyExpanded = binding.mangaSummaryText.maxLines != maxLines | ||||
|  | ||||
|             if (isCurrentlyExpanded) { | ||||
|                 binding.mangaSummarySection.transitionToStart() | ||||
|             } else { | ||||
|                 binding.mangaSummarySection.transitionToEnd() | ||||
|             } | ||||
|             binding.mangaInfoToggleMore.isVisible = isCurrentlyExpanded | ||||
|             binding.mangaInfoScrim.isVisible = isCurrentlyExpanded | ||||
|             binding.mangaInfoToggleMoreScrim.isVisible = isCurrentlyExpanded | ||||
|             binding.mangaGenresTagsCompact.isVisible = isCurrentlyExpanded | ||||
|             binding.mangaGenresTagsCompactChips.isVisible = isCurrentlyExpanded | ||||
|  | ||||
|             binding.mangaInfoToggleLess.isVisible = !isCurrentlyExpanded | ||||
|             binding.mangaGenresTagsFullChips.isVisible = !isCurrentlyExpanded | ||||
|  | ||||
|             binding.mangaSummaryText.text = updateDescription(manga.description, isCurrentlyExpanded) | ||||
|  | ||||
|             binding.mangaSummaryText.maxLines = if (isCurrentlyExpanded) { | ||||
|                 maxLines | ||||
|             } else { | ||||
|                 Int.MAX_VALUE | ||||
|             binding.mangaSummaryText.maxLines = when { | ||||
|                 isCurrentlyExpanded -> maxLines | ||||
|                 else -> Int.MAX_VALUE | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private fun updateDescription(description: String?, isCurrentlyExpanded: Boolean): CharSequence? { | ||||
|             return if (description.isNullOrBlank()) { | ||||
|                 view.context.getString(R.string.unknown) | ||||
|             } else { | ||||
|                 // Max lines of 3 with a blank line looks whack so we remove | ||||
|                 // any line breaks that is 2 or more and replace it with 1 | ||||
|                 // however, don't do this if already expanded because we need those blank lines | ||||
|                 if (!isCurrentlyExpanded) { | ||||
|                     description | ||||
|                 } else { | ||||
|                     description | ||||
|                         .replace(Regex("[\\r\\n]{2,}", setOf(RegexOption.MULTILINE)), "\n") | ||||
|                 } | ||||
|             return when { | ||||
|                 description.isNullOrBlank() -> view.context.getString(R.string.unknown) | ||||
|                 isCurrentlyExpanded -> description.replace(Regex("[\\r\\n]{2,}", setOf(RegexOption.MULTILINE)), "\n") | ||||
|                 else -> description | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @@ -400,10 +381,13 @@ class MangaInfoHeaderAdapter( | ||||
|         private fun setFavoriteButtonState(isFavorite: Boolean) { | ||||
|             // Set the Favorite drawable to the correct one. | ||||
|             // Border drawable if false, filled drawable if true. | ||||
|             val (iconResource, stringResource) = when (isFavorite) { | ||||
|                 true -> R.drawable.ic_favorite_24dp to R.string.in_library | ||||
|                 false -> R.drawable.ic_favorite_border_24dp to R.string.add_to_library | ||||
|             } | ||||
|             binding.btnFavorite.apply { | ||||
|                 setIconResource(if (isFavorite) R.drawable.ic_favorite_24dp else R.drawable.ic_favorite_border_24dp) | ||||
|                 text = | ||||
|                     context.getString(if (isFavorite) R.string.in_library else R.string.add_to_library) | ||||
|                 setIconResource(iconResource) | ||||
|                 text = context.getString(stringResource) | ||||
|                 isActivated = isFavorite | ||||
|             } | ||||
|         } | ||||
|   | ||||
| @@ -183,12 +183,11 @@ | ||||
|  | ||||
|     </LinearLayout> | ||||
|  | ||||
|     <androidx.constraintlayout.motion.widget.MotionLayout | ||||
|     <androidx.constraintlayout.widget.ConstraintLayout | ||||
|         android:id="@+id/manga_summary_section" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:layout_marginTop="8dp" | ||||
|         app:layoutDescription="@xml/manga_summary_section_scene" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|         app:layout_constraintStart_toStartOf="parent" | ||||
|         app:layout_constraintTop_toBottomOf="@id/manga_actions"> | ||||
| @@ -198,17 +197,17 @@ | ||||
|             style="@style/TextAppearance.Regular.Body1.Secondary" | ||||
|             android:layout_width="0dp" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginTop="8dp" | ||||
|             android:layout_marginEnd="16dp" | ||||
|             android:layout_marginStart="16dp" | ||||
|             android:layout_marginEnd="16dp" | ||||
|             android:clickable="true" | ||||
|             android:ellipsize="end" | ||||
|             android:focusable="true" | ||||
|             android:maxLines="3" | ||||
|             android:ellipsize="end" | ||||
|             android:textIsSelectable="false" | ||||
|             app:layout_constraintEnd_toEndOf="parent" | ||||
|             app:layout_constraintStart_toStartOf="parent" | ||||
|             app:layout_constraintTop_toBottomOf="@+id/manga_cover" | ||||
|             tools:text="Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content" /> | ||||
|             app:layout_constraintTop_toTopOf="parent" | ||||
|             tools:text="Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content" /> | ||||
|  | ||||
|         <View | ||||
|             android:id="@+id/manga_info_scrim" | ||||
| @@ -226,35 +225,39 @@ | ||||
|             android:layout_height="18sp" | ||||
|             android:background="@drawable/manga_info_more_gradient" | ||||
|             android:backgroundTint="?android:attr/colorBackground" | ||||
|             app:layout_constraintBottom_toBottomOf="@+id/manga_summary_text" | ||||
|             app:layout_constraintBottom_toBottomOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintEnd_toEndOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" /> | ||||
|             app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintTop_toTopOf="@+id/manga_info_toggle_more" /> | ||||
|  | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|         <ImageButton | ||||
|             android:id="@+id/manga_info_toggle_more" | ||||
|             style="@style/Widget.Tachiyomi.Button.InlineButton" | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:background="@drawable/ic_expand_more_24dp" | ||||
|             android:backgroundTint="?android:attr/textColorPrimary" | ||||
|             app:layout_constraintBottom_toBottomOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintEnd_toEndOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" /> | ||||
|             android:layout_marginBottom="-4dp" | ||||
|             android:paddingStart="0dp" | ||||
|             android:paddingEnd="0dp" | ||||
|             android:src="@drawable/ic_expand_more_24dp" | ||||
|             app:layout_constraintBottom_toBottomOf="@id/manga_summary_text" | ||||
|             app:layout_constraintEnd_toEndOf="parent" | ||||
|             app:layout_constraintStart_toStartOf="parent" | ||||
|             app:tint="?android:attr/textColorPrimary" /> | ||||
|  | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|         <ImageButton | ||||
|             android:id="@+id/manga_info_toggle_less" | ||||
|             style="@style/Widget.Tachiyomi.Button.InlineButton" | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_width="0dp" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:background="@drawable/ic_expand_less_24dp" | ||||
|             android:backgroundTint="?android:attr/textColorPrimary" | ||||
|             android:paddingStart="8dp" | ||||
|             android:paddingEnd="8dp" | ||||
|             android:src="@drawable/ic_expand_less_24dp" | ||||
|             android:visibility="gone" | ||||
|             app:layout_constraintEnd_toEndOf="parent" | ||||
|             app:layout_constraintStart_toStartOf="parent" | ||||
|             app:layout_constraintTop_toBottomOf="@+id/manga_summary_text" | ||||
|             tools:visibility="gone" /> | ||||
|             app:tint="?android:attr/textColorPrimary" | ||||
|             tools:visibility="visible" /> | ||||
|  | ||||
|         <HorizontalScrollView | ||||
|             android:id="@+id/manga_genres_tags_compact" | ||||
| @@ -294,6 +297,7 @@ | ||||
|             app:layout_constraintTop_toBottomOf="@+id/manga_info_toggle_less" | ||||
|             tools:visibility="gone" /> | ||||
|  | ||||
|     </androidx.constraintlayout.motion.widget.MotionLayout> | ||||
|  | ||||
|     </androidx.constraintlayout.widget.ConstraintLayout> | ||||
|  | ||||
| </androidx.constraintlayout.widget.ConstraintLayout> | ||||
|   | ||||
| @@ -63,18 +63,18 @@ | ||||
|         android:layout_marginEnd="16dp" | ||||
|         android:gravity="center_vertical" | ||||
|         android:orientation="vertical" | ||||
|         app:layout_constraintTop_toTopOf="@id/manga_cover_barrier" | ||||
|         app:layout_constraintBottom_toBottomOf="@id/manga_info_barrier" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|         app:layout_constraintStart_toEndOf="@+id/manga_cover"> | ||||
|         app:layout_constraintStart_toEndOf="@+id/manga_cover" | ||||
|         app:layout_constraintTop_toTopOf="@id/manga_cover_barrier"> | ||||
|  | ||||
|         <TextView | ||||
|             android:id="@+id/manga_full_title" | ||||
|             style="@style/TextAppearance.Medium.Title" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:textIsSelectable="false" | ||||
|             android:text="@string/manga_info_full_title_label" /> | ||||
|             android:text="@string/manga_info_full_title_label" | ||||
|             android:textIsSelectable="false" /> | ||||
|  | ||||
|         <TextView | ||||
|             android:id="@+id/manga_author" | ||||
| @@ -155,8 +155,8 @@ | ||||
|         android:layout_width="0dp" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:layout_marginStart="16dp" | ||||
|         android:layout_marginEnd="16dp" | ||||
|         android:layout_marginTop="4dp" | ||||
|         android:layout_marginEnd="16dp" | ||||
|         android:orientation="horizontal" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|         app:layout_constraintStart_toStartOf="parent" | ||||
| @@ -195,30 +195,29 @@ | ||||
|  | ||||
|     </LinearLayout> | ||||
|  | ||||
|     <androidx.constraintlayout.motion.widget.MotionLayout | ||||
|     <androidx.constraintlayout.widget.ConstraintLayout | ||||
|         android:id="@+id/manga_summary_section" | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_width="0dp" | ||||
|         android:layout_height="wrap_content" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|         app:layout_constraintStart_toStartOf="parent" | ||||
|         app:layout_constraintTop_toBottomOf="@id/manga_actions" | ||||
|         app:layoutDescription="@xml/manga_summary_section_scene"> | ||||
|         app:layout_constraintTop_toBottomOf="@id/manga_actions"> | ||||
|  | ||||
|         <TextView | ||||
|             android:id="@+id/manga_summary_text" | ||||
|             style="@style/TextAppearance.Regular.Body1.Secondary" | ||||
|             android:layout_width="0dp" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginTop="8dp" | ||||
|             android:layout_marginEnd="16dp" | ||||
|             android:layout_marginStart="16dp" | ||||
|             android:layout_marginEnd="16dp" | ||||
|             android:clickable="true" | ||||
|             android:ellipsize="end" | ||||
|             android:focusable="true" | ||||
|             android:maxLines="3" | ||||
|             android:ellipsize="end" | ||||
|             android:textIsSelectable="false" | ||||
|             app:layout_constraintEnd_toEndOf="parent" | ||||
|             app:layout_constraintStart_toStartOf="parent" | ||||
|             app:layout_constraintTop_toBottomOf="@+id/manga_cover" | ||||
|             app:layout_constraintTop_toTopOf="parent" | ||||
|             tools:text="Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content Collapsed summary content" /> | ||||
|  | ||||
|         <View | ||||
| @@ -237,35 +236,39 @@ | ||||
|             android:layout_height="18sp" | ||||
|             android:background="@drawable/manga_info_more_gradient" | ||||
|             android:backgroundTint="?android:attr/colorBackground" | ||||
|             app:layout_constraintBottom_toBottomOf="@+id/manga_summary_text" | ||||
|             app:layout_constraintBottom_toBottomOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintEnd_toEndOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" /> | ||||
|             app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintTop_toTopOf="@+id/manga_info_toggle_more" /> | ||||
|  | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|         <ImageButton | ||||
|             android:id="@+id/manga_info_toggle_more" | ||||
|             style="@style/Widget.Tachiyomi.Button.InlineButton" | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:background="@drawable/ic_expand_more_24dp" | ||||
|             android:backgroundTint="?android:attr/textColorPrimary" | ||||
|             app:layout_constraintBottom_toBottomOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintEnd_toEndOf="@+id/manga_info_toggle_more" | ||||
|             app:layout_constraintStart_toStartOf="@+id/manga_info_toggle_more" /> | ||||
|             android:layout_marginBottom="-4dp" | ||||
|             android:paddingStart="0dp" | ||||
|             android:paddingEnd="0dp" | ||||
|             android:src="@drawable/ic_expand_more_24dp" | ||||
|             app:layout_constraintBottom_toBottomOf="@id/manga_summary_text" | ||||
|             app:layout_constraintEnd_toEndOf="parent" | ||||
|             app:layout_constraintStart_toStartOf="parent" | ||||
|             app:tint="?android:attr/textColorPrimary" /> | ||||
|  | ||||
|         <com.google.android.material.button.MaterialButton | ||||
|         <ImageButton | ||||
|             android:id="@+id/manga_info_toggle_less" | ||||
|             style="@style/Widget.Tachiyomi.Button.InlineButton" | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_width="0dp" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:background="@drawable/ic_expand_less_24dp" | ||||
|             android:backgroundTint="?android:attr/textColorPrimary" | ||||
|             android:paddingStart="8dp" | ||||
|             android:paddingEnd="8dp" | ||||
|             android:src="@drawable/ic_expand_less_24dp" | ||||
|             android:visibility="gone" | ||||
|             app:layout_constraintEnd_toEndOf="parent" | ||||
|             app:layout_constraintStart_toStartOf="parent" | ||||
|             app:layout_constraintTop_toBottomOf="@+id/manga_summary_text" | ||||
|             tools:visibility="gone" /> | ||||
|             app:tint="?android:attr/textColorPrimary" | ||||
|             tools:visibility="visible" /> | ||||
|  | ||||
|         <HorizontalScrollView | ||||
|             android:id="@+id/manga_genres_tags_compact" | ||||
| @@ -305,6 +308,6 @@ | ||||
|             app:layout_constraintTop_toBottomOf="@+id/manga_info_toggle_less" | ||||
|             tools:visibility="gone" /> | ||||
|  | ||||
|     </androidx.constraintlayout.motion.widget.MotionLayout> | ||||
|     </androidx.constraintlayout.widget.ConstraintLayout> | ||||
|  | ||||
| </androidx.constraintlayout.widget.ConstraintLayout> | ||||
|   | ||||
| @@ -1,133 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <MotionScene xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:motion="http://schemas.android.com/apk/res-auto"> | ||||
|  | ||||
|     <Transition | ||||
|         motion:constraintSetEnd="@+id/end" | ||||
|         motion:constraintSetStart="@id/start" | ||||
|         android:id="@+id/manga_summary_section_transition" | ||||
|         motion:duration="1"> | ||||
|         <KeyFrameSet></KeyFrameSet> | ||||
|         <OnClick motion:clickAction="toggle" /> | ||||
|     </Transition> | ||||
|  | ||||
|     <ConstraintSet android:id="@+id/start"> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_info_toggle_more_scrim" | ||||
|             android:layout_width="36sp" | ||||
|             android:layout_height="18sp" | ||||
|             motion:layout_constraintEnd_toEndOf="@+id/manga_summary_text" | ||||
|             motion:layout_constraintStart_toStartOf="@+id/manga_summary_text" | ||||
|             motion:layout_constraintBottom_toBottomOf="@+id/manga_summary_text" | ||||
|             android:visibility="visible" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_info_toggle_more" | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:visibility="visible" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             motion:layout_constraintBottom_toBottomOf="@id/manga_summary_text" | ||||
|             android:layout_marginBottom="-4dp" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_info_toggle_less" | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:visibility="gone" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             motion:layout_constraintTop_toBottomOf="@id/manga_summary_text" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_genres_tags_compact" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:visibility="visible" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             motion:layout_constraintTop_toBottomOf="@+id/manga_info_toggle_more" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_genres_tags_full_chips" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginStart="16dp" | ||||
|             android:layout_marginEnd="16dp" | ||||
|             android:visibility="gone" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             motion:layout_constraintTop_toBottomOf="@+id/manga_info_toggle_less" /> | ||||
|         <Constraint | ||||
|             android:layout_width="0dp" | ||||
|             android:layout_height="wrap_content" | ||||
|             motion:layout_constraintTop_toBottomOf="@+id/manga_cover" | ||||
|             android:layout_marginStart="16dp" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             android:layout_marginTop="8dp" | ||||
|             android:id="@+id/manga_summary_text" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             android:layout_marginEnd="16dp" /> | ||||
|     </ConstraintSet> | ||||
|  | ||||
|     <ConstraintSet android:id="@+id/end"> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_summary_text" | ||||
|             android:layout_width="0dp" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginTop="8dp" | ||||
|             android:layout_marginEnd="16dp" | ||||
|             android:layout_marginStart="16dp" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             motion:layout_constraintTop_toBottomOf="@+id/manga_cover" | ||||
|             motion:visibilityMode="ignore" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_info_scrim" | ||||
|             motion:layout_constraintEnd_toEndOf="@+id/manga_summary_text" | ||||
|             android:layout_width="0dp" | ||||
|             android:layout_height="24sp" | ||||
|             motion:layout_constraintBottom_toBottomOf="@+id/manga_summary_text" | ||||
|             motion:layout_constraintStart_toStartOf="@+id/manga_summary_text" | ||||
|             android:visibility="invisible" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_info_toggle_more_scrim" | ||||
|             android:layout_width="36sp" | ||||
|             android:layout_height="18sp" | ||||
|             motion:layout_constraintEnd_toEndOf="@+id/manga_summary_text" | ||||
|             motion:layout_constraintStart_toStartOf="@+id/manga_summary_text" | ||||
|             motion:layout_constraintBottom_toBottomOf="@+id/manga_summary_text" | ||||
|             android:visibility="gone" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_info_toggle_more" | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:visibility="gone" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             motion:layout_constraintBottom_toBottomOf="@id/manga_summary_text" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_info_toggle_less" | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:visibility="visible" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             motion:layout_constraintTop_toBottomOf="@id/manga_summary_text" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_genres_tags_compact" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:visibility="gone" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             motion:layout_constraintTop_toBottomOf="@+id/manga_info_toggle_more" /> | ||||
|         <Constraint | ||||
|             android:id="@+id/manga_genres_tags_full_chips" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:layout_marginStart="16dp" | ||||
|             android:layout_marginEnd="16dp" | ||||
|             android:visibility="visible" | ||||
|             motion:layout_constraintEnd_toEndOf="parent" | ||||
|             motion:layout_constraintStart_toStartOf="parent" | ||||
|             motion:layout_constraintTop_toBottomOf="@+id/manga_info_toggle_less" /> | ||||
|     </ConstraintSet> | ||||
| </MotionScene> | ||||
		Reference in New Issue
	
	Block a user