From d526fdd8a161c06123e378ada10892481f021ff9 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 5 Jul 2022 17:14:02 +0200 Subject: [PATCH] Implement levelup activity --- Habitica/build.gradle | 8 +- .../habitica/ui/AvatarWithBarsViewModel.kt | 2 +- .../habitica/ui/activities/ArmoireActivity.kt | 2 +- .../habitica/ui/activities/DeathActivity.kt | 2 +- .../inventory/PetDetailRecyclerAdapter.kt | 2 +- build.gradle | 2 +- common/build.gradle | 1 + .../libs/LeonidsLib-1.3.2.jar | Bin .../common}/habitica/helpers/Animations.kt | 2 +- common/src/main/res/values/strings.xml | 1 + wearos/build.gradle | 9 +++ wearos/src/main/AndroidManifest.xml | 1 + .../habitica/ui/activities/FaintActivity.kt | 2 + .../habitica/ui/activities/LevelupActivity.kt | 72 ++++++++++++++++++ .../ui/activities/TaskResultActivity.kt | 7 ++ .../ui/viewmodels/LevelupViewModel.kt | 22 ++++++ .../res/drawable-mdpi/experience_large.png | Bin 0 -> 873 bytes .../res/drawable-xhdpi/experience_large.png | Bin 0 -> 1471 bytes .../res/drawable-xxhdpi/experience_large.png | Bin 0 -> 2003 bytes .../src/main/res/drawable/confetti_blue.xml | 6 ++ .../src/main/res/drawable/confetti_purple.xml | 6 ++ wearos/src/main/res/drawable/confetti_red.xml | 6 ++ .../src/main/res/drawable/confetti_yellow.xml | 6 ++ wearos/src/main/res/layout/activity_faint.xml | 7 +- .../res/layout/activity_habit_direction.xml | 6 +- .../src/main/res/layout/activity_levelup.xml | 55 +++++++++++++ wearos/src/main/res/layout/activity_rya.xml | 3 +- .../src/main/res/layout/task_reward_chip.xml | 3 +- .../src/main/res/layout/task_reward_drop.xml | 3 +- wearos/src/main/res/values/strings.xml | 1 + wearos/src/main/res/values/styles.xml | 9 ++- 31 files changed, 226 insertions(+), 20 deletions(-) rename {Habitica => common}/libs/LeonidsLib-1.3.2.jar (100%) rename {Habitica/src/main/java/com/habitrpg/android => common/src/main/java/com/habitrpg/common}/habitica/helpers/Animations.kt (98%) create mode 100644 wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LevelupActivity.kt create mode 100644 wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LevelupViewModel.kt create mode 100644 wearos/src/main/res/drawable-mdpi/experience_large.png create mode 100644 wearos/src/main/res/drawable-xhdpi/experience_large.png create mode 100644 wearos/src/main/res/drawable-xxhdpi/experience_large.png create mode 100644 wearos/src/main/res/drawable/confetti_blue.xml create mode 100644 wearos/src/main/res/drawable/confetti_purple.xml create mode 100644 wearos/src/main/res/drawable/confetti_red.xml create mode 100644 wearos/src/main/res/drawable/confetti_yellow.xml create mode 100644 wearos/src/main/res/layout/activity_levelup.xml diff --git a/Habitica/build.gradle b/Habitica/build.gradle index 93ac09aa7..372b493aa 100644 --- a/Habitica/build.gradle +++ b/Habitica/build.gradle @@ -26,7 +26,6 @@ configurations { } dependencies { - implementation fileTree(include: ['*.jar'], dir: 'libs') //Networking implementation "com.squareup.okhttp3:okhttp:$okhttp_version" implementation "com.squareup.okhttp3:logging-interceptor:$okhttp_version" @@ -215,6 +214,13 @@ android { dimension "buildType" buildConfigField "String", "TESTING_LEVEL", "\"staff\"" resValue "string", "app_name", "Habitica Staff" + versionCode app_version_code + 8 + } + + partners { + dimension "buildType" + buildConfigField "String", "TESTING_LEVEL", "\"partners\"" + resValue "string", "app_name", "Habitica" versionCode app_version_code + 6 } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt index aeccc8dcb..f94d0cdfb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.kt @@ -10,7 +10,7 @@ import androidx.core.os.bundleOf import androidx.lifecycle.ViewModel import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.AvatarWithBarsBinding -import com.habitrpg.android.habitica.helpers.Animations +import com.habitrpg.common.habitica.helpers.Animations import com.habitrpg.android.habitica.helpers.MainNavigationController import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.models.user.User diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt index 9df8bf29a..f98d13c19 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt @@ -18,7 +18,7 @@ import com.habitrpg.common.habitica.extensions.dpToPx import com.habitrpg.android.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.AdHandler import com.habitrpg.android.habitica.helpers.AdType -import com.habitrpg.android.habitica.helpers.Animations +import com.habitrpg.common.habitica.helpers.Animations import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.common.habitica.extensions.loadImage diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt index 3f283f8b0..e1487ef8b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/DeathActivity.kt @@ -14,7 +14,7 @@ import com.habitrpg.android.habitica.extensions.fromHtml import com.habitrpg.android.habitica.extensions.observeOnce import com.habitrpg.android.habitica.helpers.AdHandler import com.habitrpg.android.habitica.helpers.AdType -import com.habitrpg.android.habitica.helpers.Animations +import com.habitrpg.common.habitica.helpers.Animations import com.habitrpg.android.habitica.helpers.AppConfigManager import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt index ca6c57903..f06af2b9f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/PetDetailRecyclerAdapter.kt @@ -5,7 +5,7 @@ import android.view.ViewGroup import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.CanHatchItemBinding import com.habitrpg.android.habitica.extensions.inflate -import com.habitrpg.android.habitica.helpers.Animations +import com.habitrpg.common.habitica.helpers.Animations import com.habitrpg.android.habitica.models.inventory.Animal import com.habitrpg.android.habitica.models.inventory.Egg import com.habitrpg.android.habitica.models.inventory.Food diff --git a/build.gradle b/build.gradle index 3f48048c6..52878da1e 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { kotlin_version = '1.7.0' core_ktx_version = '1.8.0' appcompat_version = '1.4.2' - lifecycle_version = '2.4.1' + lifecycle_version = '2.5.0' coroutines_version = '1.6.1' okhttp_version = '4.9.3' retrofit_version = '2.9.0' diff --git a/common/build.gradle b/common/build.gradle index 1b1269e5b..c566aea07 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -36,6 +36,7 @@ android { } dependencies { + implementation fileTree(include: ['*.jar'], dir: '../common/libs') implementation "androidx.core:core-ktx:$core_ktx_version" implementation "androidx.appcompat:appcompat:$appcompat_version" diff --git a/Habitica/libs/LeonidsLib-1.3.2.jar b/common/libs/LeonidsLib-1.3.2.jar similarity index 100% rename from Habitica/libs/LeonidsLib-1.3.2.jar rename to common/libs/LeonidsLib-1.3.2.jar diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/Animations.kt b/common/src/main/java/com/habitrpg/common/habitica/helpers/Animations.kt similarity index 98% rename from Habitica/src/main/java/com/habitrpg/android/habitica/helpers/Animations.kt rename to common/src/main/java/com/habitrpg/common/habitica/helpers/Animations.kt index 01e62ec96..2c0392f36 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/Animations.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/helpers/Animations.kt @@ -1,4 +1,4 @@ -package com.habitrpg.android.habitica.helpers +package com.habitrpg.common.habitica.helpers import android.view.View import android.view.ViewAnimationUtils diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 4739dc3e2..0619d050a 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -28,6 +28,7 @@ New Task Avatar Lvl. %d + Level %d Edit Cancel diff --git a/wearos/build.gradle b/wearos/build.gradle index 331475135..61a77bec1 100644 --- a/wearos/build.gradle +++ b/wearos/build.gradle @@ -50,6 +50,13 @@ android { dimension "buildType" buildConfigField "String", "TESTING_LEVEL", "\"staff\"" resValue "string", "app_name", "Habitica Staff" + versionCode app_version_code + 9 + } + + partners { + dimension "buildType" + buildConfigField "String", "TESTING_LEVEL", "\"partners\"" + resValue "string", "app_name", "Habitica" versionCode app_version_code + 7 } @@ -79,6 +86,8 @@ android { } dependencies { + implementation fileTree(include: ['*.jar'], dir: '../common/libs') + implementation "androidx.core:core-ktx:$core_ktx_version" implementation "com.google.android.gms:play-services-wearable:$play_wearables_version" implementation "androidx.recyclerview:recyclerview:$recyclerview_version" diff --git a/wearos/src/main/AndroidManifest.xml b/wearos/src/main/AndroidManifest.xml index 6e8ac7642..795289991 100644 --- a/wearos/src/main/AndroidManifest.xml +++ b/wearos/src/main/AndroidManifest.xml @@ -49,6 +49,7 @@ + diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/FaintActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/FaintActivity.kt index 0f1ad2d6b..bc3b2668d 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/FaintActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/FaintActivity.kt @@ -4,6 +4,7 @@ import android.os.Bundle import androidx.activity.viewModels import androidx.lifecycle.lifecycleScope import com.habitrpg.android.habitica.databinding.ActivityFaintBinding +import com.habitrpg.common.habitica.helpers.Animations import com.habitrpg.wearos.habitica.ui.viewmodels.FaintViewModel import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.CoroutineExceptionHandler @@ -28,6 +29,7 @@ class FaintActivity: BaseActivity() { } } + binding.iconView.startAnimation(Animations.bobbingAnimation(4f)) binding.hpBar.setPercentageValues(0f, 50f) } diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LevelupActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LevelupActivity.kt new file mode 100644 index 000000000..150424de2 --- /dev/null +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/LevelupActivity.kt @@ -0,0 +1,72 @@ +package com.habitrpg.wearos.habitica.ui.activities + +import android.os.Bundle +import android.view.Gravity +import android.view.animation.AccelerateInterpolator +import android.widget.FrameLayout +import androidx.activity.viewModels +import androidx.core.content.ContextCompat +import androidx.lifecycle.lifecycleScope +import com.habitrpg.android.habitica.R +import com.habitrpg.android.habitica.databinding.ActivityLevelupBinding +import com.habitrpg.common.habitica.helpers.Animations +import com.habitrpg.wearos.habitica.ui.viewmodels.LevelupViewModel +import com.plattysoft.leonids.ParticleSystem +import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.CoroutineExceptionHandler +import kotlinx.coroutines.launch + +@AndroidEntryPoint +class LevelupActivity: BaseActivity() { + override val viewModel: LevelupViewModel by viewModels() + + override fun onCreate(savedInstanceState: Bundle?) { + binding = ActivityLevelupBinding.inflate(layoutInflater) + super.onCreate(savedInstanceState) + binding.continueButton.setOnClickListener { + binding.continueButton.isEnabled = false + startAnimatingProgress() + lifecycleScope.launch(CoroutineExceptionHandler { _, _ -> + stopAnimatingProgress() + binding.continueButton.isEnabled = true + }) { + finish() + } + } + + viewModel.level.observe(this) { + binding.titleView.text = getString(R.string.user_level_long, it) + } + + binding.iconView.startAnimation(Animations.bobbingAnimation(4f)) + binding.expBar.setPercentageValues(100f, 100f) + val container = binding.confettiAnchor + container.postDelayed( + { + createParticles(container, R.drawable.confetti_blue) + createParticles(container, R.drawable.confetti_red) + createParticles(container, R.drawable.confetti_yellow) + createParticles(container, R.drawable.confetti_purple) + }, 500 + ) + } + + private fun createParticles(container: FrameLayout, resource: Int) { + ParticleSystem( + container, + 20, + ContextCompat.getDrawable(this, resource), + 6000 + ) + .setRotationSpeed(144f) + .setScaleRange(1.0f, 1.6f) + .setSpeedByComponentsRange(-0.15f, 0.15f, 0.15f, 0.45f) + .setFadeOut(200, AccelerateInterpolator()) + .emitWithGravity(binding.confettiAnchor, Gravity.TOP, 10, 2000) + } + + override fun onResume() { + super.onResume() + binding.expBar.animateProgress(0f, 2000) + } +} \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt index 080ab510d..09cb8d823 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/TaskResultActivity.kt @@ -49,6 +49,13 @@ class TaskResultActivity : BaseActivity() diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LevelupViewModel.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LevelupViewModel.kt new file mode 100644 index 000000000..bc591ef91 --- /dev/null +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/LevelupViewModel.kt @@ -0,0 +1,22 @@ +package com.habitrpg.wearos.habitica.ui.viewmodels + +import androidx.lifecycle.asLiveData +import com.habitrpg.wearos.habitica.data.repositories.TaskRepository +import com.habitrpg.wearos.habitica.data.repositories.UserRepository +import com.habitrpg.wearos.habitica.managers.LoadingManager +import com.habitrpg.wearos.habitica.util.ExceptionHandlerBuilder +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.flow.map +import javax.inject.Inject + +@HiltViewModel +class LevelupViewModel @Inject constructor( + userRepository: UserRepository, + taskRepository: TaskRepository, + exceptionBuilder: ExceptionHandlerBuilder, + loadingManager: LoadingManager +) : BaseViewModel(userRepository, taskRepository, exceptionBuilder, loadingManager) { + val level = userRepository.getUser() + .map { it.stats?.lvl } + .asLiveData() +} diff --git a/wearos/src/main/res/drawable-mdpi/experience_large.png b/wearos/src/main/res/drawable-mdpi/experience_large.png new file mode 100644 index 0000000000000000000000000000000000000000..2b7465ddf5e3faab5f86b5fce13cbfd2af9f86e6 GIT binary patch literal 873 zcmV-v1D5=WP))(w)^T3}gZ( z60sah5o*MiHWar6imY>jtO;BCrd&(jxxOter~yk}qrNRYQ$b5!yPhp&sF0=Py6>W% zEp=0VOH((2xiug<LnuD4Oi^Pq4awhCT70a6}qL04zE~#=J?bs&?q{quQ%zvuzsjBd+kaXMwlYZ z)Yn{KPAR~l%U0qNn)R~StkOp$A}uADe$$YQ4aXl;KLr*Zp=rlZ`}rBQ!`Dd8FCm$_ zB@NTRbVaU&<8^8>?Hsd7-<-XN^A9i4sW_8+A(cQ34Jnv@moYLDj!*VzLL64wQT+ar za~NX;=~+t}rr%W}0?z8PcOS`!23{t3Szsxh6;LXE7su(Og?QAvbsjd^7zf6U)C*bM z*q+$%8u&Zza&T#LOFkgT0!c%8V0`4e!`zD`d&v?|(y$ zvSq@OGL%TbRvc9$mUyIAUodoUWq)W5Yp<#(f%M?$@mZl{h{SO>L zE1H&!h1(Jz&A2rKG4s*PwR2r8xuLtOn=q8WUhHzBTxSOP00000NkvXXu0mjf04szh literal 0 HcmV?d00001 diff --git a/wearos/src/main/res/drawable-xhdpi/experience_large.png b/wearos/src/main/res/drawable-xhdpi/experience_large.png new file mode 100644 index 0000000000000000000000000000000000000000..9f122296a9dea52e41b9e6c4e4c981f24c924100 GIT binary patch literal 1471 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 literal 0 HcmV?d00001 diff --git a/wearos/src/main/res/drawable/confetti_blue.xml b/wearos/src/main/res/drawable/confetti_blue.xml new file mode 100644 index 000000000..90c3bf076 --- /dev/null +++ b/wearos/src/main/res/drawable/confetti_blue.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/wearos/src/main/res/drawable/confetti_purple.xml b/wearos/src/main/res/drawable/confetti_purple.xml new file mode 100644 index 000000000..959d9a18c --- /dev/null +++ b/wearos/src/main/res/drawable/confetti_purple.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/wearos/src/main/res/drawable/confetti_red.xml b/wearos/src/main/res/drawable/confetti_red.xml new file mode 100644 index 000000000..417150c8b --- /dev/null +++ b/wearos/src/main/res/drawable/confetti_red.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/wearos/src/main/res/drawable/confetti_yellow.xml b/wearos/src/main/res/drawable/confetti_yellow.xml new file mode 100644 index 000000000..8d6f38f9e --- /dev/null +++ b/wearos/src/main/res/drawable/confetti_yellow.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/wearos/src/main/res/layout/activity_faint.xml b/wearos/src/main/res/layout/activity_faint.xml index eda15d562..388602f45 100644 --- a/wearos/src/main/res/layout/activity_faint.xml +++ b/wearos/src/main/res/layout/activity_faint.xml @@ -16,8 +16,10 @@ android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" - android:layout_gravity="center"> + android:layout_gravity="center" + android:paddingVertical="@dimen/spacing_medium">