Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions app/src/main/java/com/nextcloud/talk/api/NcApiCoroutines.kt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import com.nextcloud.talk.models.json.participants.TalkBanOverall
import com.nextcloud.talk.models.json.passwordResult.PasswordResultOverall
import com.nextcloud.talk.models.json.profile.ProfileOverall
import com.nextcloud.talk.models.json.reactions.ReactionsOverall
import com.nextcloud.talk.models.json.reminder.ReminderOverall
import com.nextcloud.talk.models.json.status.StatusOverall
import com.nextcloud.talk.models.json.status.predefined.PredefinedStatusOverall
import com.nextcloud.talk.models.json.tags.AssignConversationTagsRequestDto
Expand Down Expand Up @@ -625,4 +626,30 @@ interface NcApiCoroutines {

@GET
suspend fun getUserProfile(@Header("Authorization") authorization: String, @Url url: String): UserProfileOverall

@GET
suspend fun getReminder(@Header("Authorization") authorization: String, @Url url: String): ReminderOverall

@DELETE
suspend fun deleteReminder(@Header("Authorization") authorization: String, @Url url: String): GenericOverall

@FormUrlEncoded
@POST
suspend fun setReminder(
@Header("Authorization") authorization: String,
@Url url: String,
@Field("timestamp") timestamp: Int
): ReminderOverall

@Suppress("LongParameterList")
@FormUrlEncoded
@POST
suspend fun sendLocation(
@Header("Authorization") authorization: String,
@Url url: String,
@Field("objectType") objectType: String,
@Field("objectId") objectId: String,
@Field("metaData") metaData: String,
@Field("referenceId") referenceId: String
): GenericOverall
}
6 changes: 6 additions & 0 deletions app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -1540,6 +1540,12 @@ class ChatActivity :
}
}

lifecycleScope.launch {
chatViewModel.actionFailures.collect { message ->
Snackbar.make(binding.root, message, Snackbar.LENGTH_LONG).show()
}
}

lifecycleScope.launch {
chatViewModel.noMoreSearchResults.collect {
val inSearchMode = chatViewModel.chatMode.value == ChatViewModel.ChatMode.SEARCH_MODE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,32 +26,37 @@ interface ChatNetworkDataSource {
suspend fun getRoom(user: User, roomToken: String): ConversationModel
fun getCapabilities(user: User, roomToken: String): Observable<SpreedCapabilityDto>
fun joinRoom(user: User, roomToken: String, roomPassword: String): Observable<ConversationModel>
fun setReminder(
suspend fun setReminder(
user: User,
roomToken: String,
messageId: String,
timeStamp: Int,
chatApiVersion: Int
): Observable<ReminderDto>
): ReminderDto

fun getReminder(user: User, roomToken: String, messageId: String, apiVersion: Int): Observable<ReminderDto>
fun deleteReminder(user: User, roomToken: String, messageId: String, apiVersion: Int): Observable<GenericOverall>
fun shareToNotes(
suspend fun getReminder(user: User, roomToken: String, messageId: String, apiVersion: Int): ReminderDto
suspend fun deleteReminder(user: User, roomToken: String, messageId: String, apiVersion: Int): GenericOverall

@Suppress("LongParameterList")
suspend fun shareToNotes(
credentials: String,
url: String,
message: String,
displayName: String
): Observable<ChatOverallSingleMessage>
displayName: String,
referenceId: String
): ChatOverallSingleMessage

suspend fun checkForNoteToSelf(credentials: String, url: String): RoomOverall

fun shareLocationToNotes(
@Suppress("LongParameterList")
suspend fun shareLocationToNotes(
credentials: String,
url: String,
objectType: String,
objectId: String,
metadata: String
): Observable<GenericOverall>
metadata: String,
referenceId: String
): GenericOverall

suspend fun leaveRoom(credentials: String, url: String): GenericOverall
suspend fun sendChatMessage(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import com.nextcloud.talk.models.json.reminder.ReminderDto
import com.nextcloud.talk.models.json.upcomingEvents.UpcomingEventsOverall
import com.nextcloud.talk.models.json.userAbsence.UserAbsenceOverall
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.message.SendMessageUtils
import io.reactivex.Observable
import retrofit2.Response

Expand Down Expand Up @@ -59,81 +58,61 @@ class RetrofitChatNetwork(private val ncApi: NcApi, private val ncApiCoroutines:
).map { ConversationModel.mapToConversationModel(it.ocs?.data!!, user) }
}

override fun setReminder(
override suspend fun setReminder(
user: User,
roomToken: String,
messageId: String,
timeStamp: Int,
chatApiVersion: Int
): Observable<ReminderDto> {
val credentials: String = ApiUtils.getCredentials(user.username, user.token)!!
return ncApi.setReminder(
credentials,
): ReminderDto =
ncApiCoroutines.setReminder(
ApiUtils.getCredentials(user.username, user.token)!!,
ApiUtils.getUrlForReminder(user, roomToken, messageId, chatApiVersion),
timeStamp
).map {
it.ocs!!.data
}
}
).ocs!!.data!!

override fun getReminder(
override suspend fun getReminder(
user: User,
roomToken: String,
messageId: String,
chatApiVersion: Int
): Observable<ReminderDto> {
val credentials: String = ApiUtils.getCredentials(user.username, user.token)!!
return ncApi.getReminder(
credentials,
): ReminderDto =
ncApiCoroutines.getReminder(
ApiUtils.getCredentials(user.username, user.token)!!,
ApiUtils.getUrlForReminder(user, roomToken, messageId, chatApiVersion)
).map {
it.ocs!!.data
}
}
).ocs!!.data!!

override fun deleteReminder(
override suspend fun deleteReminder(
user: User,
roomToken: String,
messageId: String,
chatApiVersion: Int
): Observable<GenericOverall> {
val credentials: String = ApiUtils.getCredentials(user.username, user.token)!!
return ncApi.deleteReminder(
credentials,
): GenericOverall =
ncApiCoroutines.deleteReminder(
ApiUtils.getCredentials(user.username, user.token)!!,
ApiUtils.getUrlForReminder(user, roomToken, messageId, chatApiVersion)
).map {
it
}
}
)

override fun shareToNotes(
override suspend fun shareToNotes(
credentials: String,
url: String,
message: String,
displayName: String
): Observable<ChatOverallSingleMessage> =
ncApi.sendChatMessage(
credentials,
url,
message,
displayName,
null,
false,
SendMessageUtils().generateReferenceId()
).map {
it
}
displayName: String,
referenceId: String
): ChatOverallSingleMessage =
ncApiCoroutines.sendChatMessage(credentials, url, message, displayName, 0, false, referenceId, null)

override suspend fun checkForNoteToSelf(credentials: String, url: String): RoomOverall =
ncApiCoroutines.getNoteToSelfRoom(credentials, url)

override fun shareLocationToNotes(
override suspend fun shareLocationToNotes(
credentials: String,
url: String,
objectType: String,
objectId: String,
metadata: String
): Observable<GenericOverall> = ncApi.sendLocation(credentials, url, objectType, objectId, metadata).map { it }
metadata: String,
referenceId: String
): GenericOverall = ncApiCoroutines.sendLocation(credentials, url, objectType, objectId, metadata, referenceId)

override suspend fun leaveRoom(credentials: String, url: String): GenericOverall =
ncApiCoroutines.leaveRoom(credentials, url)
Expand Down
Loading