fix(profile): Buggy animation

This commit is contained in:
aayush262 2024-03-17 21:06:20 +05:30
parent 9c0861a8e4
commit 726f461ff6
2 changed files with 137 additions and 138 deletions

View file

@ -57,6 +57,7 @@ class ProfileActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedListene
screenWidth = resources.displayMetrics.widthPixels.toFloat() screenWidth = resources.displayMetrics.widthPixels.toFloat()
navBar = binding.profileNavBar navBar = binding.profileNavBar
navBar.updateLayoutParams<ViewGroup.MarginLayoutParams> { bottomMargin = navBarHeight } navBar.updateLayoutParams<ViewGroup.MarginLayoutParams> { bottomMargin = navBarHeight }
val feedTab = navBar.createTab(R.drawable.ic_round_filter_24, "Feed") val feedTab = navBar.createTab(R.drawable.ic_round_filter_24, "Feed")
val profileTab = navBar.createTab(R.drawable.ic_round_person_24, "Profile") val profileTab = navBar.createTab(R.drawable.ic_round_person_24, "Profile")
val statsTab = navBar.createTab(R.drawable.ic_stats_24, "Stats") val statsTab = navBar.createTab(R.drawable.ic_stats_24, "Stats")
@ -174,6 +175,7 @@ class ProfileActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedListene
binding.profileBannerImage.updateLayoutParams { height += statusBarHeight } binding.profileBannerImage.updateLayoutParams { height += statusBarHeight }
binding.profileBannerGradient.updateLayoutParams { height += statusBarHeight } binding.profileBannerGradient.updateLayoutParams { height += statusBarHeight }
binding.profileMenuButton.updateLayoutParams<ViewGroup.MarginLayoutParams> { topMargin += statusBarHeight } binding.profileMenuButton.updateLayoutParams<ViewGroup.MarginLayoutParams> { topMargin += statusBarHeight }
binding.profileButtonContainer.updateLayoutParams<ViewGroup.MarginLayoutParams> { topMargin += statusBarHeight }
binding.profileBannerImage.setOnLongClickListener { binding.profileBannerImage.setOnLongClickListener {
ImageViewDialog.newInstance( ImageViewDialog.newInstance(
this@ProfileActivity, this@ProfileActivity,
@ -233,7 +235,7 @@ class ProfileActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedListene
//Collapsing UI Stuff //Collapsing UI Stuff
private var isCollapsed = false private var isCollapsed = false
private val percent = 45 private val percent = 65
private var mMaxScrollSize = 0 private var mMaxScrollSize = 0
private var screenWidth: Float = 0f private var screenWidth: Float = 0f
@ -259,7 +261,6 @@ class ProfileActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedListene
.setDuration(duration).start() .setDuration(duration).start()
ObjectAnimator.ofFloat(binding.profileButtonContainer, "translationX", screenWidth) ObjectAnimator.ofFloat(binding.profileButtonContainer, "translationX", screenWidth)
.setDuration(duration).start() .setDuration(duration).start()
binding.profileButtonContainer.updateLayoutParams { height = 0 }
binding.profileBannerImage.pause() binding.profileBannerImage.pause()
} }
if (percentage <= percent && isCollapsed) { if (percentage <= percent && isCollapsed) {
@ -270,9 +271,6 @@ class ProfileActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedListene
.setDuration(duration).start() .setDuration(duration).start()
ObjectAnimator.ofFloat(binding.profileButtonContainer, "translationX", 0f) ObjectAnimator.ofFloat(binding.profileButtonContainer, "translationX", 0f)
.setDuration(duration).start() .setDuration(duration).start()
binding.profileButtonContainer.updateLayoutParams {
height = ViewGroup.LayoutParams.WRAP_CONTENT
}
if (PrefManager.getVal(PrefName.BannerAnimations)) binding.profileBannerImage.resume() if (PrefManager.getVal(PrefName.BannerAnimations)) binding.profileBannerImage.resume()
} }

View file

@ -128,17 +128,15 @@
app:tint="@color/bg_opp" /> app:tint="@color/bg_opp" />
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
<LinearLayout <LinearLayout
android:id="@+id/profileButtonContainer" android:id="@+id/profileButtonContainer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp" android:layout_marginTop="210dp"
android:layout_marginBottom="6dp" android:layout_marginBottom="6dp"
android:background="?attr/colorSurface" android:background="?attr/colorSurface"
android:baselineAligned="false" android:baselineAligned="false"
android:layout_gravity="bottom"
android:orientation="horizontal" android:orientation="horizontal"
tools:ignore="HardcodedText"> tools:ignore="HardcodedText">
@ -265,6 +263,9 @@
android:layout_marginEnd="2dp" android:layout_marginEnd="2dp"
android:background="?android:attr/listDivider" /> android:background="?android:attr/listDivider" />
</LinearLayout> </LinearLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>