diff --git a/Habitica/build.gradle b/Habitica/build.gradle
index 2674de308..9b19c603b 100644
--- a/Habitica/build.gradle
+++ b/Habitica/build.gradle
@@ -157,7 +157,7 @@ android {
buildConfigField "String", "TESTING_LEVEL", "\"production\""
resConfigs "en", "bg", "de", "en-rGB", "es", "fr", "hr-rHR", "in", "it", "iw", "ja", "ko", "lt", "nl", "pl", "pt-rBR", "pt-rPT", "ru", "tr", "zh", "zh-rTW"
- versionCode 3214
+ versionCode 3218
versionName "3.5"
targetSdkVersion 32
diff --git a/Habitica/res/drawable/ic_check_purple.xml b/Habitica/res/drawable/ic_check_purple.xml
index 60e7b4dd3..64e073bc1 100644
--- a/Habitica/res/drawable/ic_check_purple.xml
+++ b/Habitica/res/drawable/ic_check_purple.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/Habitica/res/drawable/purchase_button_background.xml b/Habitica/res/drawable/purchase_button_background.xml
index acf842271..3f3aed87b 100644
--- a/Habitica/res/drawable/purchase_button_background.xml
+++ b/Habitica/res/drawable/purchase_button_background.xml
@@ -26,7 +26,7 @@
-
+ android:color="@color/gray_600">
@@ -36,7 +36,7 @@
-
+ android:color="@color/white">
diff --git a/Habitica/res/layout/activity_adventure_guide.xml b/Habitica/res/layout/activity_adventure_guide.xml
index a40b875c4..c0bb45254 100644
--- a/Habitica/res/layout/activity_adventure_guide.xml
+++ b/Habitica/res/layout/activity_adventure_guide.xml
@@ -1,11 +1,10 @@
+ android:background="?colorContentBackground">
+ android:layout_marginStart="14dp"/>
@@ -34,7 +34,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/onboarding_objectives"
- style="@style/Body1"
+ style="@style/Subheader3"
+ android:textStyle="bold"
android:textColor="@color/text_primary"/>
diff --git a/Habitica/res/layout/fragment_gem_purchase.xml b/Habitica/res/layout/fragment_gem_purchase.xml
index 93fcca21c..1e910c52e 100644
--- a/Habitica/res/layout/fragment_gem_purchase.xml
+++ b/Habitica/res/layout/fragment_gem_purchase.xml
@@ -239,8 +239,7 @@
android:layout_gravity="center_horizontal"
android:gravity="center"
android:textColor="@color/white"
- android:textSize="14sp"
- android:lineSpacingExtra="4dp"
+ style="@style/Caption2"
android:drawablePadding="@dimen/spacing_medium"/>
diff --git a/Habitica/res/navigation/navigation.xml b/Habitica/res/navigation/navigation.xml
index 47284f11d..25342e65e 100644
--- a/Habitica/res/navigation/navigation.xml
+++ b/Habitica/res/navigation/navigation.xml
@@ -388,7 +388,6 @@
Google play services could not be found.
Purchase
Buying gems supports the developers and helps keep Habitica running
- Gems allow you to buy fun extras for your account, including:
+ Gems allow you to buy fun extras for your account:
Cool costumes for your avatar
Awesome backgrounds
Quests that reward you with pet eggs
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/components/UserComponent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/components/UserComponent.java
index 041ce5192..bf889d2f4 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/components/UserComponent.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/components/UserComponent.java
@@ -22,6 +22,7 @@ import com.habitrpg.android.habitica.ui.activities.GiftGemsActivity;
import com.habitrpg.android.habitica.ui.activities.GiftSubscriptionActivity;
import com.habitrpg.android.habitica.ui.activities.GroupFormActivity;
import com.habitrpg.android.habitica.ui.activities.GroupInviteActivity;
+import com.habitrpg.android.habitica.ui.activities.GuidelinesActivity;
import com.habitrpg.android.habitica.ui.activities.HabitButtonWidgetActivity;
import com.habitrpg.android.habitica.ui.activities.IntroActivity;
import com.habitrpg.android.habitica.ui.activities.LoginActivity;
@@ -349,4 +350,6 @@ public interface UserComponent {
void inject(@NotNull AuthenticationViewModel authenticationViewModel);
void inject(@NotNull MainActivityViewModel mainActivityViewModel);
+
+ void inject(@NotNull GuidelinesActivity guidelinesActivity);
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShowNotificationInteractor.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShowNotificationInteractor.kt
index abb2fa8d5..b3bc21eee 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShowNotificationInteractor.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/ShowNotificationInteractor.kt
@@ -27,7 +27,7 @@ import kotlinx.coroutines.launch
class ShowNotificationInteractor(private val activity: Activity, private val lifecycleScope: LifecycleCoroutineScope) {
- fun handleNotification(notification: Notification) {
+ fun handleNotification(notification: Notification): Boolean {
when (notification.type) {
Notification.Type.LOGIN_INCENTIVE.type -> showCheckinDialog(notification)
Notification.Type.ACHIEVEMENT_PARTY_UP.type -> showAchievementDialog(notification)
@@ -67,8 +67,9 @@ class ShowNotificationInteractor(private val activity: Activity, private val lif
Notification.Type.ACHIEVEMENT_GENERIC.type -> showAchievementDialog(notification)
Notification.Type.ACHIEVEMENT_ONBOARDING_COMPLETE.type -> showAchievementDialog(notification)
Notification.Type.FIRST_DROP.type -> showFirstDropDialog(notification)
- else -> false
+ else -> return false
}
+ return true
}
fun showCheckinDialog(notification: Notification) {
@@ -122,7 +123,7 @@ class ShowNotificationInteractor(private val activity: Activity, private val lif
} else {
200
}
- lifecycleScope.launch() {
+ lifecycleScope.launch {
delay(delayTime)
lifecycleScope.launch(context = Dispatchers.Main) {
val dialog = AchievementDialog(activity)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AdventureGuideActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AdventureGuideActivity.kt
index 20eb9fcbe..631a95038 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AdventureGuideActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/AdventureGuideActivity.kt
@@ -27,9 +27,6 @@ class AdventureGuideActivity : BaseActivity() {
private lateinit var achievementTitles: Map
private lateinit var achievementDescriptions: Map
- @Inject
- internal lateinit var userRepository: UserRepository
-
override fun getLayoutResId(): Int {
return R.layout.activity_main
}
@@ -99,7 +96,6 @@ class AdventureGuideActivity : BaseActivity() {
if (completed > 0) {
binding.progressTextview.text = getString(R.string.percent_completed, ((completed / achievements.size.toFloat()) * 100).toInt())
- binding.progressTextview.setTextColor(ContextCompat.getColor(this, R.color.yellow_5))
}
binding.achievementContainer.removeAllViews()
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt
index 4a3a68a03..a25996bc9 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt
@@ -25,8 +25,10 @@ import com.habitrpg.android.habitica.HabiticaApplication
import com.habitrpg.android.habitica.HabiticaBaseApplication
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
+import com.habitrpg.android.habitica.data.UserRepository
import com.habitrpg.android.habitica.extensions.getThemeColor
import com.habitrpg.android.habitica.extensions.isUsingNightModeResources
+import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
import com.habitrpg.android.habitica.extensions.updateStatusBarColor
import com.habitrpg.android.habitica.helpers.LanguageHelper
import com.habitrpg.android.habitica.helpers.NotificationsManager
@@ -44,6 +46,8 @@ abstract class BaseActivity : AppCompatActivity() {
@Inject
lateinit var notificationsManager: NotificationsManager
@Inject
+ lateinit var userRepository: UserRepository
+ @Inject
internal lateinit var analyticsManager: AnalyticsManager
private var currentTheme: String? = null
@@ -92,7 +96,9 @@ abstract class BaseActivity : AppCompatActivity() {
compositeSubscription = CompositeDisposable()
compositeSubscription.add(notificationsManager.displayNotificationEvents.subscribe(
{
- ShowNotificationInteractor(this, lifecycleScope).handleNotification(it)
+ if (ShowNotificationInteractor(this, lifecycleScope).handleNotification(it)) {
+ compositeSubscription.add(userRepository.retrieveUser(false, true).subscribeWithErrorHandler {})
+ }
},
RxErrorHandler.handleEmptyError()
))
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt
index 64353c8c3..496dbd52d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ChallengeFormActivity.kt
@@ -53,8 +53,6 @@ class ChallengeFormActivity : BaseActivity() {
internal lateinit var challengeRepository: ChallengeRepository
@Inject
internal lateinit var socialRepository: SocialRepository
- @Inject
- internal lateinit var userRepository: UserRepository
@field:[Inject Named(AppModule.NAMED_USER_ID)]
internal lateinit var userId: String
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt
index 4cd9c5a03..3ff4fc12b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt
@@ -46,9 +46,6 @@ class ClassSelectionActivity : BaseActivity(), Consumer {
private var classWasUnset: Boolean? = false
private var shouldFinish: Boolean? = false
- @Inject
- lateinit var userRepository: UserRepository
-
private var progressDialog: HabiticaProgressDialog? = null
override fun getLayoutResId(): Int {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt
index ce10ecf80..6bed0ac96 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt
@@ -53,8 +53,6 @@ class FullProfileActivity : BaseActivity() {
lateinit var apiClient: ApiClient
@Inject
lateinit var socialRepository: SocialRepository
- @Inject
- lateinit var userRepository: UserRepository
private var userID = ""
private var username: String? = null
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftGemsActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftGemsActivity.kt
index b350a3e76..1aba66ce1 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftGemsActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GiftGemsActivity.kt
@@ -33,8 +33,6 @@ class GiftGemsActivity : PurchaseActivity() {
@Inject
lateinit var socialRepository: SocialRepository
@Inject
- lateinit var userRepository: UserRepository
- @Inject
lateinit var appConfigManager: AppConfigManager
@Inject
lateinit var purchaseHandler: PurchaseHandler
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt
index 9662a88a3..582067e97 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt
@@ -32,8 +32,6 @@ class GroupInviteActivity : BaseActivity() {
lateinit var userId: String
@Inject
lateinit var socialRepository: SocialRepository
- @Inject
- lateinit var userRepository: UserRepository
internal var fragments: MutableList = ArrayList()
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GuidelinesActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GuidelinesActivity.kt
index 3238c510a..8fcf7bf5c 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GuidelinesActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GuidelinesActivity.kt
@@ -15,7 +15,9 @@ import java.io.InputStreamReader
class GuidelinesActivity : BaseActivity() {
override fun getLayoutResId(): Int = R.layout.activity_guidelines
- override fun injectActivity(component: UserComponent?) { /* no-on */ }
+ override fun injectActivity(component: UserComponent?) {
+ component?.inject(this)
+ }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.kt
index 482e30389..35a0b44f6 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.kt
@@ -49,8 +49,6 @@ class LoginActivity : BaseActivity() {
@Inject
lateinit var sharedPrefs: SharedPreferences
@Inject
- internal lateinit var userRepository: UserRepository
- @Inject
lateinit var configManager: AppConfigManager
private var isRegistering: Boolean = false
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt
index 8ab31d03c..23f799a37 100755
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt
@@ -77,8 +77,6 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction, Snack
@Inject
internal lateinit var taskRepository: TaskRepository
@Inject
- internal lateinit var userRepository: UserRepository
- @Inject
internal lateinit var inventoryRepository: InventoryRepository
@Inject
internal lateinit var appConfigManager: AppConfigManager
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt
index b7e4e8c80..233b9fbe3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.kt
@@ -44,8 +44,6 @@ class SetupActivity : BaseActivity(), ViewPager.OnPageChangeListener {
@Inject
lateinit var hostConfig: HostConfig
@Inject
- lateinit var userRepository: UserRepository
- @Inject
lateinit var inventoryRepository: InventoryRepository
@Inject
lateinit var taskRepository: TaskRepository
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.kt
index 2361f16d0..25efc6a62 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SkillMemberActivity.kt
@@ -20,8 +20,6 @@ class SkillMemberActivity : BaseActivity() {
@Inject
lateinit var socialRepository: SocialRepository
- @Inject
- lateinit var userRepository: UserRepository
override fun getLayoutResId(): Int {
return R.layout.activity_skill_members
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt
index 476206e55..edd88c8e3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.kt
@@ -48,8 +48,6 @@ class TaskFormActivity : BaseActivity() {
private var userScrolled: Boolean = false
private var isSaving: Boolean = false
@Inject
- lateinit var userRepository: UserRepository
- @Inject
lateinit var taskRepository: TaskRepository
@Inject
lateinit var tagRepository: TagRepository
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt
index f540990b0..8b805712d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/VerifyUsernameActivity.kt
@@ -24,9 +24,6 @@ import javax.inject.Inject
class VerifyUsernameActivity : BaseActivity() {
private lateinit var binding: ActivityVerifyUsernameBinding
- @Inject
- lateinit var userRepository: UserRepository
-
private val displayNameVerificationEvents = PublishSubject.create()
private val usernameVerificationEvents = PublishSubject.create()
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt
index d2f4c577b..3ba3bea0b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt
@@ -188,7 +188,7 @@ class ChatFragment() : BaseFragment() {
}
private fun showFlagConfirmationDialog(chatMessage: ChatMessage) {
- val directions = MainNavDirections.actionGlobalReportMessageActivity(chatMessage.text ?: "", chatMessage.user ?: "", chatMessage.id)
+ val directions = MainNavDirections.actionGlobalReportMessageActivity(chatMessage.text ?: "", chatMessage.user ?: "", chatMessage.id, chatMessage.groupId)
MainNavigationController.navigate(directions)
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt
index aa548b3a0..5abbb4fa1 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt
@@ -251,7 +251,7 @@ class InboxMessageListFragment : BaseMainFragment