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