Skip to content

Commit b98ba99

Browse files
feat: Migrate ConversationInfo to Composable
AI-assistant: Copilot 1.7.1-243 (Claude Sonnet 4.6) Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
1 parent a12f72e commit b98ba99

15 files changed

+2434
-3199
lines changed

app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt

Lines changed: 402 additions & 1506 deletions
Large diffs are not rendered by default.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Nextcloud Talk - Android Client
3+
*
4+
* SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
5+
* SPDX-License-Identifier: GPL-3.0-or-later
6+
*/
7+
8+
package com.nextcloud.talk.conversationinfo
9+
10+
import androidx.annotation.StringRes
11+
12+
sealed class ConversationInfoUiEvent {
13+
data class ShowSnackbar(@StringRes val resId: Int) : ConversationInfoUiEvent()
14+
data class ShowSnackbarText(val text: String) : ConversationInfoUiEvent()
15+
data class NavigateToChat(val token: String) : ConversationInfoUiEvent()
16+
data object RefreshParticipants : ConversationInfoUiEvent()
17+
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*
2+
* Nextcloud Talk - Android Client
3+
*
4+
* SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
5+
* SPDX-License-Identifier: GPL-3.0-or-later
6+
*/
7+
8+
package com.nextcloud.talk.conversationinfo
9+
10+
import com.nextcloud.talk.conversationinfo.model.ParticipantModel
11+
import com.nextcloud.talk.models.domain.ConversationModel
12+
import com.nextcloud.talk.models.json.capabilities.SpreedCapability
13+
import com.nextcloud.talk.models.json.conversations.ConversationEnums
14+
15+
data class ConversationInfoUiState(
16+
val isLoading: Boolean = true,
17+
val spreedCapabilities: SpreedCapability? = null,
18+
val capabilitiesVersion: Int = 0,
19+
val profileDataAvailable: Boolean = false,
20+
21+
val conversation: ConversationModel? = null,
22+
val displayName: String = "",
23+
val description: String = "",
24+
val avatarUrl: String? = null,
25+
val conversationType: ConversationEnums.ConversationType? = null,
26+
val serverBaseUrl: String = "",
27+
val credentials: String = "",
28+
val conversationToken: String = "",
29+
30+
val pronouns: String = "",
31+
val professionCompany: String = "",
32+
val localTimeLocation: String = "",
33+
34+
val upcomingEventSummary: String? = null,
35+
val upcomingEventTime: String? = null,
36+
37+
val notificationLevel: String = "",
38+
val callNotificationsEnabled: Boolean = true,
39+
val showCallNotifications: Boolean = true,
40+
val importantConversation: Boolean = false,
41+
val showImportantConversation: Boolean = false,
42+
val sensitiveConversation: Boolean = false,
43+
val showSensitiveConversation: Boolean = false,
44+
45+
val lobbyEnabled: Boolean = false,
46+
val showWebinarSettings: Boolean = false,
47+
val lobbyTimerLabel: String = "",
48+
val showLobbyTimer: Boolean = false,
49+
50+
val guestsAllowed: Boolean = false,
51+
val showGuestAccess: Boolean = false,
52+
val hasPassword: Boolean = false,
53+
val showPasswordProtection: Boolean = false,
54+
val showResendInvitations: Boolean = false,
55+
56+
val showSharedItems: Boolean = true,
57+
val showThreadsButton: Boolean = false,
58+
59+
val showRecordingConsent: Boolean = false,
60+
val recordingConsentForConversation: Boolean = false,
61+
val showRecordingConsentSwitch: Boolean = false,
62+
val showRecordingConsentAll: Boolean = false,
63+
val recordingConsentEnabled: Boolean = true,
64+
65+
val messageExpirationLabel: String = "",
66+
val showMessageExpiration: Boolean = false,
67+
val showShareConversationButton: Boolean = true,
68+
69+
val isConversationLocked: Boolean = false,
70+
val showLockConversation: Boolean = false,
71+
72+
val participants: List<ParticipantModel> = emptyList(),
73+
val showParticipants: Boolean = false,
74+
val showAddParticipants: Boolean = false,
75+
val showStartGroupChat: Boolean = false,
76+
val showListBans: Boolean = false,
77+
78+
val showArchiveConversation: Boolean = false,
79+
val isArchived: Boolean = false,
80+
val canLeave: Boolean = true,
81+
val canDelete: Boolean = false,
82+
val showClearHistory: Boolean = false,
83+
84+
val showEditButton: Boolean = false
85+
)

app/src/main/java/com/nextcloud/talk/conversationinfo/GuestAccessHelper.kt

Lines changed: 0 additions & 238 deletions
This file was deleted.

0 commit comments

Comments
 (0)