diff --git a/Habitica/build.gradle b/Habitica/build.gradle
index a4fb03b4a..03707291e 100644
--- a/Habitica/build.gradle
+++ b/Habitica/build.gradle
@@ -155,7 +155,7 @@ android {
multiDexEnabled true
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 2384
+ versionCode 2386
versionName "2.5"
}
diff --git a/Habitica/res/layout/dialog_choose_message_recipient.xml b/Habitica/res/layout/dialog_choose_message_recipient.xml
index 36f4e7712..5408a9872 100644
--- a/Habitica/res/layout/dialog_choose_message_recipient.xml
+++ b/Habitica/res/layout/dialog_choose_message_recipient.xml
@@ -1,10 +1,12 @@
+ android:paddingRight="20dp"
+ android:gravity="center_horizontal">
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/menu/inbox.xml b/Habitica/res/menu/inbox.xml
new file mode 100644
index 000000000..a2c69decb
--- /dev/null
+++ b/Habitica/res/menu/inbox.xml
@@ -0,0 +1,10 @@
+
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 1e0792821..204c34edb 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -998,4 +998,5 @@
Support
Wacky
Habitica Questions
+ Could not find user
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxOverviewFragment.kt
index 204e61d1d..21ba46114 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxOverviewFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxOverviewFragment.kt
@@ -2,15 +2,12 @@ package com.habitrpg.android.habitica.ui.fragments.social
import android.content.Context
import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.MenuItem
-import android.view.View
-import android.view.ViewGroup
-import android.widget.EditText
+import android.view.*
import android.widget.TextView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.UserComponent
import com.habitrpg.android.habitica.data.SocialRepository
+import com.habitrpg.android.habitica.databinding.DialogChooseMessageRecipientBinding
import com.habitrpg.android.habitica.extensions.getAgoString
import com.habitrpg.android.habitica.helpers.AppConfigManager
import com.habitrpg.android.habitica.helpers.MainNavigationController
@@ -37,8 +34,6 @@ class InboxOverviewFragment : BaseMainFragment(), androidx.swiperefreshlayout.wi
@Inject
lateinit var configManager: AppConfigManager
- private var chooseRecipientDialogView: View? = null
-
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
this.hidesToolbar = true
@@ -69,6 +64,11 @@ class InboxOverviewFragment : BaseMainFragment(), androidx.swiperefreshlayout.wi
super.onDestroy()
}
+ override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
+ this.activity?.menuInflater?.inflate(R.menu.inbox, menu)
+ super.onCreateOptionsMenu(menu, inflater)
+ }
+
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.send_message -> {
@@ -81,19 +81,34 @@ class InboxOverviewFragment : BaseMainFragment(), androidx.swiperefreshlayout.wi
private fun openNewMessageDialog() {
assert(this.activity != null)
- this.chooseRecipientDialogView = this.activity?.layoutInflater?.inflate(R.layout.dialog_choose_message_recipient, null)
+ val binding = DialogChooseMessageRecipientBinding.inflate(layoutInflater)
this.activity?.let { thisActivity ->
val alert = HabiticaAlertDialog(thisActivity)
alert.setTitle(getString(R.string.choose_recipient_title))
- alert.addButton(getString(R.string.action_continue), true) { _, _ ->
- val uuidEditText = chooseRecipientDialogView?.findViewById(R.id.uuidEditText) as? EditText
- openInboxMessages(uuidEditText?.text?.toString() ?: "", "")
- }
+ alert.addButton(
+ getString(R.string.action_continue),
+ true,
+ false,
+ false
+ ) { _, _ ->
+ binding.errorTextView.visibility = View.GONE
+ binding.progressCircular.visibility = View.VISIBLE
+ val username = binding.uuidEditText.text?.toString() ?: ""
+ socialRepository.getMemberWithUsername(username)
+ .subscribe({
+ alert.dismiss()
+ openInboxMessages("", username)
+ binding.progressCircular.visibility = View.GONE
+ }, {
+ binding.errorTextView.visibility = View.VISIBLE
+ binding.progressCircular.visibility = View.GONE
+ })
+ }
alert.addButton(getString(R.string.action_cancel), false) { dialog, _ ->
- thisActivity.dismissKeyboard()
- }
- alert.setAdditionalContentView(chooseRecipientDialogView)
+ thisActivity.dismissKeyboard()
+ }
+ alert.setAdditionalContentView(binding.root)
alert.show()
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt
index 4aaf10598..3d099bff8 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt
@@ -149,10 +149,10 @@ open class HabiticaAlertDialog(context: Context) : AlertDialog(context, R.style.
fun getContentView(): View? = additionalContentView
fun addButton(stringRes: Int, isPrimary: Boolean, isDestructive: Boolean = false, function: ((HabiticaAlertDialog, Int) -> Unit)? = null): Button {
- return addButton(context.getString(stringRes), isPrimary, isDestructive, function)
+ return addButton(context.getString(stringRes), isPrimary, isDestructive, true, function)
}
- fun addButton(string: String, isPrimary: Boolean, isDestructive: Boolean = false, function: ((HabiticaAlertDialog, Int) -> Unit)? = null): Button {
+ fun addButton(string: String, isPrimary: Boolean, isDestructive: Boolean = false, autoDismiss: Boolean = true, function: ((HabiticaAlertDialog, Int) -> Unit)? = null): Button {
val button: Button = if (isPrimary) {
if (isDestructive) {
buttonsWrapper.inflate(R.layout.dialog_habitica_primary_destructive_button) as? Button
@@ -169,7 +169,7 @@ open class HabiticaAlertDialog(context: Context) : AlertDialog(context, R.style.
button.text = string
button.minWidth = 147.dpToPx(context)
button.setScaledPadding(context, 20, 0, 20, 0)
- return addButton(button, true, function) as Button
+ return addButton(button, autoDismiss, function) as Button
}