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 30620d9e6..0073f008b 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 @@ -35,6 +35,7 @@ import com.habitrpg.android.habitica.models.user.Stats import com.habitrpg.android.habitica.ui.AvatarView import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel import com.habitrpg.android.habitica.ui.adapter.social.AchievementProfileAdapter +import com.habitrpg.android.habitica.ui.fragments.social.InboxOverviewFragmentDirections import com.habitrpg.android.habitica.ui.helpers.dismissKeyboard import com.habitrpg.android.habitica.ui.helpers.loadImage import com.habitrpg.android.habitica.ui.helpers.setMarkdown @@ -181,27 +182,7 @@ class FullProfileActivity : BaseActivity() { } private fun showSendMessageToUserDialog() { - val factory = LayoutInflater.from(this) - val newMessageView = factory.inflate(R.layout.profile_new_message_dialog, null) - - val emojiEditText = newMessageView.findViewById(R.id.edit_new_message_text) - - val newMessageTitle = newMessageView.findViewById(R.id.new_message_title) - newMessageTitle.text = String.format(getString(R.string.profile_send_message_to), userDisplayName) - - val addMessageDialog = HabiticaAlertDialog(this) - addMessageDialog.addButton(android.R.string.ok, true) { _, _ -> - socialRepository.postPrivateMessage(userID, emojiEditText.text.toString()) - .subscribe({ - HabiticaSnackbar.showSnackbar(this@FullProfileActivity.binding.scrollView.getChildAt(0) as ViewGroup, - String.format(getString(R.string.profile_message_sent_to), userDisplayName), SnackbarDisplayType.NORMAL) - }, RxErrorHandler.handleEmptyError()) - - dismissKeyboard() - } - addMessageDialog.addButton(android.R.string.cancel, false) { _, _ -> dismissKeyboard() } - addMessageDialog.setAdditionalContentView(newMessageView) - addMessageDialog.show() + MainNavigationController.navigate(R.id.inboxFragment, bundleOf(Pair("username", username), Pair("userID", userID))) } private fun updateView(user: Member) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/InboxAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/InboxAdapter.kt index 394dd48d1..3571e3953 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/InboxAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/InboxAdapter.kt @@ -108,7 +108,7 @@ class InboxAdapter(private var user: User?, private var replyToUser : Member) : newConcert: ChatMessage) = oldConcert.id == newConcert.id override fun areContentsTheSame(oldConcert: ChatMessage, - newConcert: ChatMessage) = oldConcert == newConcert + newConcert: ChatMessage) = oldConcert.text == newConcert.text } } } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt index cf94fb8c9..edb8f9ad4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt @@ -36,7 +36,7 @@ class InboxViewModel(recipientID: String?, recipientUsername: String?) : BaseVie .setEnablePlaceholders(false) .build() - private val dataSourceFactory = MessagesDataSourceFactory(socialRepository, recipientID, ChatMessage()) + val dataSourceFactory = MessagesDataSourceFactory(socialRepository, recipientID, ChatMessage()) val messages: LiveData> = dataSourceFactory.toLiveData(config) private val member: MutableLiveData by lazy { MutableLiveData() @@ -85,7 +85,7 @@ class InboxViewModel(recipientID: String?, recipientUsername: String?) : BaseVie } } -private class MessagesDataSource(val socialRepository: SocialRepository, var recipientID: String?, var footer : ChatMessage?): +class MessagesDataSource(val socialRepository: SocialRepository, var recipientID: String?, var footer : ChatMessage?): PositionalDataSource() { private var lastFetchWasEnd = false override fun loadRange(params: LoadRangeParams, callback: LoadRangeCallback) { @@ -137,7 +137,7 @@ private class MessagesDataSource(val socialRepository: SocialRepository, var rec } } -private class MessagesDataSourceFactory(val socialRepository: SocialRepository, var recipientID: String?, val footer : ChatMessage?) : +class MessagesDataSourceFactory(val socialRepository: SocialRepository, var recipientID: String?, val footer : ChatMessage?) : DataSource.Factory() { val sourceLiveData = MutableLiveData() var latestSource: MessagesDataSource = MessagesDataSource(socialRepository, recipientID, footer)