diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPollMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPollMessageViewHolder.kt index b1669bce3..8198748a0 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPollMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPollMessageViewHolder.kt @@ -26,6 +26,7 @@ import android.graphics.drawable.Drawable import android.graphics.drawable.LayerDrawable import android.os.Build import android.text.TextUtils +import android.util.Log import android.view.View import androidx.core.content.ContextCompat import androidx.core.content.res.ResourcesCompat @@ -40,11 +41,16 @@ import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication import com.nextcloud.talk.databinding.ItemCustomIncomingPollMessageBinding import com.nextcloud.talk.models.json.chat.ChatMessage +import com.nextcloud.talk.polls.repositories.model.PollOverall import com.nextcloud.talk.polls.ui.PollMainDialogFragment import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.DisplayUtils import com.nextcloud.talk.utils.preferences.AppPreferences import com.stfalcon.chatkit.messages.MessageHolders +import io.reactivex.Observer +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers import javax.inject.Inject @AutoInjector(NextcloudTalkApplication::class) @@ -129,17 +135,39 @@ class IncomingPollMessageViewHolder(incomingView: View, payload: Any) : MessageH ) } - // TODO get poll from api - // wait for https://github.com/nextcloud/spreed/pull/7306#issuecomment-1145819317 + val credentials = ApiUtils.getCredentials(message.activeUser?.username, message.activeUser?.token) + ncApi!!.getPoll( + credentials, + ApiUtils.getUrlForPoll( + message.activeUser?.baseUrl, + roomToken, + pollId + ) + ).subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Observer { + override fun onSubscribe(d: Disposable) { + // unused atm + } - // val credentials = ApiUtils.getCredentials(message.activeUser?.username, message.activeUser?.token) - // ncApi!!.getPoll( - // credentials, - // ApiUtils.getUrlForPoll( - // message.activeUser?.baseUrl, - // ??????? - // ) - // ) + override fun onNext(pollOverall: PollOverall) { + if (pollOverall.ocs!!.data!!.status == 0) { + binding.messagePollSubtitle.text = + context?.resources?.getString(R.string.message_poll_tap_to_vote) + } else { + binding.messagePollSubtitle.text = + context?.resources?.getString(R.string.message_poll_tap_see_results) + } + } + + override fun onError(e: Throwable) { + Log.e(TAG, "Error while fetching poll", e) + } + + override fun onComplete() { + // unused atm + } + }) } } diff --git a/app/src/main/res/layout/item_custom_incoming_poll_message.xml b/app/src/main/res/layout/item_custom_incoming_poll_message.xml index 7f198bd15..e069bf7c7 100644 --- a/app/src/main/res/layout/item_custom_incoming_poll_message.xml +++ b/app/src/main/res/layout/item_custom_incoming_poll_message.xml @@ -65,8 +65,8 @@ + android:gravity="center_vertical" + android:orientation="horizontal"> + app:tint="@color/high_emphasis_menu_icon" /> + android:text="@string/message_poll_tap_to_vote" />