From 376c46095fc2c72b8a1c06020684ae03275da298 Mon Sep 17 00:00:00 2001 From: germainkevinbusiness <67168053+kevingermainbusiness@users.noreply.github.com> Date: Tue, 17 May 2022 17:09:39 -0400 Subject: [PATCH] Eighteenth commit, 1.0.0-alpha04 release version --- README.md | 2 +- app/build.gradle | 2 +- .../collapsingtopbarcompose/MainActivity.kt | 4 +-- collapsingtopbar/build.gradle | 2 +- .../collapsingtopbar/CollapsingTopBar.kt | 2 +- .../CollapsingTopBarDefaults.kt | 20 ++++++----- .../collapsingtopbar/TopBarScrollBehavior.kt | 33 ++++++++----------- 7 files changed, 30 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 8e40abf..1f8cb1e 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ repositories { ```groovy dependencies { - implementation 'com.github.germainkevinbusiness:CollapsingTopBarCompose:1.0.0-alpha02' + implementation 'com.github.germainkevinbusiness:CollapsingTopBarCompose:1.0.0-alpha04' } ``` diff --git a/app/build.gradle b/app/build.gradle index 7531e36..7be91ae 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 32 versionCode 1 - versionName "1.0.0-alpha02" + versionName "1.0.0-alpha04" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/app/src/main/java/com/germainkevin/collapsingtopbarcompose/MainActivity.kt b/app/src/main/java/com/germainkevin/collapsingtopbarcompose/MainActivity.kt index 216ad7f..8983ed4 100644 --- a/app/src/main/java/com/germainkevin/collapsingtopbarcompose/MainActivity.kt +++ b/app/src/main/java/com/germainkevin/collapsingtopbarcompose/MainActivity.kt @@ -51,8 +51,8 @@ fun CollapsingTopBarExample(context: Context) { val scrollBehavior = remember { CollapsingTopBarDefaults .collapsingTopBarScrollBehavior( -// isInitiallyCollapsed = false, - expandedTopBarHeight = 256.dp + isAlwaysCollapsed = false, + expandedTopBarMaxHeight = 256.dp ) } Scaffold( diff --git a/collapsingtopbar/build.gradle b/collapsingtopbar/build.gradle index 85b7674..a07f00e 100644 --- a/collapsingtopbar/build.gradle +++ b/collapsingtopbar/build.gradle @@ -15,7 +15,7 @@ afterEvaluate { // You can then customize attributes of the publication as shown below. groupId = 'com.germainkevin.collapsingtopbarcompose' artifactId = 'collapsingtopbarcompose' - version = '1.0.0-alpha02' + version = '1.0.0-alpha04' } } } diff --git a/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/CollapsingTopBar.kt b/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/CollapsingTopBar.kt index e127b74..449c467 100644 --- a/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/CollapsingTopBar.kt +++ b/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/CollapsingTopBar.kt @@ -53,7 +53,7 @@ fun CollapsingTopBar( scrollBehavior: TopBarScrollBehavior ) = with(scrollBehavior) { - if (isInitiallyCollapsed && trackOffSetIsZero >= 3) { + if (!isAlwaysCollapsed && isInitiallyCollapsed && trackOffSetIsZero >= 3) { // Make sure the trackOffSetIsZero variable does not exceed the number 10 if (trackOffSetIsZero > 10) trackOffSetIsZero = 3 currentTopBarHeight = expandedTopBarMaxHeight + topBarOffset.dp diff --git a/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/CollapsingTopBarDefaults.kt b/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/CollapsingTopBarDefaults.kt index ff0735f..1b3cbf7 100644 --- a/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/CollapsingTopBarDefaults.kt +++ b/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/CollapsingTopBarDefaults.kt @@ -14,24 +14,26 @@ object CollapsingTopBarDefaults { PaddingValues(start = appBarHorizontalPadding, end = appBarHorizontalPadding) /** + * @param isAlwaysCollapsed This will make this [CollapsingTopBar] never expand and stay with + * the [collapsedTopBarHeight] height, it's false by default * @param isInitiallyCollapsed Specifies whether the [CollapsingTopBar] should be displayed in a * collapsed state when first displayed on the UI. * @param collapsedTopBarHeight The height of the [CollapsingTopBar] when it's collapsed, the * default value is [defaultMinimumTopBarHeight] - * @param expandedTopBarHeight The height of the [CollapsingTopBar] when it's expended, + * @param expandedTopBarMaxHeight The height of the [CollapsingTopBar] when it's expended, * the default value is [defaultMaximumTopBarHeight] * */ fun collapsingTopBarScrollBehavior( + isAlwaysCollapsed: Boolean = false, isInitiallyCollapsed: Boolean = true, collapsedTopBarHeight: Dp = defaultMinimumTopBarHeight, - expandedTopBarHeight: Dp = defaultMaximumTopBarHeight - ): TopBarScrollBehavior { - return CollapsingTopBarScrollBehavior( - isInitiallyCollapsed = isInitiallyCollapsed, - collapsedHeight = collapsedTopBarHeight, - expandedHeight = expandedTopBarHeight - ) - } + expandedTopBarMaxHeight: Dp = defaultMaximumTopBarHeight + ): TopBarScrollBehavior = CollapsingTopBarScrollBehavior( + isAlwaysCollapsed = isAlwaysCollapsed, + isInitiallyCollapsed = isInitiallyCollapsed, + collapsedTopBarHeight = collapsedTopBarHeight, + expandedTopBarMaxHeight = expandedTopBarMaxHeight + ) @Composable fun collapsingTopBarColors( diff --git a/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/TopBarScrollBehavior.kt b/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/TopBarScrollBehavior.kt index f9aeb69..5c0c505 100644 --- a/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/TopBarScrollBehavior.kt +++ b/collapsingtopbar/src/main/java/com/germainkevin/collapsingtopbar/TopBarScrollBehavior.kt @@ -16,6 +16,10 @@ import androidx.compose.ui.unit.Dp * */ interface TopBarScrollBehavior { + /** + * This will make this [CollapsingTopBar] never expand */ + var isAlwaysCollapsed: Boolean + /** * The height of the TopBar when it's collapsed in [Dp] * */ @@ -46,15 +50,6 @@ interface TopBarScrollBehavior { * */ var trackOffSetIsZero: Int - /** - * The current content offset that is updated when the nested scroll connection consumes scroll - * events. - * - * A common behavior implementation would update this value to be the sum of all - * [NestedScrollConnection.onPostScroll] `consumed.y` values. - */ - var contentOffset: Float - /** * When offsetting the [currentTopBarHeight], it subtracts its [expandedTopBarMaxHeight] * to the [topBarOffset] so it can decrease the height of the [CollapsingTopBar], but @@ -81,34 +76,32 @@ interface TopBarScrollBehavior { } /** + * @param isAlwaysCollapsed This will make this [CollapsingTopBar] never expand, it's false by default. * @param isInitiallyCollapsed Specifies whether the [CollapsingTopBar] should be displayed in a * collapsed state when first displayed on the UI. Set to true by default when set in * [CollapsingTopBarDefaults.collapsingTopBarScrollBehavior] * @see [CollapsingTopBarDefaults.collapsingTopBarScrollBehavior] where it's set to false by default - * @param collapsedHeight The height of the [CollapsingTopBar] when it's collapsed, the + * @param collapsedTopBarHeight The height of the [CollapsingTopBar] when it's collapsed, the * default value is [defaultMinimumTopBarHeight] - * @param expandedHeight The height of the [CollapsingTopBar] when it's expended, the default - * value is [defaultMaximumTopBarHeight] + * @param expandedTopBarMaxHeight The height of the [CollapsingTopBar] when it's expended, the + * default value is [defaultMaximumTopBarHeight] * */ class CollapsingTopBarScrollBehavior( + override var isAlwaysCollapsed: Boolean, override var isInitiallyCollapsed: Boolean, - collapsedHeight: Dp, - expandedHeight: Dp + override var collapsedTopBarHeight: Dp, + override var expandedTopBarMaxHeight: Dp, ) : TopBarScrollBehavior { - override var collapsedTopBarHeight: Dp = collapsedHeight - - override var expandedTopBarMaxHeight: Dp = expandedHeight override var topBarOffset: Float by mutableStateOf(0f) override var trackOffSetIsZero: Int by mutableStateOf(0) override var currentTopBarHeight: Dp by mutableStateOf( - if (isInitiallyCollapsed) collapsedTopBarHeight else expandedTopBarMaxHeight + if (isInitiallyCollapsed || isAlwaysCollapsed) collapsedTopBarHeight + else expandedTopBarMaxHeight ) - override var contentOffset: Float by mutableStateOf(0f) - override var offsetLimit: Float = (expandedTopBarMaxHeight - collapsedTopBarHeight).value override var nestedScrollConnection = object : NestedScrollConnection {