fix: login and navigation < API 23 (#258)

* fix: compensate for old nav (48dp)

* fix: allow login to complete < API 23
This commit is contained in:
TwistedUmbrellaX 2024-03-18 18:42:33 -04:00 committed by GitHub
parent 39d6f0fbd6
commit 9f84845ada
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 519 additions and 19 deletions

View file

@ -138,17 +138,20 @@ class HomeFragment : Fragment() {
var reached = false var reached = false
val duration = ((PrefManager.getVal(PrefName.AnimationSpeed) as Float) * 200).toLong() val duration = ((PrefManager.getVal(PrefName.AnimationSpeed) as Float) * 200).toLong()
binding.homeScroll.setOnScrollChangeListener { _, _, _, _, _ ->
if (!binding.homeScroll.canScrollVertically(1)) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
reached = true binding.homeScroll.setOnScrollChangeListener { _, _, _, _, _ ->
bottomBar.animate().translationZ(0f).setDuration(duration).start() if (!binding.homeScroll.canScrollVertically(1)) {
ObjectAnimator.ofFloat(bottomBar, "elevation", 4f, 0f).setDuration(duration) reached = true
.start() bottomBar.animate().translationZ(0f).setDuration(duration).start()
} else { ObjectAnimator.ofFloat(bottomBar, "elevation", 4f, 0f).setDuration(duration)
if (reached) {
bottomBar.animate().translationZ(12f).setDuration(duration).start()
ObjectAnimator.ofFloat(bottomBar, "elevation", 0f, 4f).setDuration(duration)
.start() .start()
} else {
if (reached) {
bottomBar.animate().translationZ(12f).setDuration(duration).start()
ObjectAnimator.ofFloat(bottomBar, "elevation", 0f, 4f).setDuration(duration)
.start()
}
} }
} }
} }

View file

@ -24,8 +24,6 @@
app:abb_animationInterpolator="@anim/over_shoot" app:abb_animationInterpolator="@anim/over_shoot"
app:abb_selectedTabType="text" app:abb_selectedTabType="text"
app:abb_textAppearance="@style/NavBarText" app:abb_textAppearance="@style/NavBarText"
app:itemActiveIndicatorStyle="@style/BottomNavBar" app:itemActiveIndicatorStyle="@style/BottomNavBar"
app:itemIconTint="@color/tab_layout_icon" app:itemIconTint="@color/tab_layout_icon"
app:itemRippleColor="#00000000" app:itemRippleColor="#00000000"
@ -44,8 +42,6 @@
app:abb_animationInterpolator="@anim/over_shoot" app:abb_animationInterpolator="@anim/over_shoot"
app:abb_selectedTabType="text" app:abb_selectedTabType="text"
app:abb_textAppearance="@style/NavBarText" app:abb_textAppearance="@style/NavBarText"
app:itemActiveIndicatorStyle="@style/BottomNavBar" app:itemActiveIndicatorStyle="@style/BottomNavBar"
app:itemIconTint="@color/tab_layout_icon" app:itemIconTint="@color/tab_layout_icon"
app:itemRippleColor="#00000000" app:itemRippleColor="#00000000"
@ -64,8 +60,6 @@
app:abb_animationInterpolator="@anim/over_shoot" app:abb_animationInterpolator="@anim/over_shoot"
app:abb_selectedTabType="text" app:abb_selectedTabType="text"
app:abb_textAppearance="@style/NavBarText" app:abb_textAppearance="@style/NavBarText"
app:itemActiveIndicatorStyle="@style/BottomNavBar" app:itemActiveIndicatorStyle="@style/BottomNavBar"
app:itemIconTint="@color/tab_layout_icon" app:itemIconTint="@color/tab_layout_icon"
app:itemRippleColor="#00000000" app:itemRippleColor="#00000000"

View file

@ -0,0 +1,497 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/mediaAppBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:colorBackground"
android:translationZ="5dp">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/mediaCollapsing"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="false"
app:contentScrim="?android:colorBackground"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<com.flaviofaria.kenburnsview.KenBurnsView
android:id="@+id/mediaBanner"
android:layout_width="match_parent"
android:layout_height="384dp"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
tools:ignore="ContentDescription,ImageContrastCheck"
tools:srcCompat="@tools:sample/backgrounds/scenic[0]" />
<ImageView
android:id="@+id/mediaBannerNoKen"
android:layout_width="match_parent"
android:layout_height="384dp"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
tools:ignore="ContentDescription,ImageContrastCheck"
tools:srcCompat="@tools:sample/backgrounds/scenic[0]" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:src="@drawable/linear_gradient_bg"
tools:ignore="ContentDescription" />
<ImageView
android:layout_width="match_parent"
android:layout_height="48dp"
android:alpha="0.66"
android:clickable="false"
android:scaleY="-1"
android:src="@drawable/linear_gradient_bg"
tools:ignore="ContentDescription" />
<LinearLayout
android:id="@+id/mediaCollapseContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<LinearLayout
android:id="@+id/mediaTitleCollapseContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="140dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:orientation="vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/mediaTitleCollapse"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:focusable="true"
android:focusableInTouchMode="true"
android:fontFamily="@font/poppins_bold"
android:maxLines="4"
android:scrollHorizontally="false"
android:singleLine="false"
android:text="@string/slogan"
android:textColor="?attr/colorOnBackground"
android:textSize="16sp"
android:transitionName="mediaTitle" />
<TextView
android:id="@+id/mediaStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.66"
android:ellipsize="marquee"
android:fontFamily="@font/poppins_bold"
android:marqueeRepeatLimit="marquee_forever"
android:paddingTop="4sp"
android:singleLine="true"
android:text="@string/status"
android:textColor="?attr/colorPrimary"
android:textSize="14sp"
tools:ignore="TextContrastCheck" />
</LinearLayout>
<Button
android:id="@+id/mediaAddToList"
style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_gravity="bottom"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:ellipsize="marquee"
android:fontFamily="@font/poppins_bold"
android:insetTop="0dp"
android:insetBottom="0dp"
android:marqueeRepeatLimit="marquee_forever"
android:padding="8dp"
android:singleLine="true"
android:text="@string/add"
android:textAllCaps="true"
android:textColor="?attr/colorSecondary"
android:textSize="14sp"
android:textStyle="bold"
app:cornerRadius="16dp"
app:strokeColor="@color/bg_opp"
tools:ignore="SmallSp,TextContrastCheck" />
</LinearLayout>
</com.google.android.material.appbar.CollapsingToolbarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<FrameLayout
android:id="@+id/mediaTitleContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:minHeight="64dp"
android:orientation="horizontal"
app:layout_scrollFlags="scroll|enterAlways|snap"
tools:ignore="UselessParent">
<TextView
android:id="@+id/mediaTitle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="?attr/colorSurface"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:fontFamily="@font/poppins_bold"
android:gravity="center_vertical"
android:marqueeRepeatLimit="marquee_forever"
android:paddingStart="32dp"
android:paddingEnd="64dp"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/slogan"
android:textSize="16sp"
android:transitionName="mediaTitle"
app:contentScrim="?android:colorBackground"
tools:visibility="gone" />
<LinearLayout
android:id="@+id/mediaAccessContainer"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_gravity="end"
android:gravity="center_horizontal|center_vertical"
android:paddingStart="32dp"
android:paddingEnd="32dp">
<TextView
android:id="@+id/mediaTotal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="end"
android:fontFamily="@font/poppins_family"
android:lineSpacingExtra="-8sp"
android:marqueeRepeatLimit="marquee_forever"
android:maxLines="2"
android:textColor="?attr/colorOnBackground"
android:textSize="16sp"
tools:text="Watched 10 out of 10" />
<ImageView
android:id="@+id/mediaFav"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_margin="8dp"
android:padding="8dp"
android:tintMode="src_atop"
app:srcCompat="@drawable/ic_round_favorite_border_24"
app:tint="@color/bg_opp"
tools:ignore="ContentDescription,ImageContrastCheck" />
<ImageView
android:id="@+id/mediaNotify"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginStart="-8dp"
android:padding="8dp"
app:srcCompat="@drawable/ic_round_share_24"
app:tint="@color/bg_opp"
app:tintMode="src_atop"
tools:ignore="ContentDescription,ImageContrastCheck" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</com.google.android.material.appbar.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/mediaViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="72dp"
android:nestedScrollingEnabled="true"
tools:ignore="SpeakableTextPresentCheck" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center|bottom"
android:orientation="vertical">
<LinearLayout
android:id="@+id/commentMessageContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:background="@color/nav_bg"
android:orientation="vertical"
android:windowSoftInputMode="adjustResize">
<LinearLayout
android:id="@+id/commentReplyToContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal"
android:visibility="gone"
tools:ignore="UseCompoundDrawables">
<TextView
android:id="@+id/commentReplyTo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:ellipsize="end"
android:fontFamily="@font/poppins_semi_bold"
android:singleLine="true"
android:text="Replying to "
android:textColor="?attr/colorOnBackground"
android:textSize="14sp"
tools:ignore="HardcodedText" />
<ImageView
android:id="@+id/commentReplyToCancel"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp"
android:background="?android:attr/selectableItemBackground"
app:srcCompat="@drawable/ic_round_close_24"
app:tint="?attr/colorOnBackground"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/commentInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:colorBackground"
android:orientation="horizontal"
android:paddingTop="8dp"
android:paddingBottom="8dp">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/commentUserAvatar"
style="@style/CircularImageView"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_marginStart="12dp"
android:scaleType="center"
app:srcCompat="@drawable/ic_round_add_circle_24"
tools:ignore="ContentDescription,ImageContrastCheck" />
<EditText
android:id="@+id/commentInput"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:autofillHints="The One Piece is real"
android:background="@drawable/card_outline"
android:fontFamily="@font/poppins_semi_bold"
android:hint="Add a comment..."
android:inputType="textMultiLine"
android:maxLength="300"
android:maxLines="8"
android:padding="8dp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
<ImageButton
android:id="@+id/commentLabel"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:layout_marginEnd="8dp"
android:background="@drawable/ic_label_off_24"
android:visibility="gone"
tools:ignore="ContentDescription"
tools:visibility="visible" />
<ImageButton
android:id="@+id/commentSend"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center"
android:layout_marginEnd="12dp"
android:background="@drawable/ic_round_send_24"
android:visibility="gone"
tools:ignore="ContentDescription"
tools:visibility="visible" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/mediaTabContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<nl.joery.animatedbottombar.AnimatedBottomBar
android:id="@+id/mediaTab1"
android:layout_width="0dp"
android:layout_height="72dp"
android:layout_gravity="center_horizontal|bottom"
android:layout_weight="1"
android:background="?attr/colorSurface"
android:padding="0dp"
app:abb_animationInterpolator="@anim/over_shoot"
app:abb_indicatorAppearance="round"
app:abb_indicatorLocation="top"
app:abb_selectedTabType="text"
app:abb_textAppearance="@style/NavBarText"
app:itemActiveIndicatorStyle="@style/BottomNavBar"
app:itemIconTint="@color/tab_layout_icon"
app:itemRippleColor="#00000000"
app:itemTextAppearanceActive="@style/NavBarText"
app:itemTextAppearanceInactive="@style/NavBarText"
app:itemTextColor="@color/tab_layout_icon" />
<nl.joery.animatedbottombar.AnimatedBottomBar
android:id="@+id/mediaTab2"
android:layout_width="0dp"
android:layout_height="72dp"
android:layout_gravity="center_horizontal|bottom"
android:layout_weight="1"
android:background="?attr/colorSurface"
android:padding="0dp"
app:abb_animationInterpolator="@anim/over_shoot"
app:abb_indicatorAppearance="round"
app:abb_indicatorLocation="top"
app:abb_selectedTabType="text"
app:abb_textAppearance="@style/NavBarText"
app:itemActiveIndicatorStyle="@style/BottomNavBar"
app:itemIconTint="@color/tab_layout_icon"
app:itemRippleColor="#00000000"
app:itemTextAppearanceActive="@style/NavBarText"
app:itemTextAppearanceInactive="@style/NavBarText"
app:itemTextColor="@color/tab_layout_icon" />
<nl.joery.animatedbottombar.AnimatedBottomBar
android:id="@+id/mediaTab3"
android:layout_width="0dp"
android:layout_height="72dp"
android:layout_gravity="center_horizontal|bottom"
android:layout_weight="1"
android:background="?attr/colorSurface"
android:padding="0dp"
app:abb_animationInterpolator="@anim/over_shoot"
app:abb_indicatorAppearance="round"
app:abb_indicatorLocation="top"
app:abb_selectedTabType="text"
app:abb_textAppearance="@style/NavBarText"
app:itemActiveIndicatorStyle="@style/BottomNavBar"
app:itemIconTint="@color/tab_layout_icon"
app:itemRippleColor="#00000000"
app:itemTextAppearanceActive="@style/NavBarText"
app:itemTextAppearanceInactive="@style/NavBarText"
app:itemTextColor="@color/tab_layout_icon" />
</LinearLayout>
</LinearLayout>
<androidx.cardview.widget.CardView
android:id="@+id/incognito"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="start"
android:layout_margin="16dp"
android:translationZ="7dp"
android:visibility="gone"
app:cardBackgroundColor="@color/bg_opp"
app:cardCornerRadius="16dp">
<androidx.constraintlayout.utils.widget.ImageFilterView
android:id="@+id/incognitoImage"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:src="@drawable/ic_incognito_24"
app:tint="@color/bg"
tools:ignore="ContentDescription" />
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/mediaClose"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="end"
android:layout_margin="16dp"
android:translationZ="7dp"
app:cardBackgroundColor="@color/nav_bg"
app:cardCornerRadius="16dp">
<androidx.constraintlayout.utils.widget.ImageFilterView
android:id="@+id/mediaCloseImage"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:src="@drawable/ic_round_close_24"
tools:ignore="ContentDescription" />
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/mediaCover"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|top"
android:translationZ="5dp"
app:cardCornerRadius="16dp"
app:cardElevation="16dp"
app:layout_anchor="@id/mediaTitleCollapseContainer"
app:layout_anchorGravity="bottom">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/mediaCoverImage"
android:layout_width="108dp"
android:layout_height="160dp"
android:scaleType="centerCrop"
android:transitionName="mediaCover"
app:shapeAppearanceOverlay="@style/roundedImageView"
tools:ignore="ContentDescription,ImageContrastCheck"
tools:srcCompat="@tools:sample/backgrounds/scenic[2]" />
</androidx.cardview.widget.CardView>
<FrameLayout
android:id="@+id/fragmentExtensionsContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dp"
android:visibility="gone" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View file

@ -360,12 +360,13 @@
android:id="@+id/mediaTabContainer" android:id="@+id/mediaTabContainer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="48dp"
android:orientation="horizontal"> android:orientation="horizontal">
<nl.joery.animatedbottombar.AnimatedBottomBar <nl.joery.animatedbottombar.AnimatedBottomBar
android:id="@+id/mediaTab1" android:id="@+id/mediaTab1"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="72dp" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom" android:layout_gravity="center_horizontal|bottom"
android:layout_weight="1" android:layout_weight="1"
android:background="?attr/colorSurface" android:background="?attr/colorSurface"
@ -385,7 +386,7 @@
<nl.joery.animatedbottombar.AnimatedBottomBar <nl.joery.animatedbottombar.AnimatedBottomBar
android:id="@+id/mediaTab2" android:id="@+id/mediaTab2"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="72dp" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom" android:layout_gravity="center_horizontal|bottom"
android:layout_weight="1" android:layout_weight="1"
android:background="?attr/colorSurface" android:background="?attr/colorSurface"
@ -405,7 +406,7 @@
<nl.joery.animatedbottombar.AnimatedBottomBar <nl.joery.animatedbottombar.AnimatedBottomBar
android:id="@+id/mediaTab3" android:id="@+id/mediaTab3"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="72dp" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom" android:layout_gravity="center_horizontal|bottom"
android:layout_weight="1" android:layout_weight="1"
android:background="?attr/colorSurface" android:background="?attr/colorSurface"

5
lint.xml Normal file
View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="InlinedApi" severity="error" />
<issue id="NewApi" severity="error" />
</lint>