From 3a8b892ee109d2a3181d864baca170705f9456f8 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 6 Sep 2021 12:40:00 +0200 Subject: [PATCH] Reworked chat room menu + prepared ephemeral session mode + fixed one-to-one not encrypted chat room menu visible --- .../chat/fragments/DetailChatRoomFragment.kt | 102 ++++++++++-------- .../viewmodels/ChatRoomCreationViewModel.kt | 6 ++ .../main/chat/viewmodels/ChatRoomViewModel.kt | 17 ++- .../chat/viewmodels/GroupInfoViewModel.kt | 8 ++ .../java/org/linphone/core/CorePreferences.kt | 4 + .../notifications/NotificationsManager.kt | 2 +- .../menu_ephemeral_messages_default.png | Bin 3669 -> 11727 bytes .../menu_group_info_default.png | Bin 3294 -> 12813 bytes .../drawable-xhdpi/menu_security_default.png | Bin 3625 -> 14046 bytes .../res/layout/chat_room_detail_fragment.xml | 4 +- app/src/main/res/layout/chat_room_menu.xml | 76 +++++++++++++ app/src/main/res/menu/chat_room_menu.xml | 24 ----- app/src/main/res/values/dimen.xml | 2 + 13 files changed, 173 insertions(+), 72 deletions(-) create mode 100644 app/src/main/res/layout/chat_room_menu.xml delete mode 100644 app/src/main/res/menu/chat_room_menu.xml diff --git a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt index 54b012e71..d83a697fd 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/fragments/DetailChatRoomFragment.kt @@ -26,14 +26,11 @@ import android.content.pm.PackageManager import android.os.Bundle import android.os.Parcelable import android.provider.MediaStore -import android.view.MenuInflater -import android.view.MenuItem -import android.view.MotionEvent -import android.view.View -import androidx.appcompat.view.menu.MenuBuilder -import androidx.appcompat.view.menu.MenuPopupHelper +import android.view.* +import android.widget.PopupWindow import androidx.core.content.FileProvider import androidx.core.view.doOnPreDraw +import androidx.databinding.DataBindingUtil import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController @@ -62,6 +59,7 @@ import org.linphone.compatibility.Compatibility import org.linphone.core.* import org.linphone.core.tools.Log import org.linphone.databinding.ChatRoomDetailFragmentBinding +import org.linphone.databinding.ChatRoomMenuBindingImpl import org.linphone.utils.* import org.linphone.utils.Event @@ -620,53 +618,71 @@ class DetailChatRoomFragment : MasterFragment { - showGroupInfo(chatRoom) - true - } - R.id.chat_room_participants_devices -> { - showParticipantsDevices() - true - } - R.id.chat_room_ephemeral_messages -> { - showEphemeralMessages() - true - } - R.id.chat_room_delete_messages -> { - enterEditionMode() - true - } - else -> false + if (viewModel.ephemeralChatRoom) { + if (chatRoom.currentParams.ephemeralMode == ChatRoomEphemeralMode.AdminManaged && + viewModel.meAdmin.value == false + ) { + popupView.ephemeralHidden = true + totalSize -= itemSize } } - }) + } - popupMenu.show() + // When using WRAP_CONTENT instead of real size, fails to place the + // popup window above if not enough space is available below + val popupWindow = PopupWindow( + popupView.root, + AppUtils.getDimension(R.dimen.chat_room_popup_width).toInt(), + totalSize, + true + ) + // Elevation is for showing a shadow around the popup + popupWindow.elevation = 20f + + popupView.setGroupInfoListener { + showGroupInfo(chatRoom) + popupWindow.dismiss() + } + popupView.setDevicesListener { + showParticipantsDevices() + popupWindow.dismiss() + } + popupView.setEphemeralListener { + showEphemeralMessages() + popupWindow.dismiss() + } + popupView.setEditionModeListener { + enterEditionMode() + popupWindow.dismiss() + } + + popupWindow.showAsDropDown(binding.menu, 0, 0, Gravity.BOTTOM) } private fun scrollToBottom() { diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomCreationViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomCreationViewModel.kt index 9f10ab947..06f2bfd88 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomCreationViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomCreationViewModel.kt @@ -21,6 +21,7 @@ package org.linphone.activities.main.chat.viewmodels import androidx.lifecycle.MutableLiveData import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.activities.main.viewmodels.ErrorReportingViewModel import org.linphone.contact.ContactsUpdatedListenerStub @@ -163,6 +164,11 @@ class ChatRoomCreationViewModel : ErrorReportingViewModel() { if (encrypted) { params.enableEncryption(true) params.backend = ChatRoomBackend.FlexisipChat + params.ephemeralMode = if (corePreferences.useEphemeralPerDeviceMode) + ChatRoomEphemeralMode.DeviceManaged + else + ChatRoomEphemeralMode.AdminManaged + params.ephemeralLifetime = 0 // Make sure ephemeral is disabled by default params.subject = AppUtils.getString(R.string.chat_room_dummy_subject) } diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt index d6c97d653..6e16530c3 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt @@ -75,7 +75,11 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactDataInterf val encryptedChatRoom: Boolean = chatRoom.hasCapability(ChatRoomCapabilities.Encrypted.toInt()) - val basicChatRoom: Boolean = chatRoom.hasCapability(ChatRoomCapabilities.Basic.toInt()) + val ephemeralChatRoom: Boolean = chatRoom.hasCapability(ChatRoomCapabilities.Ephemeral.toInt()) + + val meAdmin: MutableLiveData by lazy { + MutableLiveData() + } var oneParticipantOneDevice: Boolean = false @@ -174,6 +178,10 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactDataInterf Log.i("[Chat Room] Ephemeral message deleted, updated last message displayed") lastMessageText.value = formatLastMessage(chatRoom.lastMessageInHistory) } + + override fun onParticipantAdminStatusChanged(chatRoom: ChatRoom, eventLog: EventLog) { + meAdmin.value = chatRoom.me?.isAdmin ?: false + } } init { @@ -187,6 +195,7 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactDataInterf subject.value = chatRoom.subject updateSecurityIcon() + meAdmin.value = chatRoom.me?.isAdmin ?: false contactLookup() updateParticipants() @@ -206,6 +215,10 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactDataInterf chatRoom.core.removeListener(coreListener) } + fun hideMenu(): Boolean { + return chatRoom.hasCapability(ChatRoomCapabilities.Basic.toInt()) || (oneToOneChatRoom && !encryptedChatRoom) + } + fun contactLookup() { displayName.value = when { chatRoom.hasCapability(ChatRoomCapabilities.Basic.toInt()) -> LinphoneUtils.getDisplayName( @@ -304,7 +317,7 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactDataInterf } private fun updateParticipants() { - peerSipUri.value = if (oneToOneChatRoom && !basicChatRoom) + peerSipUri.value = if (oneToOneChatRoom && !chatRoom.hasCapability(ChatRoomCapabilities.Basic.toInt())) chatRoom.participants.firstOrNull()?.address?.asStringUriOnly() ?: chatRoom.peerAddress.asStringUriOnly() else chatRoom.peerAddress.asStringUriOnly() diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/GroupInfoViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/GroupInfoViewModel.kt index 4afa8ace0..f2526a05d 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/GroupInfoViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/GroupInfoViewModel.kt @@ -23,6 +23,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.activities.main.chat.GroupChatRoomMember import org.linphone.activities.main.chat.data.GroupInfoParticipantData @@ -117,6 +118,13 @@ class GroupInfoViewModel(val chatRoom: ChatRoom?) : ErrorReportingViewModel() { val params: ChatRoomParams = coreContext.core.createDefaultChatRoomParams() params.enableEncryption(isEncrypted.value == true) params.enableGroup(true) + if (isEncrypted.value == true) { + params.ephemeralMode = if (corePreferences.useEphemeralPerDeviceMode) + ChatRoomEphemeralMode.DeviceManaged + else + ChatRoomEphemeralMode.AdminManaged + } + params.ephemeralLifetime = 0 // Make sure ephemeral is disabled by default params.subject = subject.value val addresses = arrayOfNulls
(participants.value.orEmpty().size) diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index bbdcb9a11..7a6975ddf 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -417,6 +417,10 @@ class CorePreferences constructor(private val context: Context) { val voiceMessagesFormatMkv: Boolean get() = config.getBool("app", "record_voice_messages_in_mkv_format", true) + // TODO FIXME: Keeping it device based until we have the API to know if all participants support the new mode + val useEphemeralPerDeviceMode: Boolean + get() = config.getBool("app", "ephemeral_chat_messages_settings_per_device", true) + /* Default values related */ val echoCancellerCalibration: Int diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt index 4164dcd7d..213c7e4d7 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt @@ -627,7 +627,7 @@ class NotificationsManager(private val context: Context) { val notifiableMessage = getNotifiableMessage(message, contact) notifiable.messages.add(notifiableMessage) } else { - for (chatMessage in room.getUnreadHistory()) { + for (chatMessage in room.unreadHistory) { val notifiableMessage = getNotifiableMessage(chatMessage, contact) notifiable.messages.add(notifiableMessage) } diff --git a/app/src/main/res/drawable-xhdpi/menu_ephemeral_messages_default.png b/app/src/main/res/drawable-xhdpi/menu_ephemeral_messages_default.png index 6bdcc38dbc4162a8255dd4feba3ac7274f15543a..bbe180afd4d5bd54f0ed590f9b81f05c290de803 100644 GIT binary patch literal 11727 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 CA;NV4 literal 3294 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 diff --git a/app/src/main/res/drawable-xhdpi/menu_security_default.png b/app/src/main/res/drawable-xhdpi/menu_security_default.png index 51ee24fd9523557a600a61fb894e5b464c41262d..477de590a694066a29c1cca44eb2c08d47d02723 100644 GIT binary patch literal 14046 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 literal 3625 zcmV+^4%YFBP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91N1y`$1ONa40RR91QUCw|0DR;682|tclSxEDRCodHoC$DMR~g5%v4moQ zf*^$o658n?)CF}UtflM(28y9A6)9H1B1MN~Z~;vPEOf&b%|NDFmUcixDu%EHoU(=) zD~v2+Tf zYvNonbm-7;R99DLqV{UjrcE~&6%~CDXA>Oi5)KZaw6CeD`Teb1w}va$T~AI^#f621=UjzGSP?UD0Hq%e&f^{&$VNapOZ|-P z+qeJO;u|$;RI}^Xum6I!v!JC}bVGU#kX9h$IU?ypLw!V~sDlG2gMDL4Uk}TwaO!2I z>l_B!auYAJSr6zdxOit zJGKSEYh#fIaOu*e*%0TV>keC`p#Vrn;md8-tl8^~OIHjmo}`e$0g$#R9gF10Nc($g zsAG5+V;A-A-TRH4oSd2<+ZfpxkJ>OE%|`bRVQ6k-vJ=bET?BuAt5&VH(1owrtKCaM zfs>V$)#2vNn-8O49HRP?2AXPBZAWAQmzkNFA1NrRP|1%SJGM15+e~bEn&M~ldQ%yY zu0r3$y`FZ(MDS%3pG7l*Bl{gTfqfAsGfqF4yK@_PEkRoPHfxbZEZ7Q>aZ9UOCJJ58JbYP{Jbd`@JJ|%DM95t_hg%tR|4rR`(gLRA z18#hYrb{%PIB{Yic4p(>80={sq)nBa27Er5s2M>+8Kk@}8C>5aLJB}trsM{7F(IVw z-@ktV_K(Bgff#>ZAO{#TzaKI%vY) zPSX430u z9}ivF*haS5@ncz8S%qp9%s1J#J9g+eDc$Br+(8{KsWJ`uE6`qMB|hI!mlS7R zpJ0Q{Ctee^O7R^Vma7JWVq-aJQ)!a#)2GifB!xOX%yOYmp0Rnnbd4D^rX>d0fT3Ku zVZ(+?);poo5W1;Was(;k$1at|Kv)HE6AAS)(&=hlD0w3Dw{)u+q|Scm6BI99K0kHy zSLt~yBv{&4WC9145rBGCdZ6!#tPk6e{UcjrS3j2c?z#18$(?VaKPhJaCj=` zA$+J>Bs12@lPABV()2v%v-b<1PB)c>PxwuB!O&u%i;1N>cG=F(!J(p8uU;p_CaYV? z0oMV8k;4r%KZ!Bq0e``sIc+c2l>+da*ln}`ZNt`u&qHiVC_pP=rmQ{B@`D52^!|FJ z-dHUo$OaCm?`CB=kcC|*Nu?Z!U#;`X$4Hk093DckWs4u2CQX`bwunmlbza?kRw?V* z+HPlo!W7+~uN&SHCP}5NffTTt>cX{hRCVE369Dh0>5ysM50146Oxm<*(+Lim-=Tqj zTp%yIcIjHHbs@fTnK*9&V&d`Dy~T^R2az?!#1kYfs=BbHFM888-RF2)dl-Of$#s8y z9DwrzfXq@G!1yO3;1QK}JLK_o8NS+9`S|)ezD~6K^LHyD(BDii_p;=zsMX+hNad?m zfO*W|i*4Msfzzo|r@f$8rZz%IGma*{tFIw_eY1g+mzP&b zUu zbI^1GAMnUtX|GO4;B65-3=!XDsIa|`!nae*Qag2@9g!mpFgv0Lfsc$BF(T+Mr*uX2 zq0DyS4(#}`ZVUdd;&z-a7{Te#p@V#Tb5RqL&Ub-7(`XH<$XN3f2Dj0Su7dstjaFMU zg0phv%Iic*p56e!rhxuEI=vy3<*Xb#XY01&(;Burr**oNjo?THE8pj7CHk&xEHB3J#U-R^vcrG(i>g6 zbP)gtX?5MYcI|rb`0?ZKY4mzm^c`r)8b%KU*)uK=WU$`A!AqZ92JxI;!IQ}4yE^@S zkIt6xGQ&VFM)*%3#2_N3g0DsAdKu>l4o9e00m!j70Gy6|aOgUic`1%ZJ*(mGpr@~{ z3vd?lquTd%x?c7KM;ZXoIs}>y!=}~OZH4?^gVpd$y2JSK4nL-SQKy^AL4hL;i4<8t zm8(La$@e|0>)VkAvs3Dg8#ms-R@=_oXZ!SEe`OprII>Uzhg? zUS&Rvke^TX*Y#olS_a|2>U6hq(BOywelN8Q1%ERL8%OtYj7tW-n3I^D`eCDEp$hFR zW2f!p&&wFwF{u}`)HBF+Wd=CFletslujII+KfBxg8a-}B-&g5>$F`2DQh^2r9ljTiv`n5dn*EGsH1Dz@mrh@H?DgbIwb3mF_~#Q5_jiDPSl z5%;ijFCIB^WH>+L5z%2?@~RkM#HO$40*IPj{CshtP7kIW7C0i9mGfK_ml%}vV5Zna z-TS?}1KLB(PW$w_V9Q}gjws+r^(;n=;;zsYV(<_)eDZ7Hh;-<3 z)iS`$G65qz*z{y1z=({18&6^Iy4ZYvkdcvb6l2E2s{_&P%$YMC_(Ec%mz+@R>9$h< zM!xrPL_fCt3SguzqAOx>L_5yE%P#!_#+p7n_$uR5yPiFJZasGFnB$x_9P5dgXVCQm zZB4)|2N=hRUpRUk!ov|_wc%<0lr@msX0(X4#-p;4wfI9#>7r@-_U+39n8~KLM9doG zPa=)VL(sc{NoUYB40{&Ce(BO63*dIkdn1?nfMhw%56K%QWem}<`5}MpgDBl%qMiQajaU!;eZ!%dIIQr?#?DgWXa&`7OkcxLDQlhIhJN3 zql5^0pK=zr-hJi6p$SA#)x?PtOLp$u=@=uZPcA7bk*Rtu?HxxCfKtsp6<{1^HkJ*M zrjDl?sX)CwPd*C=*Kxb8n0NAjBqqw5$!bfRwnW`3%8qy1!UHHWsE-F2(*c~YMCH<- zXjFu%LKvirc#DyVL#I@_k{`e-`w#>5IH7U$@i4#~ChG>wdE`A9Yhc8dm`9E%k<0gg zZwiQ@esvV*UjUS&ke<$(I*QbDX9M_2H=bzHV;(t{vGN}cI4pYz=VZFCvFK_FFrC%1 znx~EYf3M7V0VBHO7CEY;{D;W_oc*i;4E<257BuMohXyDYX*-#2RH({`N8WElJd{~F zySx)^}R6CFzdmZ diff --git a/app/src/main/res/layout/chat_room_detail_fragment.xml b/app/src/main/res/layout/chat_room_detail_fragment.xml index 100a0e23d..28b602fff 100644 --- a/app/src/main/res/layout/chat_room_detail_fragment.xml +++ b/app/src/main/res/layout/chat_room_detail_fragment.xml @@ -110,7 +110,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/chat_room_menu.xml b/app/src/main/res/menu/chat_room_menu.xml deleted file mode 100644 index a0e509e5e..000000000 --- a/app/src/main/res/menu/chat_room_menu.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/dimen.xml b/app/src/main/res/values/dimen.xml index 3ce9c972f..9344f15d7 100644 --- a/app/src/main/res/values/dimen.xml +++ b/app/src/main/res/values/dimen.xml @@ -26,7 +26,9 @@ 3dp 60dp 250dp + 250dp 50dp + 50dp 6.7dp 30dp 40dp