From 359d98cc208b4a6b8800182f5e43b3e6aaca0ef9 Mon Sep 17 00:00:00 2001 From: Aleksandr Zhukov Date: Thu, 25 Jul 2024 23:39:43 +0200 Subject: [PATCH 1/2] Fix assigning resource but not dimen to the collapsingToolbarLayout height. --- .../delegate/GamificationToolbarDelegate.kt | 20 ++++++++++++++----- .../study_plan/fragment/StudyPlanFragment.kt | 2 +- .../layout/layout_gamification_toolbar.xml | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/gamification_toolbar/view/ui/delegate/GamificationToolbarDelegate.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/gamification_toolbar/view/ui/delegate/GamificationToolbarDelegate.kt index cdb2ee7331..9d548e78cc 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/gamification_toolbar/view/ui/delegate/GamificationToolbarDelegate.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/gamification_toolbar/view/ui/delegate/GamificationToolbarDelegate.kt @@ -2,6 +2,7 @@ package org.hyperskill.app.android.gamification_toolbar.view.ui.delegate import android.content.Context import android.util.TypedValue +import androidx.annotation.DrawableRes import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.doOnNextLayout @@ -22,6 +23,7 @@ import org.hyperskill.app.android.main.view.ui.navigation.switch import org.hyperskill.app.android.problems_limit.dialog.ProblemsLimitInfoBottomSheet import org.hyperskill.app.android.progress.navigation.ProgressScreen import org.hyperskill.app.android.topic_search.navigation.TopicSearchScreen +import org.hyperskill.app.android.view.base.ui.extension.setCompoundDrawables import org.hyperskill.app.android.view.base.ui.extension.setElevationOnCollapsed import org.hyperskill.app.gamification_toolbar.presentation.GamificationToolbarFeature import org.hyperskill.app.gamification_toolbar.presentation.GamificationToolbarFeature.Message @@ -33,7 +35,7 @@ class GamificationToolbarDelegate( lifecycleOwner: LifecycleOwner, private val context: Context, private val viewBinding: LayoutGamificationToolbarBinding, - onChangeTrackClicked: () -> Unit = {}, + onChangeTrackClicked: (() -> Unit)? = null, onNewMessage: (Message) -> Unit, ) { @@ -56,8 +58,10 @@ class GamificationToolbarDelegate( gamificationProblemsLimitTextView.setOnClickListener { onNewMessage(Message.ProblemsLimitClicked) } - subtitleTextView.setOnClickListener { - onChangeTrackClicked() + if (onChangeTrackClicked != null) { + subtitleTextView.setOnClickListener { + onChangeTrackClicked() + } } } } @@ -157,13 +161,19 @@ class GamificationToolbarDelegate( } } - fun setSubtitle(subtitle: String?) { + fun setSubtitle( + subtitle: String?, + @DrawableRes drawableEnd: Int? = null + ) { this.subtitle = subtitle with(viewBinding.subtitleTextView) { isVisible = subtitle != null if (subtitle != null) { setTextIfChanged(subtitle) } + if (subtitle != null) { + setCompoundDrawables(end = drawableEnd ?: -1) + } } applyInsetsToCollapsingToolbarLayout( context = context, @@ -206,7 +216,7 @@ class GamificationToolbarDelegate( context.resources.getDimensionPixelOffset(R.dimen.gamification_toolbar_with_subtitle_height) + subtitlePaddingVertical } else { - R.dimen.gamification_toolbar_default_height + context.resources.getDimensionPixelOffset(R.dimen.gamification_toolbar_default_height) } + insetTop } collapsingToolbarLayout.expandedTitleMarginTop = insetTop + subtitlePaddingVertical diff --git a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/study_plan/fragment/StudyPlanFragment.kt b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/study_plan/fragment/StudyPlanFragment.kt index 5f1cbef518..78014b3eae 100644 --- a/androidHyperskillApp/src/main/java/org/hyperskill/app/android/study_plan/fragment/StudyPlanFragment.kt +++ b/androidHyperskillApp/src/main/java/org/hyperskill/app/android/study_plan/fragment/StudyPlanFragment.kt @@ -145,7 +145,7 @@ class StudyPlanFragment : override fun render(state: StudyPlanScreenFeature.ViewState) { renderSwipeRefresh(state) gamificationToolbarDelegate?.render(state.toolbarViewState) - gamificationToolbarDelegate?.setSubtitle(state.trackTitle) + gamificationToolbarDelegate?.setSubtitle(state.trackTitle, R.drawable.ic_change_track) studyPlanWidgetDelegate?.render(state.studyPlanWidgetViewState) usersInterviewCardDelegate?.render( state.usersInterviewWidgetState, diff --git a/androidHyperskillApp/src/main/res/layout/layout_gamification_toolbar.xml b/androidHyperskillApp/src/main/res/layout/layout_gamification_toolbar.xml index 04e9d1cee4..787dbb88e3 100644 --- a/androidHyperskillApp/src/main/res/layout/layout_gamification_toolbar.xml +++ b/androidHyperskillApp/src/main/res/layout/layout_gamification_toolbar.xml @@ -131,7 +131,6 @@ android:maxLines="1" android:ellipsize="end" android:gravity="center_vertical" - app:drawableEndCompat="@drawable/ic_change_track" android:drawablePadding="10dp" android:background="@drawable/selectable_item_rounded_background" app:layout_collapseMode="parallax" @@ -141,6 +140,7 @@ android:layout_marginStart="12dp" android:layout_marginEnd="12dp" android:visibility="gone" + tools:drawableEndCompat="@drawable/ic_change_track" tools:visibility="visible" tools:text="Lorem Ipsum Iran Lorem Ipsum Iran Lorem Ipsu"/> From e42dbc8074ddb0197a58f9be85df9f9b8c06ac60 Mon Sep 17 00:00:00 2001 From: Aleksandr Zhukov Date: Thu, 25 Jul 2024 23:44:36 +0200 Subject: [PATCH 2/2] Bump Android versionCode & version name --- gradle/app.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/app.versions.toml b/gradle/app.versions.toml index 2266f84034..2315785ee2 100644 --- a/gradle/app.versions.toml +++ b/gradle/app.versions.toml @@ -2,5 +2,5 @@ minSdk = '24' targetSdk = '34' compileSdk = '34' -versionName = '1.65' -versionCode = '497' \ No newline at end of file +versionName = '1.65.1' +versionCode = '498' \ No newline at end of file