diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 16b8f1061..8f2eff2ec 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -865,6 +865,7 @@ Dismiss All New Bailey Update! %1$s has new posts]]> + %1$s, has new posts]]> %1$s unallocated Stat Points]]> Create Only leader can create Challenges diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt index 00b5c789a..7b8591dd1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/NotificationsActivity.kt @@ -114,10 +114,11 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget private fun createNewChatMessageNotification(notification: GlobalNotification): View? { val data = notification.getData() as? NewChatMessageData + val stringId = if (viewModel.isPartyMessage(data)) R.string.new_msg_party else R.string.new_msg_guild; return createNotificationItem( notification, - fromHtml(getString(R.string.new_msg_guild, data?.group?.name)) + fromHtml(getString(stringId, data?.group?.name)) ) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt index 39f4cf0fd..3c4d2efdc 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/NotificationsViewModel.kt @@ -2,7 +2,9 @@ package com.habitrpg.android.habitica.ui.viewmodels import com.habitrpg.android.habitica.components.AppComponent import com.habitrpg.android.habitica.models.notifications.GlobalNotification +import com.habitrpg.android.habitica.models.notifications.NewChatMessageData import com.habitrpg.android.habitica.models.notifications.NotificationType +import com.habitrpg.android.habitica.models.social.UserParty import com.playseeds.android.sdk.inappmessaging.Log import io.reactivex.Flowable import io.reactivex.android.schedulers.AndroidSchedulers @@ -10,12 +12,15 @@ import io.realm.RealmList open class NotificationsViewModel : BaseViewModel() { + var party: UserParty? = null + override fun inject(component: AppComponent) { component.inject(this) } fun getNotifications(): Flowable> { return userRepository.getUser() + .doOnEach { party = it.value?.party } .map { filterSupportedTypes(it.notifications) } .observeOn(AndroidSchedulers.mainThread()) } @@ -33,6 +38,14 @@ open class NotificationsViewModel : BaseViewModel() { return notifications.filter { NotificationType.contains(it.type) } } + fun isPartyMessage(data: NewChatMessageData?): Boolean { + if (party == null || data?.group?.id == null) { + return false + } + + return party?.id == data.group?.id + } + fun dismissNotification(notification: GlobalNotification) { Log.d("NotificationsViewModel.dismissNotification " + notification.type + " " + notification.id) //TODO("not implemented")