animation tweaks

This commit is contained in:
Phillip Thelen 2022-08-02 17:02:42 +02:00
parent 7d1025f423
commit 241b3c3c75
7 changed files with 57 additions and 4 deletions

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="100%"
android:interpolator="@android:anim/bounce_interpolator"
android:toXDelta="0" />
<alpha
android:duration="@android:integer/config_shortAnimTime"
android:fromAlpha="0"
android:interpolator="@android:anim/overshoot_interpolator"
android:toAlpha="1"
/>
</set>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="0%p"
android:interpolator="@android:anim/anticipate_interpolator"
android:toYDelta="100%p" />
<alpha
android:duration="@android:integer/config_shortAnimTime"
android:fromAlpha="1"
android:interpolator="@android:anim/anticipate_overshoot_interpolator"
android:toAlpha="0"
/>
</set>

View file

@ -52,7 +52,8 @@
android:id="@+id/shimmer_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:shimmer_repeat_delay="8000"
app:shimmer_repeat_delay="4000"
app:shimmer_duration="200"
app:shimmer_base_color="@color/text_dimmed"
app:shimmer_highlight_color="@color/content_background"
app:shimmer_highlight_alpha="0.8">

View file

@ -908,6 +908,7 @@
<item name="android:backgroundDimAmount">0.3</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowAnimationStyle">@style/SheetDialogAnimations</item>
<item name="bottomSheetStyle">@style/Widget.App.BottomSheet.Modal</item>
<item name="colorPrimary">@color/brand</item>
@ -918,6 +919,11 @@
<item name="android:colorAccent">@color/brand_400</item>
</style>
<style name="SheetDialogAnimations" parent="@android:style/Animation.Activity">
<item name="android:windowEnterAnimation">@anim/bottom_sheet_slide_in</item>
<item name="android:windowExitAnimation">@anim/bottom_sheet_slide_out</item>
</style>
<style name="Widget.App.BottomSheet.Modal" parent="Widget.MaterialComponents.BottomSheet.Modal">
<item name="android:backgroundTint">@color/window_background</item>
<item name="backgroundTint">@color/window_background</item>

View file

@ -324,8 +324,8 @@ class AccountPreferenceFragment :
emailEditText?.showErrorIfNecessary()
passwordEditText?.showErrorIfNecessary()
passwordRepeatEditText?.showErrorIfNecessary()
if (emailEditText?.isValid != true || passwordEditText?.isValid != true || passwordRepeatEditText?.isValid != true) return@addButton
val email = if (showEmail) emailEditText.text else user?.authentication?.findFirstSocialEmail()
if ((showEmail && emailEditText?.isValid != true) || passwordEditText?.isValid != true || passwordRepeatEditText?.isValid != true) return@addButton
val email = if (showEmail) emailEditText?.text else user?.authentication?.findFirstSocialEmail()
apiClient.registerUser(user?.username ?: "", email ?: "", passwordEditText.text ?: "", passwordRepeatEditText?.text ?: "")
.flatMap { userRepository.retrieveUser(true, true) }
.subscribe(

View file

@ -2,9 +2,13 @@ package com.habitrpg.android.habitica.ui.menu
import android.content.Context
import android.view.View
import android.view.animation.LinearInterpolator
import android.view.animation.TranslateAnimation
import androidx.core.view.children
import com.habitrpg.android.habitica.databinding.MenuBottomSheetBinding
import com.habitrpg.common.habitica.extensions.loadImage
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaBottomSheetDialog
import com.habitrpg.common.habitica.extensions.dpToPx
import com.habitrpg.common.habitica.extensions.loadImage
class BottomSheetMenu(context: Context) : HabiticaBottomSheetDialog(context), View.OnClickListener {
private var binding = MenuBottomSheetBinding.inflate(layoutInflater)
@ -15,6 +19,19 @@ class BottomSheetMenu(context: Context) : HabiticaBottomSheetDialog(context), Vi
binding.titleView.visibility = View.GONE
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
binding.menuItems.children.forEachIndexed { index, view ->
val anim = TranslateAnimation(0f, 0f, 10f.dpToPx(context) + (5f.dpToPx(context)*index), 0f)
anim.startOffset = 300 + (20 * index).toLong()
anim.fillBefore = true
anim.fillAfter = true
anim.interpolator = LinearInterpolator()
anim.duration = 200 + (20 * index).toLong()
view.startAnimation(anim)
}
}
fun setSelectionRunnable(runnable: (Int) -> Unit) {
this.runnable = runnable
}

View file

@ -2,6 +2,7 @@ package com.habitrpg.wearos.habitica
import android.app.Application
import android.content.Intent
import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.crashlytics.ktx.crashlytics
import com.google.firebase.ktx.Firebase
@ -69,6 +70,7 @@ class MainApplication : Application() {
crashlytics.setUserId(userRepository.userID)
}
crashlytics.setCustomKey("is_wear", true)
FirebaseAnalytics.getInstance(this).setUserProperty("app_testing_level", BuildConfig.TESTING_LEVEL)
}
}
}