diff --git a/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt b/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt index 6af32ef6e464c2d589bf4896594c2a15913a49dc..8b02dd37656cbfc3eb3266628057ffbde9285343 100644 --- a/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt +++ b/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt @@ -66,13 +66,7 @@ class AccountEditionFragment : BaseSupportFragment<AccountEditionPresenter, Acco override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - - //presenter.init(requireArguments().getString(ACCOUNT_ID_KEY)!!) initViewPager(requireArguments().getString(ACCOUNT_ID_KEY)!!) - - mBinding?.fragmentContainer?.viewTreeObserver?.addOnScrollChangedListener { - setupElevation() - } } override fun initViewPager(accountId: String) { @@ -127,17 +121,6 @@ class AccountEditionFragment : BaseSupportFragment<AccountEditionPresenter, Acco } } - private fun setupElevation() { - val binding = mBinding ?: return - val ll = binding.pager.getChildAt(binding.pager.currentItem) as? LinearLayout ?: return - val rv = (ll.getChildAt(0) as FrameLayout).getChildAt(0) as RecyclerView - if (rv.canScrollVertically(SCROLL_DIRECTION_UP)) { - binding.slidingTabs.elevation = binding.slidingTabs.resources.getDimension(R.dimen.toolbar_elevation) - } else { - binding.slidingTabs.elevation = 0f - } - } - companion object { val TAG = AccountEditionFragment::class.simpleName!! val ACCOUNT_ID_KEY = AccountEditionFragment::class.qualifiedName + "accountId" diff --git a/jami-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.kt b/jami-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.kt index 7c09656b75f112937b6b05849b1256c5571c4f07..54a58d33ab46a89902711b4d7e9f82202496ad0e 100644 --- a/jami-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.kt +++ b/jami-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.kt @@ -32,7 +32,6 @@ import android.text.format.DateUtils import android.text.format.Formatter import android.util.TypedValue import android.view.* -import android.view.ContextMenu.ContextMenuInfo import android.view.TextureView.SurfaceTextureListener import android.view.ViewGroup.MarginLayoutParams import android.widget.FrameLayout @@ -89,7 +88,6 @@ import java.util.* import java.util.concurrent.TimeUnit import kotlin.math.max - class ConversationAdapter( private val conversationFragment: ConversationFragment, private val presenter: ConversationPresenter, @@ -99,11 +97,18 @@ class ConversationAdapter( private val res = conversationFragment.resources private val mPictureMaxSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200f, res.displayMetrics).toInt() - private var mCurrentLongItem: RecyclerViewContextMenuInfo? = null + @ColorInt - private var convColor = 0 + var convColor = 0 + set(value) { + field = value + convColorTint = MaterialColors.compositeARGBWithAlpha(value, (MaterialColors.ALPHA_LOW * 255).toInt()) + notifyDataSetChanged() + } + @ColorInt private var convColorTint = 0 + private val formatter = Formatter(StringBuilder(64), Locale.getDefault()) private val callPadding = Padding( @@ -113,7 +118,6 @@ class ConversationAdapter( res.getDimensionPixelSize(R.dimen.padding_call_vertical) ) - private var lastDeliveredPosition = -1 private val timestampUpdateTimer: Observable<Long> = Observable.interval(10, TimeUnit.SECONDS, DeviceUtils.uiScheduler).startWithItem(0L) private var lastMsgPos = -1 @@ -194,13 +198,10 @@ class ConversationAdapter( } fun update(editedInteraction: Interaction) { - if (!editedInteraction.isIncoming && editedInteraction.status == InteractionStatus.SUCCESS) - notifyItemChanged(lastDeliveredPosition) - - mInteractions.indexOfLast { it.messageId == editedInteraction.messageId }.let { - if (it == -1) return - mInteractions[it] = editedInteraction - notifyItemChanged(it) + mInteractions.indexOfLast { it.messageId == editedInteraction.messageId }.let { position -> + if (position == -1) return + mInteractions[position] = editedInteraction + notifyItemChanged(position) } } @@ -264,27 +265,31 @@ class ConversationAdapter( } override fun getItemViewType(position: Int): Int { - // This function will be called for each item in the list, to know which layout to use. // Composing indicator if (isComposing && position == mInteractions.size) return MessageType.COMPOSING_INDICATION.ordinal - val interaction = mInteractions[position] // Get the interaction + val interaction = mInteractions[position] return when (interaction.type) { Interaction.InteractionType.CONTACT -> MessageType.CONTACT_EVENT.ordinal - Interaction.InteractionType.CALL -> + + Interaction.InteractionType.CALL -> { if ((interaction as Call).isGroupCall) { MessageType.ONGOING_GROUP_CALL.ordinal } else if (interaction.isIncoming) { MessageType.INCOMING_CALL_INFORMATION.ordinal } else MessageType.OUTGOING_CALL_INFORMATION.ordinal - Interaction.InteractionType.TEXT -> + } + + Interaction.InteractionType.TEXT -> { if (interaction.isIncoming) { MessageType.INCOMING_TEXT_MESSAGE.ordinal } else { MessageType.OUTGOING_TEXT_MESSAGE.ordinal } + } + Interaction.InteractionType.DATA_TRANSFER -> { val file = interaction as DataTransfer val out = if (interaction.isIncoming) 0 else 4 @@ -297,6 +302,7 @@ class ConversationAdapter( } out } + Interaction.InteractionType.INVALID -> MessageType.INVALID.ordinal } } @@ -634,15 +640,6 @@ class ConversationAdapter( holder.compositeDisposable.clear() } - fun setPrimaryColor(@ColorInt color: Int) { - convColor = color - convColorTint = - MaterialColors.compositeARGBWithAlpha(color, (MaterialColors.ALPHA_LOW * 255).toInt()) - notifyDataSetChanged() - } - - fun getPrimaryColor() = convColor - fun setComposingStatus(composingStatus: ComposingStatus) { val composing = composingStatus == ComposingStatus.Active if (isComposing != composing) { @@ -653,16 +650,11 @@ class ConversationAdapter( } } - private class RecyclerViewContextMenuInfo( - val position: Int, - val id: Long - ) : ContextMenuInfo - private fun addToClipboard(text: String?) { if (text.isNullOrEmpty()) return val clipboard = conversationFragment.requireActivity() - .getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - clipboard.setPrimaryClip(ClipData.newPlainText("Copied Message", text)) + .getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager + clipboard?.setPrimaryClip(ClipData.newPlainText("Copied Message", text)) } private fun configureImage( @@ -853,19 +845,16 @@ class ConversationAdapter( /** * Display and manage the popup that allows user to react/reply/share/edit/delete message ... */ - private fun openItemMenu( - conversationViewHolder: ConversationViewHolder, view: View, interaction: Interaction - ) { - - // Inflate design from XML. + private fun openItemMenu(viewHolder: ConversationViewHolder, view: View, interaction: Interaction) { MenuConversationBinding.inflate(LayoutInflater.from(view.context)).apply { val history = interaction.historyObservable.blockingFirst() val lastElement = history.last() val isDeleted = lastElement is TextMessage && lastElement.body.isNullOrEmpty() // Configure what should be displayed - convActionOpenText.isVisible = interaction is DataTransfer && interaction.isComplete - convActionDownloadText.isVisible = interaction is DataTransfer && interaction.isComplete + convActionFileOpen.isVisible = interaction is DataTransfer && interaction.isComplete + convActionFileSave.isVisible = interaction is DataTransfer && interaction.isComplete + convActionFileDelete.isVisible = false //interaction is DataTransfer && interaction.isComplete convActionCopyText.isVisible = !isDeleted && interaction !is DataTransfer convActionEdit.isVisible = !isDeleted && !interaction.isIncoming && interaction !is DataTransfer convActionDelete.isVisible = !isDeleted && !interaction.isIncoming @@ -901,17 +890,17 @@ class ConversationAdapter( } popupWindow.update() } - conversationViewHolder.compositeDisposable.add(disposable) + viewHolder.compositeDisposable.add(disposable) popupWindow.setOnDismissListener { - val type = conversationViewHolder.type.transferType + val type = viewHolder.type.transferType if (convColor != 0 && (interaction.type == Interaction.InteractionType.TEXT || type == MessageType.TransferType.FILE || type == MessageType.TransferType.AUDIO ) && !interaction.isIncoming ) view.background?.setTint(convColor) else view.background?.setTintList(null) // Remove disposable. - conversationViewHolder.compositeDisposable.remove(disposable) + viewHolder.compositeDisposable.remove(disposable) } // Callback executed when emoji is clicked. @@ -919,7 +908,7 @@ class ConversationAdapter( // If set we want to remove, else we want to append. val emojiCallback = View.OnClickListener { view -> // Subscribe to know which are the current reactions. - conversationViewHolder.compositeDisposable.add(interaction.reactionObservable + viewHolder.compositeDisposable.add(interaction.reactionObservable .observeOn(DeviceUtils.uiScheduler) .firstOrError() .subscribe { reactions -> @@ -961,12 +950,12 @@ class ConversationAdapter( } // Open file - convActionOpenText.setOnClickListener { + convActionFileOpen.setOnClickListener { presenter.openFile(interaction) } // Save file - convActionDownloadText.setOnClickListener { + convActionFileSave.setOnClickListener { presenter.saveFile(interaction) } @@ -993,11 +982,11 @@ class ConversationAdapter( .setAction(Intent.ACTION_EDIT) .putExtra( Intent.EXTRA_TEXT, - conversationViewHolder.mMessageBubble!!.getText().toString() + viewHolder.mMessageBubble!!.getText().toString() ) val options = ActivityOptionsCompat.makeSceneTransitionAnimation( conversationFragment.requireActivity(), - conversationViewHolder.mMessageBubble!!, + viewHolder.mMessageBubble!!, "messageEdit" ) conversationFragment.startActivityForResult( @@ -1021,6 +1010,10 @@ class ConversationAdapter( convActionDelete.setOnClickListener(null) } +// convActionFileDelete.setOnClickListener { +// TODO() +// } + // Share convActionShare.setOnClickListener { if (interaction is DataTransfer) @@ -1033,7 +1026,7 @@ class ConversationAdapter( // Message history if (convActionHistory.isVisible) convActionHistory.setOnClickListener { - conversationViewHolder.compositeDisposable.add( + viewHolder.compositeDisposable.add( interaction.historyObservable.firstOrError().subscribe { c -> Log.w(TAG, "Message history ${c.size}") c.forEach { @@ -1053,7 +1046,6 @@ class ConversationAdapter( } } - @SuppressLint("RestrictedApi", "ClickableViewAccessibility") private fun configureForFileInfo( viewHolder: ConversationViewHolder, interaction: Interaction, @@ -1072,9 +1064,7 @@ class ConversationAdapter( Formatter.formatFileSize(context, file.totalSize), TextUtils.getReadableFileTransferStatus(context, status) ) - else -> String.format( - Formatter.formatFileSize(context, file.totalSize) - ) + else -> String.format(Formatter.formatFileSize(context, file.totalSize)) } }) val isDateShown = hasPermanentDateString(file, position) @@ -1115,12 +1105,13 @@ class ConversationAdapter( MessageType.TransferType.AUDIO -> viewHolder.mAudioInfoLayout else -> viewHolder.mFileInfoLayout } ?: return + if (type == MessageType.TransferType.AUDIO || type == MessageType.TransferType.FILE) { longPressView.background?.setTintList(null) } + longPressView.setOnLongClickListener { v: View -> if (type == MessageType.TransferType.AUDIO || type == MessageType.TransferType.FILE) { - conversationFragment.updatePosition(viewHolder.bindingAdapterPosition) if (file.isIncoming) { longPressView.background.setTint(context.getColor(R.color.grey_500)) } else { @@ -1128,8 +1119,6 @@ class ConversationAdapter( } } openItemMenu(viewHolder, v, file) - mCurrentLongItem = - RecyclerViewContextMenuInfo(viewHolder.bindingAdapterPosition, v.id.toLong()) true } @@ -1163,13 +1152,12 @@ class ConversationAdapter( viewHolder.mAudioInfoLayout?.background?.setTint(convColor) } else { viewHolder.mAudioInfoLayout?.background?.setTint( - viewHolder.itemView.context.getColor - (R.color.conversation_secondary_background) + viewHolder.itemView.context.getColor(R.color.conversation_secondary_background) ) } configureAudio(viewHolder, path) } - else -> { + MessageType.TransferType.FILE -> { // Add margin if message need to be separated. viewHolder.mLayout?.updateLayoutParams<MarginLayoutParams> { topMargin = if (!isMessageSeparationNeeded) 0 else context.resources @@ -1200,9 +1188,7 @@ class ConversationAdapter( viewHolder.mFileDownloadButton?.visibility = View.GONE if (status == InteractionStatus.TRANSFER_ONGOING) { viewHolder.progress?.max = (file.totalSize / 1024).toInt() - viewHolder.progress?.setProgress( - (file.bytesProgress / 1024).toInt(), true - ) + viewHolder.progress?.setProgress((file.bytesProgress / 1024).toInt(), true) viewHolder.progress?.show() } else { viewHolder.progress?.hide() @@ -1243,8 +1229,7 @@ class ConversationAdapter( ) } else { layoutParams.setMargins( - res.getDimensionPixelSize(R.dimen.conditional_left_conversation_margin), 0, - 0, 0 + res.getDimensionPixelSize(R.dimen.conditional_left_conversation_margin), 0, 0, 0 ) } viewHolder.mTypingIndicatorLayout?.layoutParams = layoutParams @@ -1385,16 +1370,11 @@ class ConversationAdapter( // Manage long press. messageBubble.setOnLongClickListener { v: View -> openItemMenu(convViewHolder, v, interaction) - conversationFragment.updatePosition(convViewHolder.bindingAdapterPosition) if (textMessage.isIncoming) { messageBubble.background?.setTint(context.getColor(R.color.grey_500)) } else { messageBubble.background?.setTint(convColorTint) } - mCurrentLongItem = RecyclerViewContextMenuInfo( - convViewHolder.bindingAdapterPosition, - v.id.toLong() - ) true } @@ -1585,7 +1565,6 @@ class ConversationAdapter( interaction: Interaction, position: Int ) { - val recycle: StringBuilder = StringBuilder() val context = convViewHolder.itemView.context // Reset the scale of the icon convViewHolder.mIcon?.scaleX = 1f @@ -1594,26 +1573,12 @@ class ConversationAdapter( if (!interaction.isSwarm) { convViewHolder.mCallInfoLayout?.apply { background?.setTintList(null) // Remove the tint - // Define Context Menu, call when long pressed (see definition below) - setOnCreateContextMenuListener { menu: ContextMenu, v: View, menuInfo: - ContextMenuInfo? -> - conversationFragment.onCreateContextMenu(menu, v, menuInfo) - // Inflate the view and set it up - val inflater = conversationFragment.requireActivity().menuInflater - inflater.inflate(R.menu.conversation_item_actions_messages, menu) - menu.findItem(R.id.conv_action_delete).setTitle(R.string.menu_delete) - menu.removeItem(R.id.conv_action_cancel_message) - menu.removeItem(R.id.conv_action_copy_text) - } - // When long clicked... - setOnLongClickListener { v: View -> - background?.setTint(context.getColor(R.color.grey_500)) - // Open Context Menu - conversationFragment.updatePosition(convViewHolder.adapterPosition) - mCurrentLongItem = - RecyclerViewContextMenuInfo(convViewHolder.adapterPosition, v.id.toLong()) - false - } + + TODO("define popup menu to invoke in onLongClickListener") +// setOnLongClickListener { +// background?.setTint(context.getColor(R.color.grey_500)) +// false +// } } } @@ -1789,27 +1754,21 @@ class ConversationAdapter( callInfoLayout.background.setTintList(null) } // Add the call duration if not null. - detailCall.text = - if (call.duration != 0L) { - String.format( + detailCall.text = if (call.duration != 0L) { + String.format( context.getString(R.string.call_duration), - DateUtils.formatElapsedTime( - recycle, call.duration!! / 1000 - ) - ).let { " - $it" } - } else null + DateUtils.formatElapsedTime(null, call.duration!! / 1000) + ).let { " - $it" } + } else null // After a call, a message is displayed with call information. // Manage the call message layout. if (call.isIncoming) { // Set the color of the time duration. - detailCall.setTextColor( - context.getColor(R.color.colorOnSurface) - ) + detailCall.setTextColor(context.getColor(R.color.colorOnSurface)) + // Set the call message color. - typeCall.setTextColor( - context.getColor(R.color.colorOnSurface) - ) + typeCall.setTextColor(context.getColor(R.color.colorOnSurface)) if (call.isMissed) { // Call incoming missed. callIcon.setImageResource(R.drawable.baseline_missed_call_16) diff --git a/jami-android/app/src/main/java/cx/ring/client/ConversationActivity.kt b/jami-android/app/src/main/java/cx/ring/client/ConversationActivity.kt index 2f876ab5e1709399d5561eac50faafa1f509f09a..004427e33d15e0b46da61fdfdeb25b19d46fe727 100644 --- a/jami-android/app/src/main/java/cx/ring/client/ConversationActivity.kt +++ b/jami-android/app/src/main/java/cx/ring/client/ConversationActivity.kt @@ -20,7 +20,6 @@ import android.content.Intent import android.content.res.Configuration import android.os.Bundle import android.view.KeyEvent -import android.view.Menu import androidx.appcompat.app.AppCompatActivity import androidx.core.view.WindowCompat import cx.ring.R @@ -82,11 +81,6 @@ class ConversationActivity : AppCompatActivity() { super.onConfigurationChanged(newConfig) } - override fun onContextMenuClosed(menu: Menu) { - mConversationFragment?.updateAdapterItem() - super.onContextMenuClosed(menu) - } - override fun onStart() { super.onStart() mPendingIntent?.let { pendingIntent -> diff --git a/jami-android/app/src/main/java/cx/ring/fragments/ConversationFragment.kt b/jami-android/app/src/main/java/cx/ring/fragments/ConversationFragment.kt index 287dc561048946391c3edd4cfdecb385ca3c0b41..c9346f75def19df6f1d0dd6427df0618dcaeab62 100644 --- a/jami-android/app/src/main/java/cx/ring/fragments/ConversationFragment.kt +++ b/jami-android/app/src/main/java/cx/ring/fragments/ConversationFragment.kt @@ -19,7 +19,6 @@ package cx.ring.fragments import android.Manifest import android.animation.LayoutTransition import android.animation.ValueAnimator -import android.annotation.SuppressLint import android.app.Activity import android.app.ActivityOptions import android.content.* @@ -40,8 +39,6 @@ import android.widget.* import androidx.activity.result.PickVisualMediaRequest import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.ColorInt -import androidx.appcompat.view.menu.MenuBuilder -import androidx.appcompat.view.menu.MenuPopupHelper import androidx.appcompat.widget.PopupMenu import androidx.appcompat.widget.SearchView import androidx.core.view.* @@ -97,7 +94,6 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa private var mCurrentPhoto: File? = null private var mCurrentFileAbsolutePath: String? = null private val mCompositeDisposable = CompositeDisposable() - private var mSelectedPosition = 0 private var replyingTo: Interaction? = null private var mIsBubble = false private val mParticipantAvatars: MutableMap<String, AvatarDrawable> = HashMap() @@ -310,15 +306,14 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa } histList.addOnScrollListener(object : RecyclerView.OnScrollListener() { - // The minimum amount of items to have below current scroll position - // before loading more. + // The minimum amount of items to have below current scroll position before loading more. val visibleLoadThreshold = 3 // The amount of items to have below the current scroll position to display // the scroll to latest button. val visibleLatestThreshold = 8 override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {} override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { - val layoutManager = recyclerView.layoutManager as LinearLayoutManager? ?: return + val layoutManager = recyclerView.layoutManager as? LinearLayoutManager ?: return if (!loading && histList.adapter != mSearchAdapter && layoutManager.findFirstVisibleItemPosition() < visibleLoadThreshold ) { @@ -344,7 +339,7 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa } override fun setConversationColor(@ColorInt color: Int) { - mAdapter?.setPrimaryColor(getConversationColor(requireContext(), color)) + mAdapter?.convColor = getConversationColor(requireContext(), color) } override fun setConversationSymbol(symbol: CharSequence) { @@ -367,13 +362,6 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa binding = null } - fun updateAdapterItem() { - if (mSelectedPosition != -1) { - mAdapter?.notifyItemChanged(mSelectedPosition) - mSelectedPosition = -1 - } - } - private fun clearReply() { if (replyingTo != null) { replyingTo = null @@ -394,10 +382,8 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa clearReply() } - @SuppressLint("RestrictedApi") - fun expandMenu(v: View) { - val context = requireContext() - val popup = PopupMenu(context, v) + private fun expandMenu(v: View) { + val popup = PopupMenu(requireContext(), v) popup.inflate(R.menu.conversation_share_actions) popup.setOnMenuItemClickListener { item: MenuItem -> when (item.itemId) { @@ -411,9 +397,8 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa false } popup.menu.findItem(R.id.chat_plugins).isVisible = JamiService.getPluginsEnabled() && !JamiService.getChatHandlers().isEmpty() - val menuHelper = MenuPopupHelper(context, (popup.menu as MenuBuilder), v) - menuHelper.setForceShowIcon(true) - menuHelper.show() + popup.setForceShowIcon(true) + popup.show() } override fun showPluginListHandlers(accountId: String, contactId: String) { @@ -480,13 +465,6 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa showMap(accountId, conversationId, true) } - /** - * Used to update with the past adapter position when a long click was registered - */ - fun updatePosition(position: Int) { - mSelectedPosition = position - } - override fun showMap(accountId: String, contactId: String, open: Boolean) { if (binding!!.mapCard.visibility == View.GONE) { Log.w(TAG, "showMap $accountId $contactId") @@ -777,34 +755,32 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa val searchMenuItem = menu.findItem(R.id.conv_search) searchMenuItem.setOnActionExpandListener(object : MenuItem.OnActionExpandListener { override fun onMenuItemActionCollapse(item: MenuItem): Boolean { - val binding = binding ?: return false + val convList = binding?.histList ?: return false presenter.stopSearch() - binding.histList.adapter = mAdapter + convList.adapter = mAdapter currentBottomView?.isVisible = true if (animation.isStarted) animation.cancel() - animation.setIntValues( - binding.histList.paddingBottom, - (currentBottomView?.height ?: 0) + marginPxTotal + animation.setIntValues(convList.paddingBottom, + (currentBottomView?.height ?: 0) + marginPxTotal ) animation.start() return true } override fun onMenuItemActionExpand(item: MenuItem): Boolean { - val binding = binding ?: return false - mSearchAdapter = ConversationAdapter(this@ConversationFragment, presenter, true).apply { - setPrimaryColor(getPrimaryColor()) - } + val convList = binding?.histList ?: return false + mSearchAdapter = ConversationAdapter(this@ConversationFragment, presenter, true) presenter.startSearch() currentBottomView?.isVisible = false - binding.histList.adapter = mSearchAdapter + convList.adapter = mSearchAdapter if (animation.isStarted) animation.cancel() - animation.setIntValues(binding.histList.paddingBottom, marginPxTotal) + animation.setIntValues(convList.paddingBottom, marginPxTotal) animation.start() return true } }) - (searchMenuItem.actionView as SearchView).let { + + (searchMenuItem.actionView as? SearchView)?.let { it.setOnQueryTextListener(this@ConversationFragment) it.queryHint = getString(R.string.conversation_search_hint) } @@ -930,7 +906,6 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa override fun displayNumberSpinner(conversation: Conversation, number: net.jami.model.Uri) { binding!!.numberSelector.visibility = View.VISIBLE - //binding.numberSelector.setAdapter(new NumberAdapter(getActivity(), conversation.getContact(), false)); binding!!.numberSelector.setSelection(getIndex(binding!!.numberSelector, number)) } @@ -944,11 +919,12 @@ class ConversationFragment : BaseSupportFragment<ConversationPresenter, Conversa } override fun goToHome() { - if (activity is ConversationActivity) { - requireActivity().finish() + val hostActivity = activity + if (hostActivity is ConversationActivity) { + hostActivity.finish() } else { // Post because we might be currently executing a fragment transaction - view?.post { activity?.onBackPressedDispatcher?.onBackPressed() } + view?.post { hostActivity?.onBackPressedDispatcher?.onBackPressed() } } } diff --git a/jami-android/app/src/main/res/drawable/baseline_content_copy_16.xml b/jami-android/app/src/main/res/drawable/baseline_content_copy_16.xml new file mode 100644 index 0000000000000000000000000000000000000000..005c6d1d9d5ed07964df8bfcb9ab0260ea6b98b0 --- /dev/null +++ b/jami-android/app/src/main/res/drawable/baseline_content_copy_16.xml @@ -0,0 +1,8 @@ +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + + <item + android:width="16dp" + android:height="16dp" + android:drawable="@drawable/baseline_content_copy_28" /> + +</layer-list> \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_copyright_24.xml b/jami-android/app/src/main/res/drawable/baseline_copyright_24.xml old mode 100755 new mode 100644 index ea10b49dacaf383f687ca5514852351b63e2a180..d740276f12a48af5675bca442be6004e64feade9 --- a/jami-android/app/src/main/res/drawable/baseline_copyright_24.xml +++ b/jami-android/app/src/main/res/drawable/baseline_copyright_24.xml @@ -1,14 +1,12 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" + android:autoMirrored="true" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24" android:tint="?attr/colorControlNormal"> - <group> - <clip-path android:pathData="M24,0v24H0V0h24z M 0,0"/> - <path - android:fillColor="@android:color/white" - android:pathData="M10.08,10.86c0.05,-0.33 0.16,-0.62 0.3,-0.87s0.34,-0.46 0.59,-0.62c0.24,-0.15 0.54,-0.22 0.91,-0.23 0.23,0.01 0.44,0.05 0.63,0.13 0.2,0.09 0.38,0.21 0.52,0.36s0.25,0.33 0.34,0.53 0.13,0.42 0.14,0.64h1.79c-0.02,-0.47 -0.11,-0.9 -0.28,-1.29s-0.4,-0.73 -0.7,-1.01 -0.66,-0.5 -1.08,-0.66 -0.88,-0.23 -1.39,-0.23c-0.65,0 -1.22,0.11 -1.7,0.34s-0.88,0.53 -1.2,0.92 -0.56,0.84 -0.71,1.36S8,11.29 8,11.87v0.27c0,0.58 0.08,1.12 0.23,1.64s0.39,0.97 0.71,1.35 0.72,0.69 1.2,0.91 1.05,0.34 1.7,0.34c0.47,0 0.91,-0.08 1.32,-0.23s0.77,-0.36 1.08,-0.63 0.56,-0.58 0.74,-0.94 0.29,-0.74 0.3,-1.15h-1.79c-0.01,0.21 -0.06,0.4 -0.15,0.58s-0.21,0.33 -0.36,0.46 -0.32,0.23 -0.52,0.3c-0.19,0.07 -0.39,0.09 -0.6,0.1 -0.36,-0.01 -0.66,-0.08 -0.89,-0.23 -0.25,-0.16 -0.45,-0.37 -0.59,-0.62s-0.25,-0.55 -0.3,-0.88 -0.08,-0.67 -0.08,-1v-0.27c0,-0.35 0.03,-0.68 0.08,-1.01zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z"/> - </group> -</vector> - + + <path android:fillColor="@android:color/white" + android:pathData="M11.88,9.14c1.28,0.06 1.61,1.15 1.63,1.66h1.79c-0.08,-1.98 -1.49,-3.19 -3.45,-3.19C9.64,7.61 8,9 8,12.14c0,1.94 0.93,4.24 3.84,4.24c2.22,0 3.41,-1.65 3.44,-2.95h-1.79c-0.03,0.59 -0.45,1.38 -1.63,1.44C10.55,14.83 10,13.81 10,12.14C10,9.25 11.28,9.16 11.88,9.14zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8s8,3.59 8,8S16.41,20 12,20z"/> + +</vector> \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_delete_16.xml b/jami-android/app/src/main/res/drawable/baseline_delete_16.xml index 020e337ccd67e0198538e019a7de9dca94b4a9fe..a3a7b7ba2cf9ce28d667eb7fc422ea38884a6db2 100755 --- a/jami-android/app/src/main/res/drawable/baseline_delete_16.xml +++ b/jami-android/app/src/main/res/drawable/baseline_delete_16.xml @@ -3,7 +3,7 @@ <item android:drawable="@drawable/baseline_delete_24" - android:width="@dimen/menu_icon_size" - android:height="@dimen/menu_icon_size" /> + android:width="16dp" + android:height="16dp" /> -</layer-list > +</layer-list > \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_edit_16.xml b/jami-android/app/src/main/res/drawable/baseline_edit_16.xml old mode 100755 new mode 100644 index 420c93c55ab535256c1392564842b5ff1e498474..ce71ac2ad2ccb7b2f934c585beb539d17eb32ca1 --- a/jami-android/app/src/main/res/drawable/baseline_edit_16.xml +++ b/jami-android/app/src/main/res/drawable/baseline_edit_16.xml @@ -1,9 +1,12 @@ -<?xml version="1.0" encoding="utf-8"?> -<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > - - <item - android:drawable="@drawable/baseline_edit_24" - android:width="@dimen/menu_icon_size" - android:height="@dimen/menu_icon_size" /> - -</layer-list > +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:autoMirrored="true" + android:height="16dp" + android:width="16dp" + android:tint="?attr/colorControlNormal" + android:viewportHeight="24" + android:viewportWidth="24"> + + <path android:fillColor="@android:color/white" + android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/> + +</vector> \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_edit_24.xml b/jami-android/app/src/main/res/drawable/baseline_edit_24.xml deleted file mode 100755 index 250655a75a6444c2a91e4106d1c988cc0f9f61e4..0000000000000000000000000000000000000000 --- a/jami-android/app/src/main/res/drawable/baseline_edit_24.xml +++ /dev/null @@ -1,10 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0" - android:tint="?attr/colorControlNormal"> - <path - android:fillColor="@android:color/white" - android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/> -</vector> diff --git a/jami-android/app/src/main/res/drawable/baseline_file_download_16.xml b/jami-android/app/src/main/res/drawable/baseline_file_download_16.xml index fbaae35160571f421a3f4e8211dec1145011da91..c7838a7a045d581751a704230e1d97cf4cec111e 100644 --- a/jami-android/app/src/main/res/drawable/baseline_file_download_16.xml +++ b/jami-android/app/src/main/res/drawable/baseline_file_download_16.xml @@ -3,7 +3,7 @@ <item android:drawable="@drawable/baseline_file_download_24" - android:width="@dimen/menu_icon_size" - android:height="@dimen/menu_icon_size" /> + android:width="16dp" + android:height="16dp" /> -</layer-list > +</layer-list > \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_history_16.xml b/jami-android/app/src/main/res/drawable/baseline_history_16.xml new file mode 100644 index 0000000000000000000000000000000000000000..f234d41f323f999b8738f24d7e734edfa5a84875 --- /dev/null +++ b/jami-android/app/src/main/res/drawable/baseline_history_16.xml @@ -0,0 +1,12 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:autoMirrored="true" + android:height="16dp" + android:width="16dp" + android:tint="?attr/colorControlNormal" + android:viewportHeight="24" + android:viewportWidth="24"> + + <path android:fillColor="@android:color/white" + android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/> + +</vector> \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_open_in_new_16.xml b/jami-android/app/src/main/res/drawable/baseline_open_in_new_16.xml index 20a80b0ea759255c3ef63c4813c82f8e7ba57d7c..6c83175f30530be6b8ec3747492d4140e7397601 100755 --- a/jami-android/app/src/main/res/drawable/baseline_open_in_new_16.xml +++ b/jami-android/app/src/main/res/drawable/baseline_open_in_new_16.xml @@ -3,7 +3,7 @@ <item android:drawable="@drawable/baseline_open_in_new_24" - android:width="@dimen/menu_icon_size" - android:height="@dimen/menu_icon_size" /> + android:width="16dp" + android:height="16dp" /> -</layer-list > +</layer-list > \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_open_in_new_24.xml b/jami-android/app/src/main/res/drawable/baseline_open_in_new_24.xml index 7dfe555f6ec7b9d581aa0fdbecfe4718fa953cb1..a2ec578cbe157efd0fb2dcfa47ee52bfbb1a18ac 100755 --- a/jami-android/app/src/main/res/drawable/baseline_open_in_new_24.xml +++ b/jami-android/app/src/main/res/drawable/baseline_open_in_new_24.xml @@ -1,10 +1,12 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0" - android:tint="?attr/colorControlNormal"> + android:autoMirrored="true" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + <path android:fillColor="@android:color/white" android:pathData="M19,19H5V5h7V3H5c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2v-7h-2v7zM14,3v2h3.59l-9.83,9.83 1.41,1.41L19,6.41V10h2V3h-7z"/> -</vector> +</vector> \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_reply_24.xml b/jami-android/app/src/main/res/drawable/baseline_reply_24.xml index 73e5f034084d9db1c1d0dd9e8dc2f58860e22ac5..89238ecd3eb6e5a7fe4b799478387cd14ae01aaa 100755 --- a/jami-android/app/src/main/res/drawable/baseline_reply_24.xml +++ b/jami-android/app/src/main/res/drawable/baseline_reply_24.xml @@ -1,10 +1,12 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0" - android:tint="?attr/colorControlNormal"> + android:autoMirrored="true" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24" + android:tint="?attr/colorControlNormal"> + <path android:fillColor="@android:color/white" android:pathData="M10,9V5l-7,7 7,7v-4.1c5,0 8.5,1.6 11,5.1 -1,-5 -4,-10 -11,-11z"/> -</vector> +</vector> \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_share_twoton_16dp.xml b/jami-android/app/src/main/res/drawable/baseline_share_twoton_16dp.xml index ba2ac86c1ee1cfeeb3d7a785d545dc50ab9fe073..70298980d48668a42b88517b020babd5aea5e787 100644 --- a/jami-android/app/src/main/res/drawable/baseline_share_twoton_16dp.xml +++ b/jami-android/app/src/main/res/drawable/baseline_share_twoton_16dp.xml @@ -3,7 +3,7 @@ <item android:drawable="@drawable/baseline_share_twoton_24dp" - android:width="@dimen/menu_icon_size" - android:height="@dimen/menu_icon_size" /> + android:width="16dp" + android:height="16dp" /> -</layer-list > +</layer-list > \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/baseline_share_twoton_24dp.xml b/jami-android/app/src/main/res/drawable/baseline_share_twoton_24dp.xml index a3245855f1b19e671fc31e58084d6bc4161124de..0fb68b93cfcc5657b28e76acfae814e8f37aa895 100644 --- a/jami-android/app/src/main/res/drawable/baseline_share_twoton_24dp.xml +++ b/jami-android/app/src/main/res/drawable/baseline_share_twoton_24dp.xml @@ -1,4 +1,5 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" + android:autoMirrored="true" android:width="24dp" android:height="24dp" android:tint="?attr/colorControlNormal" @@ -22,4 +23,4 @@ <path android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92s2.92,-1.31 2.92,-2.92c0,-1.61 -1.31,-2.92 -2.92,-2.92zM18,4c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM6,13c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1zM18,20.02c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1z" android:fillColor="@color/button_border"/> -</vector> +</vector> \ No newline at end of file diff --git a/jami-android/app/src/main/res/drawable/outline_file_copy_16.xml b/jami-android/app/src/main/res/drawable/outline_file_copy_16.xml deleted file mode 100644 index fe7cbfc7e8c1e7c191cff1dc81beb60f19f1b567..0000000000000000000000000000000000000000 --- a/jami-android/app/src/main/res/drawable/outline_file_copy_16.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > - - <item - android:drawable="@drawable/outline_file_copy_24" - android:width="@dimen/menu_icon_size" - android:height="@dimen/menu_icon_size" /> - -</layer-list > diff --git a/jami-android/app/src/main/res/drawable/outline_file_copy_24.xml b/jami-android/app/src/main/res/drawable/outline_file_copy_24.xml deleted file mode 100755 index 71a37180777770a7126945b03a97609674d62d53..0000000000000000000000000000000000000000 --- a/jami-android/app/src/main/res/drawable/outline_file_copy_24.xml +++ /dev/null @@ -1,10 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24" - android:tint="?attr/colorControlNormal"> - <path - android:fillColor="@android:color/white" - android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM15,5L8,5c-1.1,0 -1.99,0.9 -1.99,2L6,21c0,1.1 0.89,2 1.99,2L19,23c1.1,0 2,-0.9 2,-2L21,11l-6,-6zM8,21L8,7h6v5h5v9L8,21z"/> -</vector> diff --git a/jami-android/app/src/main/res/drawable/outline_history_16.xml b/jami-android/app/src/main/res/drawable/outline_history_16.xml deleted file mode 100644 index 503da2496a469d8842f70979491816d1dbbfbf1e..0000000000000000000000000000000000000000 --- a/jami-android/app/src/main/res/drawable/outline_history_16.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > - - <item - android:drawable="@drawable/outline_history_24" - android:width="@dimen/menu_icon_size" - android:height="@dimen/menu_icon_size" /> - -</layer-list > diff --git a/jami-android/app/src/main/res/drawable/outline_history_24.xml b/jami-android/app/src/main/res/drawable/outline_history_24.xml deleted file mode 100644 index 7ba632578a62453c3b733787f93a3061cc258a60..0000000000000000000000000000000000000000 --- a/jami-android/app/src/main/res/drawable/outline_history_24.xml +++ /dev/null @@ -1,10 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24" - android:tint="?attr/colorControlNormal"> - <path - android:fillColor="@android:color/white" - android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.25,2.52 0.77,-1.28 -3.52,-2.09L13.5,8z"/> -</vector> diff --git a/jami-android/app/src/main/res/drawable/outline_scan_delete_16.xml b/jami-android/app/src/main/res/drawable/outline_scan_delete_16.xml new file mode 100644 index 0000000000000000000000000000000000000000..466fc17e9eac058852acc2ec993e82f47a697ff6 --- /dev/null +++ b/jami-android/app/src/main/res/drawable/outline_scan_delete_16.xml @@ -0,0 +1,13 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="16dp" + android:height="16dp" + android:autoMirrored="true" + android:tint="?attr/colorControlNormal" + android:viewportWidth="960" + android:viewportHeight="960"> + + <path + android:fillColor="@android:color/white" + android:pathData="M240,160L240,160L240,360L240,360L240,160L240,360L240,360L240,800Q240,800 240,800Q240,800 240,800Q240,800 240,800Q240,800 240,800Q240,800 240,790.5Q240,781 240,800L240,800Q240,800 240,800Q240,800 240,800L240,160Q240,160 240,160Q240,160 240,160ZM240,880Q207,880 183.5,856.5Q160,833 160,800L160,160Q160,127 183.5,103.5Q207,80 240,80L560,80L800,320L800,494Q781,487 761,483.5Q741,480 720,480L720,360L520,360L520,160L240,160Q240,160 240,160Q240,160 240,160L240,800Q240,800 240,800Q240,800 240,800L494,800Q502,823 514,843Q526,863 542,880L240,880ZM636,860L580,804L664,720L580,636L636,580L720,664L804,580L860,636L777,720L860,804L804,860L720,777L636,860Z" /> + +</vector> \ No newline at end of file diff --git a/jami-android/app/src/main/res/layout/menu_conversation.xml b/jami-android/app/src/main/res/layout/menu_conversation.xml index 7f5affc3c0da358fe5cc421822eb24ce76880a27..367b7cc0893b4655c49a307adeaace4cc7ab6839 100644 --- a/jami-android/app/src/main/res/layout/menu_conversation.xml +++ b/jami-android/app/src/main/res/layout/menu_conversation.xml @@ -15,16 +15,16 @@ android:padding="8dp"> <include layout="@layout/item_reaction_chip_18" - android:id="@+id/conv_action_emoji1"/> + android:id="@+id/conv_action_emoji1" /> <include layout="@layout/item_reaction_chip_18" - android:id="@+id/conv_action_emoji2"/> + android:id="@+id/conv_action_emoji2" /> <include layout="@layout/item_reaction_chip_18" - android:id="@+id/conv_action_emoji3"/> + android:id="@+id/conv_action_emoji3" /> <include layout="@layout/item_reaction_chip_18" - android:id="@+id/conv_action_emoji4"/> + android:id="@+id/conv_action_emoji4" /> <ImageView android:id="@+id/conv_action_more" @@ -73,7 +73,7 @@ tools:visibility="visible"> <TextView - android:id="@+id/conv_action_open_text" + android:id="@+id/conv_action_file_open" style="@style/TextAppearance.Material3.LabelMedium" android:layout_width="match_parent" android:layout_height="@dimen/conversation_menu_item_height" @@ -88,7 +88,7 @@ app:drawableStartCompat="@drawable/baseline_open_in_new_16" /> <TextView - android:id="@+id/conv_action_download_text" + android:id="@+id/conv_action_file_save" style="@style/TextAppearance.Material3.LabelMedium" android:layout_width="match_parent" android:layout_height="@dimen/conversation_menu_item_height" @@ -115,7 +115,7 @@ android:paddingHorizontal="16dp" android:text="@android:string/copy" android:textColor="@color/text_color" - app:drawableStartCompat="@drawable/outline_file_copy_16" /> + app:drawableStartCompat="@drawable/baseline_content_copy_16" /> <TextView android:id="@+id/conv_action_share" @@ -130,7 +130,7 @@ android:paddingHorizontal="16dp" android:text="@string/share_label" android:textColor="@color/text_color" - app:drawableStartCompat="@drawable/baseline_share_twoton_16dp"/> + app:drawableStartCompat="@drawable/baseline_share_twoton_16dp" /> <TextView android:id="@+id/conv_action_edit" @@ -160,7 +160,22 @@ android:paddingHorizontal="16dp" android:text="Message history" android:textColor="@color/text_color" - app:drawableStartCompat="@drawable/outline_history_16" /> + app:drawableStartCompat="@drawable/baseline_history_16" /> + + <TextView + android:id="@+id/conv_action_file_delete" + style="@style/TextAppearance.Material3.LabelMedium" + android:layout_width="match_parent" + android:layout_height="@dimen/conversation_menu_item_height" + android:background="?selectableItemBackground" + android:clickable="true" + android:drawablePadding="16dp" + android:focusable="true" + android:gravity="center_vertical" + android:paddingHorizontal="16dp" + android:text="@string/menu_file_delete" + android:textColor="@color/text_color" + app:drawableStartCompat="@drawable/outline_scan_delete_16" /> <TextView android:id="@+id/conv_action_delete" @@ -178,5 +193,4 @@ app:drawableStartCompat="@drawable/baseline_delete_16" /> </LinearLayout> - -</LinearLayout> +</LinearLayout> \ No newline at end of file diff --git a/jami-android/app/src/main/res/menu/conversation_item_actions_messages.xml b/jami-android/app/src/main/res/menu/conversation_item_actions_messages.xml deleted file mode 100644 index 11c8e89da179a96e1f8b0b4ce8a5fe76ef85ee71..0000000000000000000000000000000000000000 --- a/jami-android/app/src/main/res/menu/conversation_item_actions_messages.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> - <item - android:id="@+id/conv_action_reply" - android:icon="@drawable/baseline_reply_24" - android:title="@string/menu_message_reply" - app:showAsAction="always" /> - - <item - android:id="@+id/conv_action_copy_text" - android:icon="@drawable/baseline_delete_24" - android:title="@string/menu_message_copy" - app:showAsAction="always" /> - - <item - android:id="@+id/conv_action_cancel_message" - android:icon="@drawable/baseline_delete_24" - android:title="@string/menu_message_cancel" - app:showAsAction="always" /> - - <item - android:id="@+id/conv_action_delete" - android:icon="@drawable/baseline_delete_24" - android:title="@string/menu_message_delete" - app:showAsAction="always" /> - -</menu> \ No newline at end of file diff --git a/jami-android/app/src/main/res/values/dimens.xml b/jami-android/app/src/main/res/values/dimens.xml index 55acf66d3b7baa170373bc5265e6946513ad80fa..8943d93da0f9d161be2eb7d34883e470cada2edd 100644 --- a/jami-android/app/src/main/res/values/dimens.xml +++ b/jami-android/app/src/main/res/values/dimens.xml @@ -46,11 +46,6 @@ along with this program; if not, write to the Free Software <dimen name="action_button_lpadding">16dp</dimen> <dimen name="action_button_bpadding">-20dp</dimen> - <dimen name="alert_dialog_side_padding_list_view">16dp</dimen> - - <dimen name="toolbar_content_inset">72dp</dimen> - <dimen name="toolbar_elevation">4dp</dimen> - <dimen name="default_image_card_width">110dp</dimen> <dimen name="default_image_card_height">100dp</dimen> @@ -114,7 +109,6 @@ along with this program; if not, write to the Free Software <dimen name="bottom_sheet_radius">16dp</dimen> <dimen name="edit_text_radius">12dp</dimen> <dimen name="dialog_radius">@dimen/bottom_sheet_radius</dimen> - <dimen name="menu_icon_size">16dp</dimen> <!-- JamiId --> <dimen name="jami_id_small_font_size">14sp</dimen>