mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-21 04:29:45 +01:00
Various bug fixes and improvements
Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
parent
9a00a8ac43
commit
fd81dd3d9b
@ -71,7 +71,7 @@ public class ConversationItem
|
|||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (o instanceof ConversationItem) {
|
if (o instanceof ConversationItem) {
|
||||||
ConversationItem inItem = (ConversationItem) o;
|
ConversationItem inItem = (ConversationItem) o;
|
||||||
return conversation.equals(inItem.getModel());
|
return conversation.getConversationId().equals(inItem.getModel().getConversationId());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -415,7 +415,7 @@ public class CallController extends BaseController {
|
|||||||
@Override
|
@Override
|
||||||
public void onNext(RoomsOverall roomsOverall) {
|
public void onNext(RoomsOverall roomsOverall) {
|
||||||
for (Conversation conversation : roomsOverall.getOcs().getData()) {
|
for (Conversation conversation : roomsOverall.getOcs().getData()) {
|
||||||
if (roomId.equals(conversation.getRoomId())) {
|
if (roomId.equals(conversation.getConversationId())) {
|
||||||
roomToken = conversation.getToken();
|
roomToken = conversation.getToken();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -274,7 +274,7 @@ public class CallNotificationController extends BaseController {
|
|||||||
@Override
|
@Override
|
||||||
public void onNext(RoomsOverall roomsOverall) {
|
public void onNext(RoomsOverall roomsOverall) {
|
||||||
for (Conversation conversation : roomsOverall.getOcs().getData()) {
|
for (Conversation conversation : roomsOverall.getOcs().getData()) {
|
||||||
if (roomId.equals(conversation.getRoomId())) {
|
if (roomId.equals(conversation.getConversationId())) {
|
||||||
currentConversation = conversation;
|
currentConversation = conversation;
|
||||||
runAllThings();
|
runAllThings();
|
||||||
break;
|
break;
|
||||||
|
@ -282,7 +282,7 @@ class ChatController(args: Bundle) : BaseController(), MessagesListAdapter
|
|||||||
|
|
||||||
override fun onNext(roomsOverall: RoomsOverall) {
|
override fun onNext(roomsOverall: RoomsOverall) {
|
||||||
for (conversation in roomsOverall.ocs.data) {
|
for (conversation in roomsOverall.ocs.data) {
|
||||||
if (roomId == conversation.roomId) {
|
if (roomId == conversation.conversationId) {
|
||||||
roomToken = conversation.token
|
roomToken = conversation.token
|
||||||
currentConversation = conversation
|
currentConversation = conversation
|
||||||
setTitle()
|
setTitle()
|
||||||
@ -519,7 +519,7 @@ class ChatController(args: Bundle) : BaseController(), MessagesListAdapter
|
|||||||
.nc_description_send_message_button
|
.nc_description_send_message_button
|
||||||
)
|
)
|
||||||
|
|
||||||
if (currentConversation != null && currentConversation?.roomId != null) {
|
if (currentConversation != null && currentConversation?.conversationId != null) {
|
||||||
loadAvatarForStatusBar()
|
loadAvatarForStatusBar()
|
||||||
checkLobbyState()
|
checkLobbyState()
|
||||||
setTitle()
|
setTitle()
|
||||||
@ -1472,7 +1472,7 @@ class ChatController(args: Bundle) : BaseController(), MessagesListAdapter
|
|||||||
val bundle = Bundle()
|
val bundle = Bundle()
|
||||||
bundle.putParcelable(BundleKeys.KEY_USER_ENTITY, conversationUser)
|
bundle.putParcelable(BundleKeys.KEY_USER_ENTITY, conversationUser)
|
||||||
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, roomOverall.ocs.data.token)
|
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, roomOverall.ocs.data.token)
|
||||||
bundle.putString(BundleKeys.KEY_ROOM_ID, roomOverall.ocs.data.roomId)
|
bundle.putString(BundleKeys.KEY_ROOM_ID, roomOverall.ocs.data.conversationId)
|
||||||
|
|
||||||
if (conversationUser != null) {
|
if (conversationUser != null) {
|
||||||
if (conversationUser.hasSpreedFeatureCapability("chat-v2")) {
|
if (conversationUser.hasSpreedFeatureCapability("chat-v2")) {
|
||||||
|
@ -308,7 +308,7 @@ public class ContactsController extends BaseController implements SearchView.OnQ
|
|||||||
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(),
|
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(),
|
||||||
roomOverall.getOcs().getData().getToken());
|
roomOverall.getOcs().getData().getToken());
|
||||||
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(),
|
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(),
|
||||||
roomOverall.getOcs().getData().getRoomId());
|
roomOverall.getOcs().getData().getConversationId());
|
||||||
|
|
||||||
if (currentUser.hasSpreedFeatureCapability("chat-v2")) {
|
if (currentUser.hasSpreedFeatureCapability("chat-v2")) {
|
||||||
ncApi.getRoom(credentials,
|
ncApi.getRoom(credentials,
|
||||||
@ -903,7 +903,7 @@ public class ContactsController extends BaseController implements SearchView.OnQ
|
|||||||
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(),
|
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(),
|
||||||
roomOverall.getOcs().getData().getToken());
|
roomOverall.getOcs().getData().getToken());
|
||||||
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(),
|
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(),
|
||||||
roomOverall.getOcs().getData().getRoomId());
|
roomOverall.getOcs().getData().getConversationId());
|
||||||
conversationIntent.putExtras(bundle);
|
conversationIntent.putExtras(bundle);
|
||||||
|
|
||||||
if (currentUser.hasSpreedFeatureCapability("chat-v2")) {
|
if (currentUser.hasSpreedFeatureCapability("chat-v2")) {
|
||||||
|
@ -652,7 +652,7 @@ public class OperationsMenuController extends BaseController {
|
|||||||
|
|
||||||
Intent conversationIntent = new Intent(getActivity(), MagicCallActivity.class);
|
Intent conversationIntent = new Intent(getActivity(), MagicCallActivity.class);
|
||||||
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), conversation.getToken());
|
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), conversation.getToken());
|
||||||
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(), conversation.getRoomId());
|
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(), conversation.getConversationId());
|
||||||
bundle.putString(BundleKeys.INSTANCE.getKEY_CONVERSATION_NAME(),
|
bundle.putString(BundleKeys.INSTANCE.getKEY_CONVERSATION_NAME(),
|
||||||
conversation.getDisplayName());
|
conversation.getDisplayName());
|
||||||
UserEntity conversationUser;
|
UserEntity conversationUser;
|
||||||
|
@ -43,7 +43,7 @@ import org.parceler.Parcel;
|
|||||||
@JsonObject
|
@JsonObject
|
||||||
public class Conversation {
|
public class Conversation {
|
||||||
@JsonField(name = "id")
|
@JsonField(name = "id")
|
||||||
public String roomId;
|
public String conversationId;
|
||||||
@JsonField(name = "token")
|
@JsonField(name = "token")
|
||||||
public String token;
|
public String token;
|
||||||
@JsonField(name = "name")
|
@JsonField(name = "name")
|
||||||
|
@ -52,7 +52,7 @@ public class Participant {
|
|||||||
@JsonField(name = "sessionId")
|
@JsonField(name = "sessionId")
|
||||||
public String sessionId;
|
public String sessionId;
|
||||||
|
|
||||||
@JsonField(name = "roomId")
|
@JsonField(name = "conversationId")
|
||||||
public long roomId;
|
public long roomId;
|
||||||
|
|
||||||
@ParcelPropertyConverter(ObjectParcelConverter.class)
|
@ParcelPropertyConverter(ObjectParcelConverter.class)
|
||||||
|
@ -33,6 +33,9 @@ class DeleteConversationUseCase constructor(
|
|||||||
|
|
||||||
override suspend fun run(params: Any?): GenericOverall {
|
override suspend fun run(params: Any?): GenericOverall {
|
||||||
val definitionParameters = params as DefinitionParameters
|
val definitionParameters = params as DefinitionParameters
|
||||||
return nextcloudTalkRepository.deleteConversationForUser(user, definitionParameters.get(0))
|
return nextcloudTalkRepository.deleteConversationForUser(
|
||||||
|
definitionParameters.get(0),
|
||||||
|
definitionParameters.get(1)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ import com.nextcloud.talk.models.json.conversations.Conversation
|
|||||||
import com.nextcloud.talk.newarch.data.source.remote.ApiErrorHandler
|
import com.nextcloud.talk.newarch.data.source.remote.ApiErrorHandler
|
||||||
import com.nextcloud.talk.newarch.domain.repository.NextcloudTalkRepository
|
import com.nextcloud.talk.newarch.domain.repository.NextcloudTalkRepository
|
||||||
import com.nextcloud.talk.newarch.domain.usecases.base.UseCase
|
import com.nextcloud.talk.newarch.domain.usecases.base.UseCase
|
||||||
|
import org.koin.core.parameter.DefinitionParameters
|
||||||
|
|
||||||
class GetConversationsUseCase constructor(
|
class GetConversationsUseCase constructor(
|
||||||
private val nextcloudTalkRepository: NextcloudTalkRepository,
|
private val nextcloudTalkRepository: NextcloudTalkRepository,
|
||||||
@ -31,6 +32,6 @@ class GetConversationsUseCase constructor(
|
|||||||
) : UseCase<List<Conversation>, Any?>(apiErrorHandler) {
|
) : UseCase<List<Conversation>, Any?>(apiErrorHandler) {
|
||||||
|
|
||||||
override suspend fun run(params: Any?): List<Conversation> {
|
override suspend fun run(params: Any?): List<Conversation> {
|
||||||
return nextcloudTalkRepository.getConversationsForUser(user)
|
return nextcloudTalkRepository.getConversationsForUser((params as DefinitionParameters).get(0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,9 @@ class LeaveConversationUseCase constructor(
|
|||||||
|
|
||||||
override suspend fun run(params: Any?): GenericOverall {
|
override suspend fun run(params: Any?): GenericOverall {
|
||||||
val definitionParameters = params as DefinitionParameters
|
val definitionParameters = params as DefinitionParameters
|
||||||
return nextcloudTalkRepository.leaveConversationForUser(user, definitionParameters.get(0))
|
return nextcloudTalkRepository.leaveConversationForUser(
|
||||||
|
definitionParameters.get(0),
|
||||||
|
definitionParameters.get(1)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,10 @@ class SetConversationFavoriteValueUseCase constructor(
|
|||||||
|
|
||||||
override suspend fun run(params: Any?): GenericOverall {
|
override suspend fun run(params: Any?): GenericOverall {
|
||||||
val definitionParameters = params as DefinitionParameters
|
val definitionParameters = params as DefinitionParameters
|
||||||
return nextcloudTalkRepository.setFavoriteValueForConversation(user, definitionParameters.get(0), definitionParameters.get(1))
|
return nextcloudTalkRepository.setFavoriteValueForConversation(
|
||||||
|
definitionParameters.get(0),
|
||||||
|
definitionParameters.get(1),
|
||||||
|
definitionParameters.get(2)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,8 +20,6 @@
|
|||||||
|
|
||||||
package com.nextcloud.talk.newarch.domain.usecases.base
|
package com.nextcloud.talk.newarch.domain.usecases.base
|
||||||
|
|
||||||
import com.nextcloud.talk.models.database.UserEntity
|
|
||||||
import com.nextcloud.talk.models.json.generic.GenericOverall
|
|
||||||
import com.nextcloud.talk.newarch.data.source.remote.ApiErrorHandler
|
import com.nextcloud.talk.newarch.data.source.remote.ApiErrorHandler
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.async
|
import kotlinx.coroutines.async
|
||||||
@ -30,8 +28,6 @@ import kotlinx.coroutines.launch
|
|||||||
abstract class UseCase<Type, in Params>(private val apiErrorHandler: ApiErrorHandler?) where Type : Any {
|
abstract class UseCase<Type, in Params>(private val apiErrorHandler: ApiErrorHandler?) where Type : Any {
|
||||||
|
|
||||||
abstract suspend fun run(params: Params? = null): Type
|
abstract suspend fun run(params: Params? = null): Type
|
||||||
lateinit var user: UserEntity
|
|
||||||
fun isUserInitialized() = ::user.isInitialized
|
|
||||||
|
|
||||||
fun invoke(
|
fun invoke(
|
||||||
scope: CoroutineScope,
|
scope: CoroutineScope,
|
||||||
|
@ -220,7 +220,7 @@ class ConversationsListView : BaseView(), OnQueryTextListener,
|
|||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
view?.stateWithMessageView?.errorStateImageView?.setImageResource(
|
view?.stateWithMessageView?.errorStateImageView?.setImageResource(
|
||||||
drawable.ic_cloud_off_white_24dp
|
drawable.ic_signal_wifi_off_white_24dp
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
view?.stateWithMessageView?.errorStateImageView?.setImageResource(
|
view?.stateWithMessageView?.errorStateImageView?.setImageResource(
|
||||||
@ -396,7 +396,7 @@ class ConversationsListView : BaseView(), OnQueryTextListener,
|
|||||||
val bundle = Bundle()
|
val bundle = Bundle()
|
||||||
bundle.putParcelable(BundleKeys.KEY_USER_ENTITY, viewModel.currentUser)
|
bundle.putParcelable(BundleKeys.KEY_USER_ENTITY, viewModel.currentUser)
|
||||||
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, conversation.token)
|
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, conversation.token)
|
||||||
bundle.putString(BundleKeys.KEY_ROOM_ID, conversation.roomId)
|
bundle.putString(BundleKeys.KEY_ROOM_ID, conversation.conversationId)
|
||||||
bundle.putParcelable(BundleKeys.KEY_ACTIVE_CONVERSATION, Parcels.wrap(conversation))
|
bundle.putParcelable(BundleKeys.KEY_ACTIVE_CONVERSATION, Parcels.wrap(conversation))
|
||||||
ConductorRemapping.remapChatController(
|
ConductorRemapping.remapChatController(
|
||||||
router, viewModel.currentUser.id, conversation.token,
|
router, viewModel.currentUser.id, conversation.token,
|
||||||
|
@ -49,6 +49,7 @@ import com.nextcloud.talk.newarch.domain.usecases.SetConversationFavoriteValueUs
|
|||||||
import com.nextcloud.talk.newarch.domain.usecases.base.UseCaseResponse
|
import com.nextcloud.talk.newarch.domain.usecases.base.UseCaseResponse
|
||||||
import com.nextcloud.talk.newarch.utils.ViewState
|
import com.nextcloud.talk.newarch.utils.ViewState
|
||||||
import com.nextcloud.talk.newarch.utils.ViewState.FAILED
|
import com.nextcloud.talk.newarch.utils.ViewState.FAILED
|
||||||
|
import com.nextcloud.talk.newarch.utils.ViewState.INITIAL_LOAD
|
||||||
import com.nextcloud.talk.newarch.utils.ViewState.LOADED
|
import com.nextcloud.talk.newarch.utils.ViewState.LOADED
|
||||||
import com.nextcloud.talk.newarch.utils.ViewState.LOADED_EMPTY
|
import com.nextcloud.talk.newarch.utils.ViewState.LOADED_EMPTY
|
||||||
import com.nextcloud.talk.newarch.utils.ViewState.LOADING
|
import com.nextcloud.talk.newarch.utils.ViewState.LOADING
|
||||||
@ -70,7 +71,7 @@ class ConversationsListViewModel constructor(
|
|||||||
|
|
||||||
private var conversations: MutableList<Conversation> = mutableListOf()
|
private var conversations: MutableList<Conversation> = mutableListOf()
|
||||||
val conversationsLiveListData = MutableLiveData<List<Conversation>>()
|
val conversationsLiveListData = MutableLiveData<List<Conversation>>()
|
||||||
val viewState = MutableLiveData<ViewState>(LOADING)
|
val viewState = MutableLiveData<ViewState>(INITIAL_LOAD)
|
||||||
var messageData: String? = null
|
var messageData: String? = null
|
||||||
val searchQuery = MutableLiveData<String>()
|
val searchQuery = MutableLiveData<String>()
|
||||||
var currentUser: UserEntity = userUtils.currentUser
|
var currentUser: UserEntity = userUtils.currentUser
|
||||||
@ -84,15 +85,13 @@ class ConversationsListViewModel constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun leaveConversation(conversation: Conversation) {
|
fun leaveConversation(conversation: Conversation) {
|
||||||
leaveConversationUseCase.user = currentUser
|
|
||||||
|
|
||||||
setConversationUpdateStatus(conversation, true)
|
setConversationUpdateStatus(conversation, true)
|
||||||
|
|
||||||
leaveConversationUseCase.invoke(viewModelScope, parametersOf(conversation),
|
leaveConversationUseCase.invoke(viewModelScope, parametersOf(currentUser, conversation),
|
||||||
object : UseCaseResponse<GenericOverall> {
|
object : UseCaseResponse<GenericOverall> {
|
||||||
override fun onSuccess(result: GenericOverall) {
|
override fun onSuccess(result: GenericOverall) {
|
||||||
// TODO: Use binary search to find the right room
|
// TODO: Use binary search to find the right room
|
||||||
conversations.find { it.roomId == conversation.roomId }
|
conversations.find { it.conversationId == conversation.conversationId }
|
||||||
?.let {
|
?.let {
|
||||||
conversations.remove(it)
|
conversations.remove(it)
|
||||||
conversationsLiveListData.value = conversations
|
conversationsLiveListData.value = conversations
|
||||||
@ -109,15 +108,13 @@ class ConversationsListViewModel constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun deleteConversation(conversation: Conversation) {
|
fun deleteConversation(conversation: Conversation) {
|
||||||
deleteConversationUseCase.user = currentUser
|
|
||||||
|
|
||||||
setConversationUpdateStatus(conversation, true)
|
setConversationUpdateStatus(conversation, true)
|
||||||
|
|
||||||
deleteConversationUseCase.invoke(viewModelScope, parametersOf(conversation),
|
deleteConversationUseCase.invoke(viewModelScope, parametersOf(currentUser, conversation),
|
||||||
object : UseCaseResponse<GenericOverall> {
|
object : UseCaseResponse<GenericOverall> {
|
||||||
override fun onSuccess(result: GenericOverall) {
|
override fun onSuccess(result: GenericOverall) {
|
||||||
// TODO: Use binary search to find the right room
|
// TODO: Use binary search to find the right room
|
||||||
conversations.find { it.roomId == conversation.roomId }
|
conversations.find { it.conversationId == conversation.conversationId }
|
||||||
?.let {
|
?.let {
|
||||||
conversations.remove(it)
|
conversations.remove(it)
|
||||||
conversationsLiveListData.value = conversations
|
conversationsLiveListData.value = conversations
|
||||||
@ -138,15 +135,17 @@ class ConversationsListViewModel constructor(
|
|||||||
conversation: Conversation,
|
conversation: Conversation,
|
||||||
favorite: Boolean
|
favorite: Boolean
|
||||||
) {
|
) {
|
||||||
setConversationFavoriteValueUseCase.user = currentUser
|
|
||||||
|
|
||||||
setConversationUpdateStatus(conversation, true)
|
setConversationUpdateStatus(conversation, true)
|
||||||
|
|
||||||
setConversationFavoriteValueUseCase.invoke(viewModelScope, parametersOf(conversation, favorite),
|
setConversationFavoriteValueUseCase.invoke(viewModelScope, parametersOf(
|
||||||
|
currentUser,
|
||||||
|
conversation,
|
||||||
|
favorite
|
||||||
|
),
|
||||||
object : UseCaseResponse<GenericOverall> {
|
object : UseCaseResponse<GenericOverall> {
|
||||||
override fun onSuccess(result: GenericOverall) {
|
override fun onSuccess(result: GenericOverall) {
|
||||||
// TODO: Use binary search to find the right room
|
// TODO: Use binary search to find the right room
|
||||||
conversations.find { it.roomId == conversation.roomId }
|
conversations.find { it.conversationId == conversation.conversationId }
|
||||||
?.apply {
|
?.apply {
|
||||||
updating = false
|
updating = false
|
||||||
isFavorite = favorite
|
isFavorite = favorite
|
||||||
@ -161,17 +160,20 @@ class ConversationsListViewModel constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun loadConversations() {
|
fun loadConversations() {
|
||||||
currentUser = userUtils.currentUser
|
val userChanged = !currentUser.equals(userUtils.currentUser)
|
||||||
|
|
||||||
|
if (userChanged) {
|
||||||
|
currentUser = userUtils.currentUser
|
||||||
|
}
|
||||||
|
|
||||||
if ((FAILED).equals(viewState.value) || (LOADED_EMPTY).equals(viewState.value) ||
|
if ((FAILED).equals(viewState.value) || (LOADED_EMPTY).equals(viewState.value) ||
|
||||||
!getConversationsUseCase.isUserInitialized() || getConversationsUseCase.user != currentUser
|
(INITIAL_LOAD).equals(viewState.value) || !currentUser.equals(userUtils.currentUser) || userChanged
|
||||||
) {
|
) {
|
||||||
getConversationsUseCase.user = currentUser
|
|
||||||
viewState.value = LOADING
|
viewState.value = LOADING
|
||||||
}
|
}
|
||||||
|
|
||||||
getConversationsUseCase.invoke(
|
getConversationsUseCase.invoke(
|
||||||
viewModelScope, null, object : UseCaseResponse<List<Conversation>> {
|
viewModelScope, parametersOf(currentUser), object : UseCaseResponse<List<Conversation>> {
|
||||||
override fun onSuccess(result: List<Conversation>) {
|
override fun onSuccess(result: List<Conversation>) {
|
||||||
val newConversations = result.toMutableList()
|
val newConversations = result.toMutableList()
|
||||||
|
|
||||||
@ -232,7 +234,7 @@ class ConversationsListViewModel constructor(
|
|||||||
putExtra(
|
putExtra(
|
||||||
Intent.EXTRA_SUBJECT,
|
Intent.EXTRA_SUBJECT,
|
||||||
String.format(
|
String.format(
|
||||||
context.getString(R.string.nc_share_subject),
|
context.getString(string.nc_share_subject),
|
||||||
context.getString(R.string.nc_app_name)
|
context.getString(R.string.nc_app_name)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -248,9 +250,8 @@ class ConversationsListViewModel constructor(
|
|||||||
type = "text/plain"
|
type = "text/plain"
|
||||||
}
|
}
|
||||||
|
|
||||||
val intent = Intent.createChooser(sendIntent, context.getString(string.nc_share_link))
|
|
||||||
// TODO filter our own app once we're there
|
// TODO filter our own app once we're there
|
||||||
return intent
|
return Intent.createChooser(sendIntent, context.getString(string.nc_share_link))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getConversationMenuItemsForConversation(conversation: Conversation): MutableList<BasicListItemWithImage> {
|
fun getConversationMenuItemsForConversation(conversation: Conversation): MutableList<BasicListItemWithImage> {
|
||||||
@ -307,7 +308,7 @@ class ConversationsListViewModel constructor(
|
|||||||
conversation: Conversation,
|
conversation: Conversation,
|
||||||
value: Boolean
|
value: Boolean
|
||||||
) {
|
) {
|
||||||
conversations.find { it.roomId == conversation.roomId }
|
conversations.find { it.conversationId == conversation.conversationId }
|
||||||
?.apply {
|
?.apply {
|
||||||
updating = value
|
updating = value
|
||||||
conversationsLiveListData.value = conversations
|
conversationsLiveListData.value = conversations
|
||||||
|
@ -21,8 +21,9 @@
|
|||||||
package com.nextcloud.talk.newarch.utils
|
package com.nextcloud.talk.newarch.utils
|
||||||
|
|
||||||
enum class ViewState {
|
enum class ViewState {
|
||||||
|
INITIAL_LOAD,
|
||||||
LOADING,
|
LOADING,
|
||||||
LOADED_EMPTY,
|
LOADED_EMPTY,
|
||||||
LOADED,
|
LOADED,
|
||||||
FAILED
|
FAILED
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user