diff --git a/Habitica/res/values-b+es+419/strings.xml b/Habitica/res/values-b+es+419/strings.xml
index 8194f6d86..1673f8d0e 100644
--- a/Habitica/res/values-b+es+419/strings.xml
+++ b/Habitica/res/values-b+es+419/strings.xml
@@ -773,7 +773,7 @@
Tu grupo, %1$s, tiene nuevos mensajes
Tienes %1$s puntos de atributo sin asignar
Tienes un nuevo Objeto Misterioso
- Fuiste invitado a unirte al grupo %1$s
+ %1$s fuiste invitado a unirte al grupo %2$s
Fuiste invitado a ser parte del gremio privado %1$s
Fuiste invitado a ser parte del gremio %1$s
Fuiste invitado a participar de la misión %1$s
diff --git a/Habitica/res/values-bg/strings.xml b/Habitica/res/values-bg/strings.xml
index 98d00837d..ff0461285 100644
--- a/Habitica/res/values-bg/strings.xml
+++ b/Habitica/res/values-bg/strings.xml
@@ -643,7 +643,7 @@
%1$s]]>
%1$s неразпределени показателни точки]]>
тайнствен предмет]]>
- %1$s]]>
+ %1$s Получихте покана за присъединяване към групата %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-de/strings.xml b/Habitica/res/values-de/strings.xml
index cc29b84cb..a20e6a5f7 100644
--- a/Habitica/res/values-de/strings.xml
+++ b/Habitica/res/values-de/strings.xml
@@ -654,7 +654,7 @@ Die Quest-Schriftrolle wird an den Quest-Besitzer zurückgegeben.
%1$s, hat neue Beiträge]]>
%1$s Attributpunkt(e) verteilen]]>
Überraschungsgegenstand]]>
- %1$s eingeladen]]>
+ %1$s du wurdest zu der Gruppe %2$s eingeladen]]>
Du wurdest eingeladen, der privaten Gilde %1$s beizutreten
Du wurdest eingeladen, der Gilde %1$s beizutreten
%1$s eingeladen]]>
diff --git a/Habitica/res/values-en-rGB/strings.xml b/Habitica/res/values-en-rGB/strings.xml
index 8af2b2f63..912817ff6 100644
--- a/Habitica/res/values-en-rGB/strings.xml
+++ b/Habitica/res/values-en-rGB/strings.xml
@@ -653,7 +653,7 @@
%1$s, has new posts]]>
%1$s unallocated Stat Points]]>
Mystery Items]]>
- %1$s]]>
+ %1$s has invited you to join the party %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-es/strings.xml b/Habitica/res/values-es/strings.xml
index 9bc99991f..a374877cb 100644
--- a/Habitica/res/values-es/strings.xml
+++ b/Habitica/res/values-es/strings.xml
@@ -653,7 +653,7 @@
%1$s, tiene nuevos mensajes]]>
%1$s Puntos de Estadísticas sin asignar]]>
Objetos Misteriosos nuevos]]>
- %1$s]]>
+ %1$s has sido invitado a unirte al Equipo %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-fr/strings.xml b/Habitica/res/values-fr/strings.xml
index ee1e6275a..e2a7b2f39 100644
--- a/Habitica/res/values-fr/strings.xml
+++ b/Habitica/res/values-fr/strings.xml
@@ -652,7 +652,7 @@
%1$s, a de nouveaux messages]]>
%1$s points d\'attribut non alloués]]>
objets mystère]]>
- %1$s]]>
+ %1$s vous avez reçu une invitation à rejoindre l\'équipe %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-hr-rHR/strings.xml b/Habitica/res/values-hr-rHR/strings.xml
index 4571c240c..461127a21 100644
--- a/Habitica/res/values-hr-rHR/strings.xml
+++ b/Habitica/res/values-hr-rHR/strings.xml
@@ -677,7 +677,7 @@
Godina
%s Klasa
Jesi li siguran/la da želiš odbaciti promjene ovom zadatku\?
- Pozvan/a si da se pridružiš Družini %1$s
+ %1$s Pozvan/a si da se pridružiš Družini %2$s
Trebaš li promjenu svakodnevnice\?
Postani %s
Vile obavijesti ti daju prodornu rundu pljeska! Svaka čast!
diff --git a/Habitica/res/values-in/strings.xml b/Habitica/res/values-in/strings.xml
index d911c2b87..2c9f2a9d1 100644
--- a/Habitica/res/values-in/strings.xml
+++ b/Habitica/res/values-in/strings.xml
@@ -733,7 +733,7 @@
Kamu telah diundang untuk melaksanakan Misi %1$s
Kamu telah diundang untuk bergabung dengan Guild %1$s
Kamu telah diundang untuk bergabung dengan Guild pribadi %1$s
- Kamu telah diundang untuk bergabung dengan Party %1$s
+ %1$s Kamu telah diundang untuk bergabung dengan Party %2$s
Kamu memiliki Item Misteri baru
Kamu memiliki %1$s Poin Stat yang belum dialokasikan
Party-mu, %1$s, ada postingan baru
diff --git a/Habitica/res/values-it/strings.xml b/Habitica/res/values-it/strings.xml
index 91c03e85e..25cfa8533 100644
--- a/Habitica/res/values-it/strings.xml
+++ b/Habitica/res/values-it/strings.xml
@@ -643,7 +643,7 @@
%1$s, ha nuovi messaggi]]>
%1$s Punti Statistica non allocati]]>
Oggetti Misteriosi]]>
- %1$s]]>
+ %1$s hai ricevuto un invito per unirti alla Squadra %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-ja/strings.xml b/Habitica/res/values-ja/strings.xml
index d93f3447e..54907a7c4 100644
--- a/Habitica/res/values-ja/strings.xml
+++ b/Habitica/res/values-ja/strings.xml
@@ -652,7 +652,7 @@
あなたのパーティー、%1$sに新しい投稿があります
%1$sポイントが割り当てできます。]]>
新しいミステリーアイテム
- パーティー「%1$s」に招待されました
+ パーティー「%1$s」に招待されました %2$s
プライベートギルド「%1$s」に招待されました
「%1$s」ギルドに招待されました
%1$sクエストに招待されました
diff --git a/Habitica/res/values-ko/strings.xml b/Habitica/res/values-ko/strings.xml
index 87ec43833..8b9b7f6c8 100644
--- a/Habitica/res/values-ko/strings.xml
+++ b/Habitica/res/values-ko/strings.xml
@@ -715,7 +715,7 @@
%1$s 퀘스트에 초대되었습니다
%1$s 길드에 초대되었습니다
%1$s 비공개 길드에 초대되었습니다
- %1$s 파티에 초대되었습니다
+ %1$s 파티에 초대되었습니다 %2$s
"새로운 "미스터리 아이템이 있습니다
%1$s 개의 배분되지 않은 능력치 포인트가 있습니다
%1$s 파티창에 새로운 글이 올라왔습니다
diff --git a/Habitica/res/values-nl/strings.xml b/Habitica/res/values-nl/strings.xml
index d06059989..ee79acc29 100644
--- a/Habitica/res/values-nl/strings.xml
+++ b/Habitica/res/values-nl/strings.xml
@@ -628,7 +628,7 @@
%1$s, heeft nieuwe berichten]]>
%1$s niet toegekende statuspunten]]>
Mysterieuze items]]>
- %1$s]]>
+ %1$s je werd uitgenodigd om je aan te sluiten bij de Groep %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-pl/strings.xml b/Habitica/res/values-pl/strings.xml
index 4c54dc76e..ff903906d 100644
--- a/Habitica/res/values-pl/strings.xml
+++ b/Habitica/res/values-pl/strings.xml
@@ -585,7 +585,7 @@
%1$s ma nowe posty]]>
nieprzydzielone Punkty Atrybutów: %1$s]]>
Tajemniczy Przedmiot]]>
- %1$s]]>
+ %1$s zostałeś/aś zaproszony/a do Dryżyny %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-pt-rBR/strings.xml b/Habitica/res/values-pt-rBR/strings.xml
index 7dfc67fcd..a7fceef4f 100644
--- a/Habitica/res/values-pt-rBR/strings.xml
+++ b/Habitica/res/values-pt-rBR/strings.xml
@@ -651,7 +651,7 @@
Seu Grupo, %1$s, tem novas publicações
%1$s Pontos de Atributos não distribuidos]]>
Você possui novos Itens Misteriosos
- %1$s]]>
+ %1$s Você foi convidado para entrar em um Grupo %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-pt-rPT/strings.xml b/Habitica/res/values-pt-rPT/strings.xml
index 40b7afee0..fc8b73e37 100644
--- a/Habitica/res/values-pt-rPT/strings.xml
+++ b/Habitica/res/values-pt-rPT/strings.xml
@@ -375,7 +375,7 @@
%1$s, tem novas mensagens]]>
%1$s Ponto(s) de Atributo por alocar]]>
Items Mistério novos]]>
- %1$s]]>
+ %1$s foi convidado a juntar-se à Equipa %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-ru/strings.xml b/Habitica/res/values-ru/strings.xml
index 956e4b4f7..4d85d3056 100644
--- a/Habitica/res/values-ru/strings.xml
+++ b/Habitica/res/values-ru/strings.xml
@@ -651,7 +651,7 @@
%1$s есть новые сообщения]]>
%1$s очков]]>
Таинственный предмет]]>
- %1$s]]>
+ %1$s Вас пригласили в команду %2$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
diff --git a/Habitica/res/values-tr/strings.xml b/Habitica/res/values-tr/strings.xml
index 3f4185c37..9e3e2cb08 100644
--- a/Habitica/res/values-tr/strings.xml
+++ b/Habitica/res/values-tr/strings.xml
@@ -652,7 +652,7 @@
%1$s adlı Takımında yeni mesajlar var]]>
%1$s adet dağıtılmamış Nitelik Puanın var.]]>
Gizemli Eşyaların var]]>
- %1$s Takımına davet edildin]]>
+ %2$s Takımına davet edildin %1$s]]>
%1$s adlı özel Loncaya davet edildin]]>
%1$s adlı Loncaya davet edildin]]>
%1$s Görevine davet edildin]]>
diff --git a/Habitica/res/values-uk/strings.xml b/Habitica/res/values-uk/strings.xml
index 42d9bd0fa..2bd88e9bc 100755
--- a/Habitica/res/values-uk/strings.xml
+++ b/Habitica/res/values-uk/strings.xml
@@ -1007,7 +1007,7 @@
Вас запросили в гільдію %1$s
Вас запросили на квест %1$s
Вас запросили приєднатися до приватної гільдії %1$s
- Вас запросили до команди %1$s
+ %1$s Вас запросили до команди %2$s
Ви відправили %s %s-місячну підписку Habitica. Ця ж підписка була застосована до вашого облікового запису, завдяки участі в акції «Подаруйте підписку, отримайте підписку»!
Виберіть підписку, яку хочете подарувати внизу! Ця покупка не буде продовжена автоматично.
Допоки ця акція активна, ви отримуєте відповідну підписку автоматично після відправки подарунка.
diff --git a/Habitica/res/values-vi/strings.xml b/Habitica/res/values-vi/strings.xml
index dc3f9b2c6..9e92ffbe3 100755
--- a/Habitica/res/values-vi/strings.xml
+++ b/Habitica/res/values-vi/strings.xml
@@ -682,7 +682,7 @@
Bạn đã được mời tham gia vào Nhiệm vụ %1$s
Bạn đã được mời tham gia vào Bang hội %1$s
Bạn đã được mời tham gia vào Bang hội kín %1$s
- Bạn đã được mời tham gia vào Tổ đội %1$s
+ %1$s bạn đã được mời tham gia vào Tổ đội %2$s
Bạn có Vật phẩm Bí ẩn mới
Bạn có %1$s Điểm Chỉ số chưa phân bổ
Tổ đội của bạn, %1$s, có bài viết mới
diff --git a/Habitica/res/values-zh-rTW/strings.xml b/Habitica/res/values-zh-rTW/strings.xml
index 48d237cba..4b172eef4 100644
--- a/Habitica/res/values-zh-rTW/strings.xml
+++ b/Habitica/res/values-zh-rTW/strings.xml
@@ -651,7 +651,7 @@
%1$s有新的貼文]]>
%1$s點未分配屬性點]]>
神秘裝備]]>
- %1$s隊伍]]>
+ %1$s 您受邀加入%2$s隊伍]]>
%1$s私人公會]]>
%1$s您受邀加入]]>
%1$s副本]]>
diff --git a/Habitica/res/values-zh/strings.xml b/Habitica/res/values-zh/strings.xml
index 00663b30c..f90cd41f8 100644
--- a/Habitica/res/values-zh/strings.xml
+++ b/Habitica/res/values-zh/strings.xml
@@ -652,7 +652,7 @@
%1$s 有新消息]]>
%1$s没分配的属性点]]>
神秘物品]]>
- %1$s]]>
+ %1$s 你被邀请加入队伍%2$s]]>
您收到邀请加入一个私人公会%1$s
您收到了加入公会的邀请%1$s
你被邀请加入副本%1$s
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index e48f8a9c1..e9a2bbec9 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -764,7 +764,7 @@
%1$s, has new posts]]>
%1$s unallocated Stat Points]]>
Mystery Items]]>
- %1$s]]>
+ %2$s has invited you to join the party %1$s]]>
%1$s]]>
%1$s]]>
%1$s]]>
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 f47dc940b..b99a4304e 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
@@ -15,6 +15,7 @@ import androidx.activity.viewModels
import androidx.core.content.ContextCompat
import androidx.lifecycle.lifecycleScope
import com.habitrpg.android.habitica.R
+import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.databinding.ActivityNotificationsBinding
@@ -39,6 +40,7 @@ import com.habitrpg.common.habitica.views.PixelArtView
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
import javax.inject.Inject
@AndroidEntryPoint
@@ -80,6 +82,10 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
binding.notificationsRefreshLayout.setOnRefreshListener(this)
}
+ override fun injectActivity(component: UserComponent?) {
+ component?.inject(this)
+ }
+
override fun onSupportNavigateUp(): Boolean {
if (supportFragmentManager.backStackEntryCount > 0) {
onBackPressed()
@@ -122,39 +128,29 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
createNotificationsHeaderView(notifications.count())
)
- //Currently retrieving the inviters username by user's id
lifecycleScope.launch(ExceptionHandler.coroutine()) {
- notifications.filter { it.type == Notification.Type.PARTY_INVITATION.type }.forEach {
- val item = createPartyInvitationNotification(it)
- val inviteView = binding.notificationItems.findViewWithTag(it.id)
- if (item != null && inviteView == null) {
- item.tag = it.id
+ notifications.map {
+ val item: View? = when (it.type) {
+ Notification.Type.NEW_CHAT_MESSAGE.type -> createNewChatMessageNotification(it)
+ Notification.Type.NEW_STUFF.type -> createNewStuffNotification(it)
+ Notification.Type.UNALLOCATED_STATS_POINTS.type -> createUnallocatedStatsNotification(it)
+ Notification.Type.NEW_MYSTERY_ITEMS.type -> createMysteryItemsNotification(it)
+ Notification.Type.GROUP_TASK_NEEDS_WORK.type -> createGroupTaskNeedsWorkNotification(it)
+ Notification.Type.GROUP_TASK_APPROVED.type -> createGroupTaskApprovedNotification(it)
+ Notification.Type.GROUP_TASK_REQUIRES_APPROVAL.type -> createGroupTaskNeedsApprovalNotification(it)
+ Notification.Type.PARTY_INVITATION.type -> createPartyInvitationNotification(it)
+ Notification.Type.GUILD_INVITATION.type -> createGuildInvitationNotification(it)
+ Notification.Type.QUEST_INVITATION.type -> createQuestInvitationNotification(it)
+ Notification.Type.ITEM_RECEIVED.type -> createItemReceivedNotification(it)
+ else -> null
+ }
+
+ if (item != null) {
binding.notificationItems.addView(item)
}
}
}
- notifications.map {
- val item: View? = when (it.type) {
- Notification.Type.NEW_CHAT_MESSAGE.type -> createNewChatMessageNotification(it)
- Notification.Type.NEW_STUFF.type -> createNewStuffNotification(it)
- Notification.Type.UNALLOCATED_STATS_POINTS.type -> createUnallocatedStatsNotification(it)
- Notification.Type.NEW_MYSTERY_ITEMS.type -> createMysteryItemsNotification(it)
- Notification.Type.GROUP_TASK_NEEDS_WORK.type -> createGroupTaskNeedsWorkNotification(it)
- Notification.Type.GROUP_TASK_APPROVED.type -> createGroupTaskApprovedNotification(it)
- Notification.Type.GROUP_TASK_REQUIRES_APPROVAL.type -> createGroupTaskNeedsApprovalNotification(it)
- Notification.Type.GUILD_INVITATION.type -> createGuildInvitationNotification(it)
- Notification.Type.QUEST_INVITATION.type -> createQuestInvitationNotification(it)
- Notification.Type.ITEM_RECEIVED.type -> createItemReceivedNotification(it)
- else -> null
- }
-
- if (item != null) {
- binding.notificationItems.addView(item)
- }
- }
-
-
}
private fun createNotificationsHeaderView(notificationCount: Int): View? {
@@ -312,14 +308,21 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
return item
}
-
+
private suspend fun createPartyInvitationNotification(notification: Notification): View? = withContext(ExceptionHandler.coroutine()) {
val data = notification.data as? PartyInvitationData
-
- return createActionableNotificationItem(
- notification,
- fromHtml(getString(R.string.invited_to_party_notification, data?.invitation?.name))
- )
+ val inviterId = data?.invitation?.inviter
+ if (inviterId != null) {
+ val inviter = socialRepository.retrieveMember(inviterId, fromHall = false)
+ return@withContext createActionableNotificationItem(
+ notification,
+ fromHtml(getString(R.string.invited_to_party_notification, data.invitation?.name, inviter?.formattedUsername)),
+ openable = true,
+ inviterId
+ )
+ } else {
+ return@withContext null
+ }
}
private fun createGuildInvitationNotification(notification: Notification): View? {
@@ -384,17 +387,22 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
private fun createActionableNotificationItem(
notification: Notification,
messageText: CharSequence,
- openable: Boolean = false
+ openable: Boolean = false,
+ inviterId: String? = null
): View? {
val item = inflater?.inflate(R.layout.notification_item_actionable, binding.notificationItems, false)
if (openable) {
val container = item?.findViewById(R.id.notification_item) as? View
container?.setOnClickListener {
- val resultIntent = Intent()
- resultIntent.putExtra("notificationId", notification.id)
- setResult(Activity.RESULT_OK, resultIntent)
- finish()
+ if (inviterId != null) {
+ FullProfileActivity.open(inviterId)
+ } else {
+ val resultIntent = Intent()
+ resultIntent.putExtra("notificationId", notification.id)
+ setResult(Activity.RESULT_OK, resultIntent)
+ finish()
+ }
}
}