diff --git a/Habitica/res/layout/activity_login.xml b/Habitica/res/layout/activity_login.xml
index 41a5795ec..f216f1e8d 100644
--- a/Habitica/res/layout/activity_login.xml
+++ b/Habitica/res/layout/activity_login.xml
@@ -201,7 +201,7 @@
android:layout_marginTop="@dimen/spacing_xlarge"
android:layout_height="@dimen/diamond_button_height"
android:text="@string/login_btn_fb"
- android:drawableLeft="@drawable/facebook_icon"
+ android:drawableStart="@drawable/facebook_icon"
style="@style/LoginButton"/>
+ android:drawableStart="@drawable/apple_icon"
+ style="@style/LoginButton"
+ android:visibility="gone"/>
+ android:background="@color/transparent" />
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 5592c7786..30799ee45 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
@@ -209,8 +209,10 @@ class ChatFragment : BaseFragment() {
}
private fun sendChatMessage(chatText: String) {
- viewModel?.postGroupChat(chatText) {
+ viewModel?.postGroupChat(chatText, {
recyclerView?.scrollToPosition(0)
+ }) {
+ chatBarView.message = chatText
}
}
}
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 a494408e6..1dbf353e8 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
@@ -123,9 +123,12 @@ class InboxMessageListFragment : BaseMainFragment(), androidx.swiperefreshlayout
socialRepository.postPrivateMessage(userID, chatText)
.delay(200, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
- .subscribe(Consumer {
+ .subscribe({
recyclerView?.scrollToPosition(0)
- }, RxErrorHandler.handleEmptyError())
+ }, { error ->
+ RxErrorHandler.reportError(error)
+ chatBarView.message = chatText
+ })
KeyboardUtil.dismissKeyboard(getActivity())
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt
index c7c187c6a..61e07998b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/GroupViewModel.kt
@@ -200,11 +200,14 @@ open class GroupViewModel : BaseViewModel() {
disposable.add(socialRepository.deleteMessage(chatMessage).subscribe(Consumer { }, RxErrorHandler.handleEmptyError()))
}
- fun postGroupChat(chatText: String, onComplete: () -> Unit?) {
+ fun postGroupChat(chatText: String, onComplete: () -> Unit, onError: () -> Unit) {
groupIDSubject.value?.value?.let {
- socialRepository.postGroupChat(it, chatText).subscribe(Consumer {
+ socialRepository.postGroupChat(it, chatText).subscribe({
onComplete()
- }, RxErrorHandler.handleEmptyError())
+ }, { error ->
+ RxErrorHandler.reportError(error)
+ onError()
+ })
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt
index 97be64169..b25d82eb8 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/ChatBarView.kt
@@ -55,6 +55,10 @@ class ChatBarView : LinearLayout {
autocompleteAdapter?.groupID = value
}
+ var message: String?
+ get() = chatEditText.text.toString()
+ set(value) = chatEditText.setText(value)
+
constructor(context: Context) : super(context) {
setupView(context)
}
@@ -115,7 +119,7 @@ class ChatBarView : LinearLayout {
}
private fun sendButtonPressed() {
- val chatText = chatEditText.text.toString()
+ val chatText = message ?: ""
if (chatText.isNotEmpty()) {
chatEditText.text = null
sendAction?.invoke(chatText)