From 7832f72d12571b58074e3810812d9ab9caf6ea76 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Thu, 4 Apr 2024 17:52:04 +0200 Subject: [PATCH 1/6] share conversation link to other apps Signed-off-by: sowjanyakch --- .../dialog/ConversationsListBottomDialog.kt | 43 ++++++++++++++++++- .../com/nextcloud/talk/utils/ShareUtils.kt | 3 +- .../layout/dialog_conversation_operations.xml | 30 +++++++++++++ app/src/main/res/values/strings.xml | 5 ++- 4 files changed, 77 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt index 758710ce0..73d6d052d 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt @@ -6,6 +6,8 @@ */ package com.nextcloud.talk.ui.dialog +import android.content.Intent +import android.net.Uri import android.os.Bundle import android.text.TextUtils import android.view.View @@ -30,10 +32,10 @@ import com.nextcloud.talk.models.json.generic.GenericOverall import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.utils.ApiUtils -import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID -import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN import com.nextcloud.talk.utils.CapabilitiesUtil import com.nextcloud.talk.utils.SpreedFeatures +import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID +import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -123,6 +125,9 @@ class ConversationsListBottomDialog( binding.conversationOperationRename.visibility = setVisibleIf( conversation.isNameEditable(currentUser) ) + binding.conversationLinkShare.visibility = setVisibleIf( + conversation.name != context.getString(R.string.note_to_self) + ) binding.conversationOperationDelete.visibility = setVisibleIf( canModerate @@ -161,6 +166,11 @@ class ConversationsListBottomDialog( markConversationAsUnread() } + binding.conversationLinkShare.setOnClickListener { + shareConversationLink() + dismiss() + } + binding.conversationOperationRename.setOnClickListener { renameConversation() } @@ -174,6 +184,35 @@ class ConversationsListBottomDialog( } } + private fun shareConversationLink() { + val activeAccountUrl = currentUser.baseUrl + val roomToken = conversation.token + + val uriToShareConversation = Uri.parse(activeAccountUrl) + .buildUpon() + .appendPath("index.php") + .appendPath("call") + .appendPath(roomToken) + .build() + + val shareConversationLink = String.format( + context.getString( + R.string.share_link_to_conversation, + conversation.name, + uriToShareConversation.toString() + ) + ) + + val sendIntent: Intent = Intent().apply { + action = Intent.ACTION_SEND + putExtra(Intent.EXTRA_TEXT, shareConversationLink) + type = "text/plain" + } + + val shareIntent = Intent.createChooser(sendIntent, null) + context.startActivity(shareIntent) + } + private fun addConversationToFavorites() { val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V1)) ncApi.addConversationToFavorites( diff --git a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt index 689095f05..594b12eae 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt @@ -14,7 +14,8 @@ import com.nextcloud.talk.models.domain.ConversationModel object ShareUtils { fun getStringForIntent(context: Context, user: User, conversation: ConversationModel?): String { return String.format( - context.resources.getString(R.string.nc_share_text), + context.resources.getString(R.string.nc_share_link_text), + conversation?.name, user.baseUrl, conversation?.token ) diff --git a/app/src/main/res/layout/dialog_conversation_operations.xml b/app/src/main/res/layout/dialog_conversation_operations.xml index 8d23a7628..ca39b3191 100644 --- a/app/src/main/res/layout/dialog_conversation_operations.xml +++ b/app/src/main/res/layout/dialog_conversation_operations.xml @@ -165,6 +165,36 @@ android:textSize="@dimen/bottom_sheet_text_size" /> + + + + + + + Conversation name Create conversation Add emojis - Join the conversation at %1$s/index.php/call/%2$s %1$s invitation \nPassword: %1$s + Join the conversation %1$s at %2$s/index.php/call/%3$s Push-to-talk With microphone disabled, click&hold to use Push-to-talk @@ -435,6 +435,7 @@ How to translate with transifex: Resend invitations Invitations were sent out again. Invitations were not send due to an error. + Share link Send message @@ -785,4 +786,6 @@ How to translate with transifex: Edit Icon Failed to fetch pending invitations Edited by %1$s + Join conversation %1$s at %2$s + Note to self From b6ab8672809651bdc9861b284165c842c01be394 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Fri, 12 Apr 2024 12:07:11 +0200 Subject: [PATCH 2/6] Make conversation link available for copy and paste in the Conversation settings. Signed-off-by: sowjanyakch --- .../ConversationInfoActivity.kt | 16 ++++++--- .../conversationinfo/GuestAccessHelper.kt | 31 ----------------- .../dialog/ConversationsListBottomDialog.kt | 34 ++----------------- .../com/nextcloud/talk/utils/ShareUtils.kt | 33 ++++++++++++++++++ .../res/layout/activity_conversation_info.xml | 32 ++++++++++++++++- .../res/layout/item_guest_access_settings.xml | 28 --------------- app/src/main/res/values/strings.xml | 1 + 7 files changed, 79 insertions(+), 96 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt index 8c3e2da02..de1dcdae3 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt @@ -43,8 +43,8 @@ import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.bottomsheet.items.BasicListItemWithImage import com.nextcloud.talk.bottomsheet.items.listItemsWithImage import com.nextcloud.talk.contacts.ContactsActivity -import com.nextcloud.talk.conversationinfoedit.ConversationInfoEditActivity import com.nextcloud.talk.conversationinfo.viewmodel.ConversationInfoViewModel +import com.nextcloud.talk.conversationinfoedit.ConversationInfoEditActivity import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.databinding.ActivityConversationInfoBinding import com.nextcloud.talk.events.EventStatus @@ -69,12 +69,13 @@ import com.nextcloud.talk.models.json.participants.ParticipantsOverall import com.nextcloud.talk.repositories.conversations.ConversationsRepository import com.nextcloud.talk.shareditems.activities.SharedItemsActivity import com.nextcloud.talk.utils.ApiUtils -import com.nextcloud.talk.utils.SpreedFeatures +import com.nextcloud.talk.utils.CapabilitiesUtil import com.nextcloud.talk.utils.ConversationUtils import com.nextcloud.talk.utils.DateConstants import com.nextcloud.talk.utils.DateUtils +import com.nextcloud.talk.utils.ShareUtils +import com.nextcloud.talk.utils.SpreedFeatures import com.nextcloud.talk.utils.bundle.BundleKeys -import com.nextcloud.talk.utils.CapabilitiesUtil import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew import com.nextcloud.talk.utils.preferences.preferencestorage.DatabaseStorageModule import eu.davidea.flexibleadapter.FlexibleAdapter @@ -161,7 +162,6 @@ class ConversationInfoActivity : conversationToken = intent.getStringExtra(BundleKeys.KEY_ROOM_TOKEN)!! hasAvatarSpacing = intent.getBooleanExtra(BundleKeys.KEY_ROOM_ONE_TO_ONE, false) credentials = ApiUtils.getCredentials(conversationUser.username, conversationUser.token)!! - initObservers() } @@ -187,6 +187,14 @@ class ConversationInfoActivity : binding.clearConversationHistory.setOnClickListener { showClearHistoryDialog() } binding.addParticipantsAction.setOnClickListener { addParticipants() } + binding.shareConversationButton.setOnClickListener { + ShareUtils.shareConversationLink( + this, + conversationUser.baseUrl, + conversation?.token, + conversation?.name + ) + } viewModel.getRoom(conversationUser, conversationToken) themeTextViews() diff --git a/app/src/main/java/com/nextcloud/talk/conversationinfo/GuestAccessHelper.kt b/app/src/main/java/com/nextcloud/talk/conversationinfo/GuestAccessHelper.kt index 1a99e2c1f..9aae36e00 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationinfo/GuestAccessHelper.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationinfo/GuestAccessHelper.kt @@ -8,7 +8,6 @@ */ package com.nextcloud.talk.conversationinfo -import android.content.Intent import android.util.Log import android.view.LayoutInflater import android.view.View @@ -24,8 +23,6 @@ import com.nextcloud.talk.models.domain.ConversationType import com.nextcloud.talk.models.json.capabilities.SpreedCapability import com.nextcloud.talk.repositories.conversations.ConversationsRepository import com.nextcloud.talk.utils.ConversationUtils -import com.nextcloud.talk.utils.Mimetype -import com.nextcloud.talk.utils.ShareUtils import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -82,10 +79,6 @@ class GuestAccessHelper( } } - binding.guestAccessView.shareConversationButton.setOnClickListener { - shareUrl() - } - binding.guestAccessView.resendInvitationsButton.setOnClickListener { conversationsRepository.resendInvitations(conversation.token!!).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()).subscribe(ResendInvitationsObserver()) @@ -123,28 +116,6 @@ class GuestAccessHelper( ) } - private fun shareUrl() { - val sendIntent: Intent = Intent().apply { - action = Intent.ACTION_SEND - type = Mimetype.TEXT_PLAIN - putExtra( - Intent.EXTRA_SUBJECT, - String.format( - activity.resources.getString(R.string.nc_share_subject), - activity.resources.getString(R.string.nc_app_product_name) - ) - ) - - putExtra( - Intent.EXTRA_TEXT, - ShareUtils.getStringForIntent(activity, conversationUser, conversation) - ) - } - - val shareIntent = Intent.createChooser(sendIntent, null) - activity.startActivity(shareIntent) - } - inner class ResendInvitationsObserver : Observer { private lateinit var resendInvitationsResult: ConversationsRepository.ResendInvitationsResult @@ -200,7 +171,6 @@ class GuestAccessHelper( private fun showAllOptions() { binding.guestAccessView.guestAccessSettingsPasswordProtection.visibility = View.VISIBLE - binding.guestAccessView.shareConversationButton.visibility = View.VISIBLE if (conversationUser.capabilities?.spreedCapability?.features?.contains("sip-support") == true) { binding.guestAccessView.resendInvitationsButton.visibility = View.VISIBLE } @@ -208,7 +178,6 @@ class GuestAccessHelper( private fun hideAllOptions() { binding.guestAccessView.guestAccessSettingsPasswordProtection.visibility = View.GONE - binding.guestAccessView.shareConversationButton.visibility = View.GONE binding.guestAccessView.resendInvitationsButton.visibility = View.GONE } diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt index 73d6d052d..d754db362 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt @@ -6,8 +6,6 @@ */ package com.nextcloud.talk.ui.dialog -import android.content.Intent -import android.net.Uri import android.os.Bundle import android.text.TextUtils import android.view.View @@ -33,6 +31,7 @@ import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.CapabilitiesUtil +import com.nextcloud.talk.utils.ShareUtils import com.nextcloud.talk.utils.SpreedFeatures import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN @@ -167,7 +166,7 @@ class ConversationsListBottomDialog( } binding.conversationLinkShare.setOnClickListener { - shareConversationLink() + ShareUtils.shareConversationLink(activity, currentUser.baseUrl, conversation.token, conversation.name) dismiss() } @@ -184,35 +183,6 @@ class ConversationsListBottomDialog( } } - private fun shareConversationLink() { - val activeAccountUrl = currentUser.baseUrl - val roomToken = conversation.token - - val uriToShareConversation = Uri.parse(activeAccountUrl) - .buildUpon() - .appendPath("index.php") - .appendPath("call") - .appendPath(roomToken) - .build() - - val shareConversationLink = String.format( - context.getString( - R.string.share_link_to_conversation, - conversation.name, - uriToShareConversation.toString() - ) - ) - - val sendIntent: Intent = Intent().apply { - action = Intent.ACTION_SEND - putExtra(Intent.EXTRA_TEXT, shareConversationLink) - type = "text/plain" - } - - val shareIntent = Intent.createChooser(sendIntent, null) - context.startActivity(shareIntent) - } - private fun addConversationToFavorites() { val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V1)) ncApi.addConversationToFavorites( diff --git a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt index 594b12eae..0bf08153d 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt @@ -6,7 +6,10 @@ */ package com.nextcloud.talk.utils +import android.app.Activity import android.content.Context +import android.content.Intent +import android.net.Uri import com.nextcloud.talk.R import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.models.domain.ConversationModel @@ -20,4 +23,34 @@ object ShareUtils { conversation?.token ) } + + fun shareConversationLink(context: Activity, baseUrl: String?, roomToken: String?, conversationName: String?) { + if (baseUrl.isNullOrBlank() || roomToken.isNullOrBlank() || conversationName.isNullOrBlank()) { + return + } + + val uriToShareConversation = Uri.parse(baseUrl) + .buildUpon() + .appendPath("index.php") + .appendPath("call") + .appendPath(roomToken) + .build() + + val shareConversationLink = String.format( + context.getString( + R.string.share_link_to_conversation, + conversationName, + uriToShareConversation.toString() + ) + ) + + val sendIntent: Intent = Intent().apply { + action = Intent.ACTION_SEND + putExtra(Intent.EXTRA_TEXT, shareConversationLink) + type = "text/plain" + } + + val shareIntent = Intent.createChooser(sendIntent, context.getString(R.string.nc_share_link)) + context.startActivity(shareIntent) + } } diff --git a/app/src/main/res/layout/activity_conversation_info.xml b/app/src/main/res/layout/activity_conversation_info.xml index bd7da519e..878bc69f1 100644 --- a/app/src/main/res/layout/activity_conversation_info.xml +++ b/app/src/main/res/layout/activity_conversation_info.xml @@ -229,7 +229,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/standard_padding" - android:text="@string/message_expiration_title" + android:text="@string/nc_conversation_settings" android:textSize="@dimen/headline_text_size" android:textStyle="bold" /> @@ -261,6 +261,36 @@ android:text="@string/nc_expire_messages_explanation" android:textColor="@color/disabled_text" android:textSize="@dimen/supporting_text_text_size" /> + + + + + + + + + + - - - - - - - - Edited by %1$s Join conversation %1$s at %2$s Note to self + Conversation settings From 1c26c757f0b4e9ef54209a1f5510ff924338e4d8 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Fri, 12 Apr 2024 12:26:47 +0200 Subject: [PATCH 3/6] Refactor ShareUtils and remove ShareUtilsTest file Signed-off-by: sowjanyakch --- .../com/nextcloud/talk/utils/ShareUtils.kt | 11 --- app/src/main/res/values/strings.xml | 2 +- .../nextcloud/talk/utils/ShareUtilsTest.kt | 67 ------------------- 3 files changed, 1 insertion(+), 79 deletions(-) delete mode 100644 app/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.kt diff --git a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt index 0bf08153d..619fde434 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt @@ -7,22 +7,11 @@ package com.nextcloud.talk.utils import android.app.Activity -import android.content.Context import android.content.Intent import android.net.Uri import com.nextcloud.talk.R -import com.nextcloud.talk.data.user.model.User -import com.nextcloud.talk.models.domain.ConversationModel object ShareUtils { - fun getStringForIntent(context: Context, user: User, conversation: ConversationModel?): String { - return String.format( - context.resources.getString(R.string.nc_share_link_text), - conversation?.name, - user.baseUrl, - conversation?.token - ) - } fun shareConversationLink(context: Activity, baseUrl: String?, roomToken: String?, conversationName: String?) { if (baseUrl.isNullOrBlank() || roomToken.isNullOrBlank() || conversationName.isNullOrBlank()) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c800a1722..8f94031c5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -331,7 +331,7 @@ How to translate with transifex: Add emojis %1$s invitation \nPassword: %1$s - Join the conversation %1$s at %2$s/index.php/call/%3$s + Push-to-talk With microphone disabled, click&hold to use Push-to-talk diff --git a/app/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.kt b/app/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.kt deleted file mode 100644 index cc3ed9b7d..000000000 --- a/app/src/test/java/com/nextcloud/talk/utils/ShareUtilsTest.kt +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Nextcloud Talk - Android Client - * - * SPDX-FileCopyrightText: 2017-2019 Mario Danic - * SPDX-License-Identifier: GPL-3.0-or-later - */ -package com.nextcloud.talk.utils - -import android.content.Context -import android.content.res.Resources -import com.nextcloud.talk.R -import com.nextcloud.talk.data.user.model.User -import com.nextcloud.talk.models.domain.ConversationModel -import com.nextcloud.talk.users.UserManager -import io.reactivex.Maybe -import org.junit.Assert -import org.junit.Before -import org.junit.Test -import org.mockito.Mock -import org.mockito.Mockito -import org.mockito.MockitoAnnotations - -class ShareUtilsTest { - @Mock - private val context: Context? = null - - @Mock - private val resources: Resources? = null - - @Mock - private val userManager: UserManager? = null - - @Mock - private val user: User? = null - - private val baseUrl = "https://my.nextcloud.com" - private val token = "2aotbrjr" - - private lateinit var conversation: ConversationModel - - @Before - fun setUp() { - MockitoAnnotations.openMocks(this) - Mockito.`when`(userManager!!.currentUser).thenReturn(Maybe.just(user)) - Mockito.`when`(user!!.baseUrl).thenReturn(baseUrl) - Mockito.`when`(context!!.resources).thenReturn(resources) - Mockito.`when`(resources!!.getString(R.string.nc_share_text)) - .thenReturn("Join the conversation at %1\$s/index.php/call/%2\$s") - Mockito.`when`(resources.getString(R.string.nc_share_text_pass)).thenReturn("\nPassword: %1\$s") - - conversation = ConversationModel(token = token) - } - - @Test - fun stringForIntent_noPasswordGiven_correctStringWithoutPasswordReturned() { - val expectedResult = String.format( - "Join the conversation at %s/index.php/call/%s", - baseUrl, - token - ) - Assert.assertEquals( - "Intent string was not as expected", - expectedResult, - ShareUtils.getStringForIntent(context!!, userManager!!.currentUser.blockingGet(), conversation) - ) - } -} From 287ba3bbc94acdced51454e38445b41857e511d8 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Fri, 12 Apr 2024 17:11:42 +0200 Subject: [PATCH 4/6] Not sharing the conversation link of Note to self Signed-off-by: sowjanyakch --- .../talk/conversationinfo/ConversationInfoActivity.kt | 11 +++++++++++ .../main/res/layout/activity_conversation_info.xml | 1 + 2 files changed, 12 insertions(+) diff --git a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt index de1dcdae3..64771b088 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt @@ -211,6 +211,17 @@ class ConversationInfoActivity : is ConversationInfoViewModel.GetRoomSuccessState -> { conversation = state.conversationModel viewModel.getCapabilities(conversationUser, conversationToken, conversation!!) + if (conversation?.name != context.getString(R.string.note_to_self)) { + binding.shareConversationButton.visibility = VISIBLE + } + binding.shareConversationButton.setOnClickListener { + ShareUtils.shareConversationLink( + this, + conversationUser.baseUrl, + conversation?.token, + conversation?.name + ) + } } is ConversationInfoViewModel.GetRoomErrorState -> { diff --git a/app/src/main/res/layout/activity_conversation_info.xml b/app/src/main/res/layout/activity_conversation_info.xml index 878bc69f1..0d9fb8304 100644 --- a/app/src/main/res/layout/activity_conversation_info.xml +++ b/app/src/main/res/layout/activity_conversation_info.xml @@ -271,6 +271,7 @@ android:paddingEnd="@dimen/standard_margin" android:paddingBottom="@dimen/standard_half_margin" android:orientation="horizontal" + android:visibility = "gone" android:background="?android:attr/selectableItemBackground"> From 080937305a2538643ab0b342a3580907a3098812 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Mon, 15 Apr 2024 16:50:27 +0200 Subject: [PATCH 5/6] Make conversation settings visible Signed-off-by: sowjanyakch --- .../ConversationInfoActivity.kt | 18 ++----- .../res/layout/activity_conversation_info.xml | 50 +++++++++++-------- app/src/main/res/values/strings.xml | 4 +- 3 files changed, 33 insertions(+), 39 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt index 64771b088..0c9a0dd14 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt @@ -187,14 +187,6 @@ class ConversationInfoActivity : binding.clearConversationHistory.setOnClickListener { showClearHistoryDialog() } binding.addParticipantsAction.setOnClickListener { addParticipants() } - binding.shareConversationButton.setOnClickListener { - ShareUtils.shareConversationLink( - this, - conversationUser.baseUrl, - conversation?.token, - conversation?.name - ) - } viewModel.getRoom(conversationUser, conversationToken) themeTextViews() @@ -211,8 +203,8 @@ class ConversationInfoActivity : is ConversationInfoViewModel.GetRoomSuccessState -> { conversation = state.conversationModel viewModel.getCapabilities(conversationUser, conversationToken, conversation!!) - if (conversation?.name != context.getString(R.string.note_to_self)) { - binding.shareConversationButton.visibility = VISIBLE + if (conversation?.name == context.getString(R.string.note_to_self)) { + binding.shareConversationButton.visibility = GONE } binding.shareConversationButton.setOnClickListener { ShareUtils.shareConversationLink( @@ -881,11 +873,9 @@ class ConversationInfoActivity : val v: String = resources.getStringArray(R.array.message_expiring_values)[position] databaseStorageModule!!.saveString("conversation_settings_dropdown", v) } - - binding.conversationSettingsDropdown.visibility = VISIBLE - binding.conversationInfoExpireMessagesExplanation.visibility = VISIBLE + binding.messageExpirationSettings.visibility = VISIBLE } else { - binding.conversationSettings.visibility = GONE + binding.messageExpirationSettings.visibility = GONE } } diff --git a/app/src/main/res/layout/activity_conversation_info.xml b/app/src/main/res/layout/activity_conversation_info.xml index 0d9fb8304..8efae01e0 100644 --- a/app/src/main/res/layout/activity_conversation_info.xml +++ b/app/src/main/res/layout/activity_conversation_info.xml @@ -233,34 +233,41 @@ android:textSize="@dimen/headline_text_size" android:textStyle="bold" /> - + android:orientation="vertical"> - + android:layout_marginHorizontal="@dimen/standard_margin" + android:layout_marginTop="@dimen/standard_half_margin" + android:hint="@string/nc_expire_messages"> - + - + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8f94031c5..2b66ea95a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -329,8 +329,7 @@ How to translate with transifex: Conversation name Create conversation Add emojis - %1$s invitation - \nPassword: %1$s + Push-to-talk @@ -713,7 +712,6 @@ How to translate with transifex: Conversation description - Message expiration Expire chat messages Off 4 weeks From f628d357ea6091530abf87d421e6a12a9dbdce8b Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Wed, 17 Apr 2024 13:55:55 +0200 Subject: [PATCH 6/6] use conversationType to check if share button should be shown for conversation Signed-off-by: Marcel Hibbe --- .../talk/conversationinfo/ConversationInfoActivity.kt | 2 +- .../nextcloud/talk/models/json/conversations/Conversation.kt | 5 +++++ .../talk/ui/dialog/ConversationsListBottomDialog.kt | 2 +- app/src/main/res/values/strings.xml | 1 - 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt index 0c9a0dd14..64040be10 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt @@ -203,7 +203,7 @@ class ConversationInfoActivity : is ConversationInfoViewModel.GetRoomSuccessState -> { conversation = state.conversationModel viewModel.getCapabilities(conversationUser, conversationToken, conversation!!) - if (conversation?.name == context.getString(R.string.note_to_self)) { + if (ConversationUtils.isNoteToSelfConversation(conversation)) { binding.shareConversationButton.visibility = GONE } binding.shareConversationButton.setOnClickListener { diff --git a/app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.kt b/app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.kt index 56ca2c518..263e0aa09 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.kt +++ b/app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.kt @@ -214,6 +214,11 @@ data class Conversation( } } + @Deprecated("Use ConversationUtil") + fun isNoteToSelfConversation(): Boolean { + return type == ConversationType.NOTE_TO_SELF + } + enum class NotificationLevel { DEFAULT, ALWAYS, diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt index d754db362..ad0a0e97c 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ConversationsListBottomDialog.kt @@ -125,7 +125,7 @@ class ConversationsListBottomDialog( conversation.isNameEditable(currentUser) ) binding.conversationLinkShare.visibility = setVisibleIf( - conversation.name != context.getString(R.string.note_to_self) + !conversation.isNoteToSelfConversation() ) binding.conversationOperationDelete.visibility = setVisibleIf( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2b66ea95a..b9b33e95d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -785,6 +785,5 @@ How to translate with transifex: Failed to fetch pending invitations Edited by %1$s Join conversation %1$s at %2$s - Note to self Conversation settings