mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 11:28:06 +00:00
Renamed some layouts
This commit is contained in:
parent
8b9ceef6da
commit
7d6c50cf29
13 changed files with 36 additions and 20 deletions
|
|
@ -35,7 +35,7 @@ import org.linphone.core.tools.Log
|
|||
import org.linphone.databinding.ChatBubbleIncomingBinding
|
||||
import org.linphone.databinding.ChatBubbleOutgoingBinding
|
||||
import org.linphone.databinding.ChatConversationEventBinding
|
||||
import org.linphone.databinding.ChatConversationSecuredFirstEventBinding
|
||||
import org.linphone.databinding.ChatConversationE2eEncryptedFirstEventBinding
|
||||
import org.linphone.ui.main.chat.model.EventLogModel
|
||||
import org.linphone.ui.main.chat.model.EventModel
|
||||
import org.linphone.ui.main.chat.model.MessageModel
|
||||
|
|
@ -70,13 +70,19 @@ class ConversationEventAdapter :
|
|||
MutableLiveData<Event<MessageModel>>()
|
||||
}
|
||||
|
||||
private var isConversationSecured: Boolean = false
|
||||
|
||||
fun setIsConversationSecured(secured: Boolean) {
|
||||
isConversationSecured = secured
|
||||
}
|
||||
|
||||
override fun displayHeaderForPosition(position: Int): Boolean {
|
||||
// We only want to display it at top
|
||||
return position == 0
|
||||
}
|
||||
|
||||
override fun getHeaderViewForPosition(context: Context, position: Int): View {
|
||||
val binding = ChatConversationSecuredFirstEventBinding.inflate(LayoutInflater.from(context))
|
||||
val binding = ChatConversationE2eEncryptedFirstEventBinding.inflate(LayoutInflater.from(context))
|
||||
return binding.root
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import androidx.annotation.UiThread
|
|||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import org.linphone.databinding.ChatLongPressMenuBinding
|
||||
import org.linphone.databinding.ChatConversationLongPressMenuBinding
|
||||
|
||||
@UiThread
|
||||
class ConversationDialogFragment(
|
||||
|
|
@ -71,7 +71,7 @@ class ConversationDialogFragment(
|
|||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
val view = ChatLongPressMenuBinding.inflate(layoutInflater)
|
||||
val view = ChatConversationLongPressMenuBinding.inflate(layoutInflater)
|
||||
view.isMuted = isMuted
|
||||
view.isGroup = isGroup
|
||||
view.isReadOnly = isReadOnly
|
||||
|
|
|
|||
|
|
@ -314,7 +314,9 @@ open class ConversationFragment : SlidingPaneChildFragment() {
|
|||
if (e.action == MotionEvent.ACTION_UP) {
|
||||
if ((rv.layoutManager as LinearLayoutManager).findFirstCompletelyVisibleItemPosition() == 0) {
|
||||
if (e.y >= 0 && e.y <= headerItemDecoration.getDecorationHeight(0)) {
|
||||
showEndToEndEncryptionDetailsBottomSheet()
|
||||
if (viewModel.isEndToEndEncrypted.value == true) {
|
||||
showEndToEndEncryptionDetailsBottomSheet()
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
|
@ -504,6 +506,7 @@ open class ConversationFragment : SlidingPaneChildFragment() {
|
|||
}
|
||||
} else {
|
||||
sendMessageViewModel.configureChatRoom(viewModel.chatRoom)
|
||||
adapter.setIsConversationSecured(viewModel.isEndToEndEncrypted.value == true)
|
||||
|
||||
// Wait for chat room to be ready before trying to forward a message in it
|
||||
sharedViewModel.messageToForwardEvent.observe(viewLifecycleOwner) { event ->
|
||||
|
|
@ -585,6 +588,8 @@ open class ConversationFragment : SlidingPaneChildFragment() {
|
|||
}
|
||||
|
||||
viewModel.isEndToEndEncrypted.observe(viewLifecycleOwner) { encrypted ->
|
||||
adapter.setIsConversationSecured(encrypted)
|
||||
|
||||
if (encrypted) {
|
||||
binding.eventsList.addItemDecoration(headerItemDecoration)
|
||||
binding.eventsList.addOnItemTouchListener(listItemTouchListener)
|
||||
|
|
@ -700,7 +705,7 @@ open class ConversationFragment : SlidingPaneChildFragment() {
|
|||
}
|
||||
|
||||
binding.setWarningConversationDisabledClickListener {
|
||||
showUnsafeConversationDetailsBottomSheet()
|
||||
showUnsafeConversationDisabledDetailsBottomSheet()
|
||||
}
|
||||
|
||||
binding.searchField.setOnEditorActionListener { view, actionId, _ ->
|
||||
|
|
@ -1415,13 +1420,13 @@ open class ConversationFragment : SlidingPaneChildFragment() {
|
|||
bottomSheetDialog = e2eEncryptionDetailsBottomSheet
|
||||
}
|
||||
|
||||
private fun showUnsafeConversationDetailsBottomSheet() {
|
||||
val unsafeConversationDetailsBottomSheet = UnsafeConversationDetailsDialogFragment()
|
||||
unsafeConversationDetailsBottomSheet.show(
|
||||
private fun showUnsafeConversationDisabledDetailsBottomSheet() {
|
||||
val unsafeConversationDisabledDetailsBottomSheet = UnsafeConversationDisabledDetailsDialogFragment()
|
||||
unsafeConversationDisabledDetailsBottomSheet.show(
|
||||
requireActivity().supportFragmentManager,
|
||||
UnsafeConversationDetailsDialogFragment.TAG
|
||||
UnsafeConversationDisabledDetailsDialogFragment.TAG
|
||||
)
|
||||
bottomSheetDialog = unsafeConversationDetailsBottomSheet
|
||||
bottomSheetDialog = unsafeConversationDisabledDetailsBottomSheet
|
||||
}
|
||||
|
||||
private fun showOpenOrExportFileDialog(path: String, mime: String, bundle: Bundle) {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import androidx.annotation.UiThread
|
|||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import org.linphone.databinding.ChatConversationE2eDetailsBottomSheetBinding
|
||||
import org.linphone.databinding.ChatConversationE2eEncryptedDetailsBottomSheetBinding
|
||||
|
||||
@UiThread
|
||||
class EndToEndEncryptionDetailsDialogFragment(
|
||||
|
|
@ -62,7 +62,7 @@ class EndToEndEncryptionDetailsDialogFragment(
|
|||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
val view = ChatConversationE2eDetailsBottomSheetBinding.inflate(layoutInflater)
|
||||
val view = ChatConversationE2eEncryptedDetailsBottomSheetBinding.inflate(layoutInflater)
|
||||
return view.root
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,14 +29,14 @@ import androidx.annotation.UiThread
|
|||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import org.linphone.databinding.ChatConversationUnsafeDetailsBottomSheetBinding
|
||||
import org.linphone.databinding.ChatConversationUnsafeDisabledDetailsBottomSheetBinding
|
||||
|
||||
@UiThread
|
||||
class UnsafeConversationDetailsDialogFragment(
|
||||
class UnsafeConversationDisabledDetailsDialogFragment(
|
||||
private val onDismiss: (() -> Unit)? = null
|
||||
) : BottomSheetDialogFragment() {
|
||||
companion object {
|
||||
const val TAG = "UnsafeConversationDetailsDialogFragment"
|
||||
const val TAG = "UnsafeConversationDisabledDetailsDialogFragment"
|
||||
}
|
||||
|
||||
override fun onCancel(dialog: DialogInterface) {
|
||||
|
|
@ -62,7 +62,7 @@ class UnsafeConversationDetailsDialogFragment(
|
|||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
val view = ChatConversationUnsafeDetailsBottomSheetBinding.inflate(layoutInflater)
|
||||
val view = ChatConversationUnsafeDisabledDetailsBottomSheetBinding.inflate(layoutInflater)
|
||||
return view.root
|
||||
}
|
||||
}
|
||||
|
|
@ -60,6 +60,8 @@ class ConversationModel
|
|||
|
||||
val isEncrypted = chatRoom.hasCapability(Capabilities.Encrypted.toInt())
|
||||
|
||||
val isEncryptionAvailable = LinphoneUtils.isEndToEndEncryptedChatAvailable(chatRoom.core)
|
||||
|
||||
val isReadOnly = MutableLiveData<Boolean>()
|
||||
|
||||
val subject = MutableLiveData<String>()
|
||||
|
|
|
|||
|
|
@ -72,6 +72,8 @@ class ConversationViewModel
|
|||
|
||||
val isEndToEndEncrypted = MutableLiveData<Boolean>()
|
||||
|
||||
val isEndToEndEncryptionAvailable = MutableLiveData<Boolean>()
|
||||
|
||||
val isGroup = MutableLiveData<Boolean>()
|
||||
|
||||
val subject = MutableLiveData<String>()
|
||||
|
|
@ -313,7 +315,8 @@ class ConversationViewModel
|
|||
}
|
||||
|
||||
init {
|
||||
coreContext.postOnCoreThread {
|
||||
coreContext.postOnCoreThread { core ->
|
||||
isEndToEndEncryptionAvailable.postValue(LinphoneUtils.isEndToEndEncryptedChatAvailable(core))
|
||||
coreContext.contactsManager.addListener(contactsListener)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -289,7 +289,7 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="@{viewModel.isEmpty && viewModel.isEndToEndEncrypted ? View.VISIBLE : View.GONE}"
|
||||
layout="@layout/chat_conversation_secured_first_event"
|
||||
layout="@layout/chat_conversation_e2e_encrypted_first_event"
|
||||
app:layout_constraintTop_toTopOf="@id/events_list"
|
||||
app:layout_constraintStart_toStartOf="@id/events_list"
|
||||
app:layout_constraintEnd_toEndOf="@id/events_list" />
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@
|
|||
android:layout_marginEnd="10dp"
|
||||
android:src="@drawable/lock_simple_open_bold"
|
||||
android:contentDescription="@string/content_description_chat_unsecured"
|
||||
android:visibility="@{model.isEncrypted ? View.GONE : View.VISIBLE}"
|
||||
android:visibility="@{model.isEncrypted || !model.isEncryptionAvailable ? View.GONE : View.VISIBLE}"
|
||||
app:layout_constraintTop_toBottomOf="@id/date_time"
|
||||
app:layout_constraintBottom_toTopOf="@id/separator"
|
||||
app:layout_constraintEnd_toStartOf="@id/ephemeral"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue