From 312164e364a4aba7a403dc989d417c750b24663b Mon Sep 17 00:00:00 2001 From: charles Date: Thu, 15 Dec 2022 13:19:07 +1100 Subject: [PATCH] Revert overflow menu changes --- .../conversation/ConversationActionBarView.kt | 22 ++++++- .../conversation/v2/ConversationActivityV2.kt | 12 +--- .../v2/menus/ConversationMenuHelper.kt | 17 ++--- .../layout/view_conversation_action_bar.xml | 65 +++++++++++-------- app/src/main/res/menu/menu_conversation.xml | 31 +++------ 5 files changed, 76 insertions(+), 71 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActionBarView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActionBarView.kt index 4bd0659112..9cfb7a04d1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActionBarView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActionBarView.kt @@ -5,6 +5,7 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.view.ViewGroup import android.widget.LinearLayout +import androidx.annotation.DimenRes import androidx.core.view.isVisible import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter @@ -17,11 +18,14 @@ import network.loki.messenger.databinding.ViewConversationSettingBinding import org.session.libsession.messaging.open_groups.OpenGroup import org.session.libsession.utilities.ExpirationUtil import org.session.libsession.utilities.recipients.Recipient +import org.thoughtcrime.securesms.conversation.v2.utilities.MentionManagerUtilities import org.thoughtcrime.securesms.database.GroupDatabase import org.thoughtcrime.securesms.database.LokiAPIDatabase +import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.util.DateUtils import java.util.Locale import javax.inject.Inject +import kotlin.math.roundToInt @AndroidEntryPoint class ConversationActionBarView : LinearLayout { @@ -50,12 +54,28 @@ class ConversationActionBarView : LinearLayout { mediator.attach() } - fun bind(delegate: ConversationActionBarDelegate, recipient: Recipient, openGroup: OpenGroup? = null) { + fun bind( + delegate: ConversationActionBarDelegate, + threadId: Long, + recipient: Recipient, + openGroup: OpenGroup? = null, + glide: GlideRequests + ) { this.delegate = delegate + @DimenRes val sizeID: Int = if (recipient.isClosedGroupRecipient) { + R.dimen.medium_profile_picture_size + } else { + R.dimen.small_profile_picture_size + } + val size = resources.getDimension(sizeID).roundToInt() + binding.profilePictureView.root.layoutParams = LayoutParams(size, size) + binding.profilePictureView.root.glide = glide + MentionManagerUtilities.populateUserPublicKeyCacheIfNeeded(threadId, context) update(recipient, openGroup) } fun update(recipient: Recipient, openGroup: OpenGroup? = null) { + binding.profilePictureView.root.update(recipient) binding.conversationTitleView.text = when { recipient.isLocalNumber -> context.getString(R.string.note_to_self) else -> recipient.toShortString() diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index aa4eb00be4..4813d6bd6f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -85,7 +85,6 @@ import org.thoughtcrime.securesms.ApplicationContext import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity import org.thoughtcrime.securesms.attachments.ScreenshotObserver import org.thoughtcrime.securesms.audio.AudioRecorder -import org.thoughtcrime.securesms.components.ProfilePictureView import org.thoughtcrime.securesms.contacts.SelectContactsActivity.Companion.selectedContactsKey import org.thoughtcrime.securesms.contactshare.SimpleTextWatcher import org.thoughtcrime.securesms.conversation.ConversationActionBarDelegate @@ -108,7 +107,6 @@ import org.thoughtcrime.securesms.conversation.v2.search.SearchBottomBar import org.thoughtcrime.securesms.conversation.v2.search.SearchViewModel import org.thoughtcrime.securesms.conversation.v2.utilities.AttachmentManager import org.thoughtcrime.securesms.conversation.v2.utilities.BaseDialog -import org.thoughtcrime.securesms.conversation.v2.utilities.MentionManagerUtilities import org.thoughtcrime.securesms.conversation.v2.utilities.MentionUtilities import org.thoughtcrime.securesms.conversation.v2.utilities.ResendMessageUtilities import org.thoughtcrime.securesms.crypto.IdentityKeyUtil @@ -176,7 +174,6 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe ConversationMenuHelper.ConversationMenuListener { private var binding: ActivityConversationV2Binding? = null - private var overflowMenuItem: MenuItem? = null @Inject lateinit var textSecurePreferences: TextSecurePreferences @Inject lateinit var threadDb: ThreadDatabase @@ -458,7 +455,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe actionBar.title = "" actionBar.setDisplayHomeAsUpEnabled(true) actionBar.setHomeButtonEnabled(true) - binding!!.toolbarContent.bind(this, recipient, viewModel.openGroup) + binding!!.toolbarContent.bind(this, viewModel.threadId, recipient, viewModel.openGroup, glide) maybeUpdateToolbar(recipient) } @@ -626,9 +623,8 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe menuInflater, recipient, this - ) { onOptionsItemSelected(it) } + ) } - overflowMenuItem = menu.findItem(R.id.menu_overflow) viewModel.recipient?.let { maybeUpdateToolbar(it) } super.onPrepareOptionsMenu(menu) return true @@ -658,10 +654,6 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe private fun maybeUpdateToolbar(recipient: Recipient) { binding?.toolbarContent?.update(recipient, viewModel.openGroup) - val profilePictureView = overflowMenuItem?.actionView?.findViewById(R.id.profilePictureView) - profilePictureView?.glide = glide - MentionManagerUtilities.populateUserPublicKeyCacheIfNeeded(viewModel.threadId, this) - profilePictureView?.update(recipient) } private fun showOrHideInputIfNeeded() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt index 9efc71f9d1..da7f150923 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/menus/ConversationMenuHelper.kt @@ -43,25 +43,16 @@ import java.io.IOException object ConversationMenuHelper { fun onPrepareOptionsMenu( - mainMenu: Menu, + menu: Menu, inflater: MenuInflater, thread: Recipient, - context: Context, - onOptionsItemSelected: (MenuItem) -> Unit + context: Context ) { // Prepare - mainMenu.clear() + menu.clear() val isOpenGroup = thread.isOpenGroupRecipient // Base menu (options that should always be present) - inflater.inflate(R.menu.menu_conversation, mainMenu) - val item = mainMenu.findItem(R.id.menu_overflow) - if (thread.isGroupRecipient) { - item.setIcon(R.drawable.ic_outline_settings_24) - } else { - /*TODO: item.setActionView(R.layout.view_profile_overflow) - item.actionView.setOnClickListener { onOptionsItemSelected(item) }*/ - } - val menu = item.subMenu + inflater.inflate(R.menu.menu_conversation, menu) // Expiring messages if (thread.expireMessages == 0 && !isOpenGroup && (thread.hasApprovedMe() || thread.isClosedGroupRecipient || thread.isLocalNumber) diff --git a/app/src/main/res/layout/view_conversation_action_bar.xml b/app/src/main/res/layout/view_conversation_action_bar.xml index 2cebcd3843..2701b82571 100644 --- a/app/src/main/res/layout/view_conversation_action_bar.xml +++ b/app/src/main/res/layout/view_conversation_action_bar.xml @@ -4,34 +4,47 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" - android:gravity="center_horizontal" - android:orientation="vertical"> + android:orientation="horizontal" + android:gravity="center_vertical"> - + - + android:layout_height="match_parent" + android:gravity="center_horizontal" + android:orientation="vertical"> - + - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_conversation.xml b/app/src/main/res/menu/menu_conversation.xml index e4be60f324..3be7af2964 100644 --- a/app/src/main/res/menu/menu_conversation.xml +++ b/app/src/main/res/menu/menu_conversation.xml @@ -4,28 +4,17 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> + android:title="@string/conversation__menu_view_all_media" + android:id="@+id/menu_view_all_media" /> - + - - - - - - - - - +