From 6e7022ab707a595d12bae3fca7507dd27c149416 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 29 Jun 2021 11:19:51 -0300 Subject: [PATCH] Fix custom notifications toggle and enable copy phone number on long press. --- .../preferences/BioTextPreference.kt | 24 +++++++++++++++++-- ...SoundsAndNotificationsSettingsViewModel.kt | 4 +++- app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/BioTextPreference.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/BioTextPreference.kt index a2e9d506f..000fb1340 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/BioTextPreference.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/BioTextPreference.kt @@ -1,14 +1,17 @@ package org.thoughtcrime.securesms.components.settings.conversation.preferences +import android.content.ClipData import android.content.Context import android.view.View import android.widget.TextView +import android.widget.Toast import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.settings.PreferenceModel import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.MappingAdapter import org.thoughtcrime.securesms.util.MappingViewHolder +import org.thoughtcrime.securesms.util.ServiceUtil /** * Renders name, description, about, etc. for a given group or recipient. @@ -70,7 +73,7 @@ object BioTextPreference { private val headline: TextView = itemView.findViewById(R.id.bio_preference_headline) private val subhead1: TextView = itemView.findViewById(R.id.bio_preference_subhead_1) - private val subhead2: TextView = itemView.findViewById(R.id.bio_preference_subhead_2) + protected val subhead2: TextView = itemView.findViewById(R.id.bio_preference_subhead_2) override fun bind(model: T) { headline.text = model.getHeadlineText(context) @@ -87,6 +90,23 @@ object BioTextPreference { } } - private class RecipientViewHolder(itemView: View) : BioTextViewHolder(itemView) + private class RecipientViewHolder(itemView: View) : BioTextViewHolder(itemView) { + override fun bind(model: RecipientModel) { + super.bind(model) + + val phoneNumber = model.getSubhead2Text() + if (!phoneNumber.isNullOrEmpty()) { + subhead2.setOnLongClickListener { + val clipboardManager = ServiceUtil.getClipboardManager(context) + clipboardManager.setPrimaryClip(ClipData.newPlainText(context.getString(R.string.ConversationSettingsFragment__phone_number), subhead2.text.toString())) + Toast.makeText(context, R.string.ConversationSettingsFragment__copied_phone_number_to_clipboard, Toast.LENGTH_SHORT).show() + true + } + } else { + subhead2.setOnLongClickListener(null) + } + } + } + private class GroupViewHolder(itemView: View) : BioTextViewHolder(itemView) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/sounds/SoundsAndNotificationsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/sounds/SoundsAndNotificationsSettingsViewModel.kt index f8806d116..285f387b4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/sounds/SoundsAndNotificationsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/sounds/SoundsAndNotificationsSettingsViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import org.thoughtcrime.securesms.database.RecipientDatabase +import org.thoughtcrime.securesms.notifications.NotificationChannels import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.livedata.Store @@ -23,7 +24,8 @@ class SoundsAndNotificationsSettingsViewModel( recipientId = recipientId, muteUntil = recipient.muteUntil, mentionSetting = recipient.mentionSetting, - hasMentionsSupport = recipient.isPushV2Group + hasMentionsSupport = recipient.isPushV2Group, + hasCustomNotificationSettings = recipient.notificationChannel != null || !NotificationChannels.supported() ) } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1bc2f86c3..f0a23f3ea 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3570,6 +3570,8 @@ Unmute Conversation muted until %1$s Conversation muted forever + Copied phone number to clipboard. + Phone number Add members