Fixed back navigation in some scenarios
This commit is contained in:
parent
4cb9b62418
commit
8e5a191155
23 changed files with 253 additions and 46 deletions
|
@ -43,8 +43,7 @@ import org.linphone.activities.main.dialer.fragments.DialerFragment
|
|||
import org.linphone.activities.main.fragments.TabsFragment
|
||||
import org.linphone.activities.main.history.fragments.DetailCallLogFragment
|
||||
import org.linphone.activities.main.history.fragments.MasterCallLogsFragment
|
||||
import org.linphone.activities.main.settings.fragments.AccountSettingsFragment
|
||||
import org.linphone.activities.main.settings.fragments.SettingsFragment
|
||||
import org.linphone.activities.main.settings.fragments.*
|
||||
import org.linphone.activities.main.sidemenu.fragments.SideMenuFragment
|
||||
import org.linphone.contact.NativeContact
|
||||
import org.linphone.core.Address
|
||||
|
@ -411,6 +410,14 @@ internal fun DetailChatRoomFragment.navigateToAudioFileViewer(secure: Boolean) {
|
|||
)
|
||||
}
|
||||
|
||||
internal fun DetailChatRoomFragment.navigateToEmptyChatRoom() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptyChatFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun ChatRoomCreationFragment.navigateToGroupInfo() {
|
||||
if (findNavController().currentDestination?.id == R.id.chatRoomCreationFragment) {
|
||||
findNavController().navigate(
|
||||
|
@ -426,11 +433,19 @@ internal fun ChatRoomCreationFragment.navigateToChatRoom(args: Bundle) {
|
|||
findNavController().navigate(
|
||||
R.id.action_chatRoomCreationFragment_to_detailChatRoomFragment,
|
||||
args,
|
||||
getRightToLeftAnimationNavOptions(R.id.emptyFragment, true)
|
||||
getRightToLeftAnimationNavOptions(R.id.emptyChatFragment, true)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
internal fun ChatRoomCreationFragment.navigateToEmptyChatRoom() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptyChatFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun GroupInfoFragment.navigateToChatRoomCreation(args: Bundle?) {
|
||||
if (findNavController().currentDestination?.id == R.id.groupInfoFragment) {
|
||||
findNavController().navigate(R.id.action_groupInfoFragment_to_chatRoomCreationFragment,
|
||||
|
@ -445,7 +460,7 @@ internal fun GroupInfoFragment.navigateToChatRoom(args: Bundle?) {
|
|||
findNavController().navigate(
|
||||
R.id.action_groupInfoFragment_to_detailChatRoomFragment,
|
||||
args,
|
||||
getRightToLeftAnimationNavOptions(R.id.emptyFragment, true)
|
||||
getRightToLeftAnimationNavOptions(R.id.emptyChatFragment, true)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -472,7 +487,7 @@ internal fun MasterContactsFragment.navigateToContactEditor(sipUriToAdd: String?
|
|||
navHostFragment.navController.navigate(
|
||||
R.id.action_global_contactEditorFragment,
|
||||
bundle,
|
||||
popupTo()
|
||||
popupTo(R.id.emptyContactFragment, true)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -499,6 +514,14 @@ internal fun ContactEditorFragment.navigateToContact(contact: NativeContact) {
|
|||
)
|
||||
}
|
||||
|
||||
internal fun ContactEditorFragment.navigateToEmptyContact() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptyContactFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun DetailContactFragment.navigateToChatRoom(args: Bundle?) {
|
||||
findMasterNavController().navigate(
|
||||
R.id.action_global_masterChatRoomsFragment,
|
||||
|
@ -525,6 +548,14 @@ internal fun DetailContactFragment.navigateToContactEditor() {
|
|||
}
|
||||
}
|
||||
|
||||
internal fun DetailContactFragment.navigateToEmptyContact() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptyContactFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
/* History related */
|
||||
|
||||
internal fun MasterCallLogsFragment.navigateToCallHistory() {
|
||||
|
@ -534,7 +565,7 @@ internal fun MasterCallLogsFragment.navigateToCallHistory() {
|
|||
navHostFragment.navController.navigate(
|
||||
R.id.action_global_detailCallLogFragment,
|
||||
null,
|
||||
popupTo(R.id.emptyFragment, true)
|
||||
popupTo(R.id.emptyCallHistoryFragment, true)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -546,7 +577,7 @@ internal fun MasterCallLogsFragment.clearDisplayedCallHistory() {
|
|||
navHostFragment.navController.navigate(
|
||||
R.id.action_global_emptyFragment,
|
||||
null,
|
||||
popupTo(R.id.emptyFragment, true)
|
||||
popupTo(R.id.emptyCallHistoryFragment, true)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -575,19 +606,33 @@ internal fun DetailCallLogFragment.navigateToFriend(friendAddress: Address) {
|
|||
}
|
||||
|
||||
internal fun DetailCallLogFragment.navigateToChatRoom(args: Bundle?) {
|
||||
if (findNavController().currentDestination?.id == R.id.detailCallLogFragment) {
|
||||
findMasterNavController().navigate(
|
||||
R.id.action_global_masterChatRoomsFragment,
|
||||
args,
|
||||
getRightBottomToLeftTopAnimationNavOptions()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
internal fun DetailCallLogFragment.navigateToDialer(args: Bundle?) {
|
||||
if (findNavController().currentDestination?.id == R.id.detailCallLogFragment) {
|
||||
findMasterNavController().navigate(
|
||||
R.id.action_global_dialerFragment,
|
||||
args,
|
||||
getRightToLeftAnimationNavOptions()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
internal fun DetailCallLogFragment.navigateToEmptyCallHistory() {
|
||||
if (findNavController().currentDestination?.id == R.id.detailCallLogFragment) {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptyFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/* Settings related */
|
||||
|
@ -721,6 +766,78 @@ internal fun PhoneAccountLinkingFragment.navigateToPhoneAccountValidation(args:
|
|||
}
|
||||
}
|
||||
|
||||
internal fun AccountSettingsFragment.navigateToEmptySetting() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptySettingsFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun AdvancedSettingsFragment.navigateToEmptySetting() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptySettingsFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun AudioSettingsFragment.navigateToEmptySetting() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptySettingsFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun CallSettingsFragment.navigateToEmptySetting() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptySettingsFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun ChatSettingsFragment.navigateToEmptySetting() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptySettingsFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun ContactsSettingsFragment.navigateToEmptySetting() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptySettingsFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun NetworkSettingsFragment.navigateToEmptySetting() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptySettingsFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun TunnelSettingsFragment.navigateToEmptySetting() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptySettingsFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
internal fun VideoSettingsFragment.navigateToEmptySetting() {
|
||||
findNavController().navigate(
|
||||
R.id.action_global_emptySettingsFragment,
|
||||
null,
|
||||
popupTo()
|
||||
)
|
||||
}
|
||||
|
||||
/* Side menu related */
|
||||
|
||||
internal fun SideMenuFragment.navigateToAccountSettings(identity: String) {
|
||||
|
|
|
@ -33,6 +33,7 @@ import org.linphone.activities.main.chat.viewmodels.ChatRoomCreationViewModel
|
|||
import org.linphone.activities.main.fragments.SecureFragment
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToChatRoom
|
||||
import org.linphone.activities.navigateToEmptyChatRoom
|
||||
import org.linphone.activities.navigateToGroupInfo
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.databinding.ChatRoomCreationFragmentBinding
|
||||
|
@ -149,7 +150,11 @@ class ChatRoomCreationFragment : SecureFragment<ChatRoomCreationFragmentBinding>
|
|||
|
||||
override fun goBack() {
|
||||
if (!findNavController().popBackStack()) {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptyChatRoom()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ class DetailChatRoomFragment : MasterFragment<ChatRoomDetailFragmentBinding, Cha
|
|||
if (chatRoom == null) {
|
||||
Log.e("[Chat Room] Chat room is null, aborting!")
|
||||
// (activity as MainActivity).showSnackBar(R.string.error)
|
||||
findNavController().navigateUp()
|
||||
goBack()
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -476,7 +476,11 @@ class DetailChatRoomFragment : MasterFragment<ChatRoomDetailFragmentBinding, Cha
|
|||
|
||||
override fun goBack() {
|
||||
if (!findNavController().popBackStack()) {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptyChatRoom()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -101,6 +101,9 @@ class MasterChatRoomsFragment : MasterFragment<ChatRoomMasterFragmentBinding, Ch
|
|||
sharedViewModel.layoutChangedEvent.observe(viewLifecycleOwner, {
|
||||
it.consume {
|
||||
sharedViewModel.canSlidingPaneBeClosed.value = binding.slidingPane.isSlideable
|
||||
if (binding.slidingPane.isSlideable) {
|
||||
binding.slidingPane.closePane()
|
||||
}
|
||||
}
|
||||
})
|
||||
binding.slidingPane.lockMode = SlidingPaneLayout.LOCK_MODE_LOCKED
|
||||
|
|
|
@ -40,9 +40,11 @@ import org.linphone.activities.main.contact.data.NumberOrAddressEditorData
|
|||
import org.linphone.activities.main.contact.viewmodels.*
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToContact
|
||||
import org.linphone.activities.navigateToEmptyContact
|
||||
import org.linphone.contact.NativeContact
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.databinding.ContactEditorFragmentBinding
|
||||
import org.linphone.utils.Event
|
||||
import org.linphone.utils.FileUtils
|
||||
import org.linphone.utils.ImageUtils
|
||||
import org.linphone.utils.PermissionHelper
|
||||
|
@ -107,6 +109,16 @@ class ContactEditorFragment : GenericFragment<ContactEditorFragmentBinding>(), S
|
|||
}
|
||||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (!findNavController().popBackStack()) {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptyContact()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSyncAccountClicked(name: String?, type: String?) {
|
||||
Log.i("[Contact Editor] Using account $name / $type")
|
||||
viewModel.syncAccountName = name
|
||||
|
@ -126,7 +138,7 @@ class ContactEditorFragment : GenericFragment<ContactEditorFragmentBinding>(), S
|
|||
} else {
|
||||
Log.w("[Contact Editor] WRITE_CONTACTS permission denied")
|
||||
(requireActivity() as MainActivity).showSnackBar(R.string.contact_editor_write_permission_denied)
|
||||
findNavController().popBackStack()
|
||||
goBack()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -149,7 +161,7 @@ class ContactEditorFragment : GenericFragment<ContactEditorFragmentBinding>(), S
|
|||
Log.i("[Contact Editor] Displaying contact $savedContact")
|
||||
navigateToContact(savedContact)
|
||||
} else {
|
||||
findNavController().popBackStack()
|
||||
goBack()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -25,10 +25,9 @@ import android.net.Uri
|
|||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||
import org.linphone.R
|
||||
import org.linphone.activities.GenericFragment
|
||||
import org.linphone.activities.*
|
||||
import org.linphone.activities.main.*
|
||||
import org.linphone.activities.main.contact.viewmodels.ContactViewModel
|
||||
import org.linphone.activities.main.contact.viewmodels.ContactViewModelFactory
|
||||
|
@ -69,7 +68,7 @@ class DetailContactFragment : GenericFragment<ContactDetailFragmentBinding>() {
|
|||
if (contact == null) {
|
||||
Log.e("[Contact] Contact is null, aborting!")
|
||||
// (activity as MainActivity).showSnackBar(R.string.error)
|
||||
findNavController().navigateUp()
|
||||
goBack()
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -129,7 +128,11 @@ class DetailContactFragment : GenericFragment<ContactDetailFragmentBinding>() {
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptyContact()
|
||||
}
|
||||
}
|
||||
|
||||
private fun confirmContactRemoval() {
|
||||
|
@ -143,7 +146,7 @@ class DetailContactFragment : GenericFragment<ContactDetailFragmentBinding>() {
|
|||
dialogViewModel.showDeleteButton({
|
||||
viewModel.deleteContact()
|
||||
dialog.dismiss()
|
||||
findNavController().navigateUp()
|
||||
goBack()
|
||||
}, getString(R.string.dialog_delete))
|
||||
|
||||
dialog.show()
|
||||
|
|
|
@ -89,6 +89,9 @@ class MasterContactsFragment : MasterFragment<ContactMasterFragmentBinding, Cont
|
|||
sharedViewModel.layoutChangedEvent.observe(viewLifecycleOwner, {
|
||||
it.consume {
|
||||
sharedViewModel.canSlidingPaneBeClosed.value = binding.slidingPane.isSlideable
|
||||
if (binding.slidingPane.isSlideable) {
|
||||
binding.slidingPane.closePane()
|
||||
}
|
||||
}
|
||||
})
|
||||
binding.slidingPane.lockMode = SlidingPaneLayout.LOCK_MODE_LOCKED
|
||||
|
|
|
@ -131,6 +131,10 @@ class DetailCallLogFragment : GenericFragment<HistoryDetailFragmentBinding>() {
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptyCallHistory()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -92,6 +92,9 @@ class MasterCallLogsFragment : MasterFragment<HistoryMasterFragmentBinding, Call
|
|||
sharedViewModel.layoutChangedEvent.observe(viewLifecycleOwner, {
|
||||
it.consume {
|
||||
sharedViewModel.canSlidingPaneBeClosed.value = binding.slidingPane.isSlideable
|
||||
if (binding.slidingPane.isSlideable) {
|
||||
binding.slidingPane.closePane()
|
||||
}
|
||||
}
|
||||
})
|
||||
binding.slidingPane.lockMode = SlidingPaneLayout.LOCK_MODE_LOCKED
|
||||
|
|
|
@ -27,6 +27,7 @@ import org.linphone.activities.GenericFragment
|
|||
import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModel
|
||||
import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModelFactory
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToEmptySetting
|
||||
import org.linphone.activities.navigateToPhoneLinking
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.databinding.SettingsAccountFragmentBinding
|
||||
|
@ -92,6 +93,10 @@ class AccountSettingsFragment : GenericFragment<SettingsAccountFragmentBinding>(
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptySetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ import org.linphone.activities.GenericFragment
|
|||
import org.linphone.activities.main.MainActivity
|
||||
import org.linphone.activities.main.settings.viewmodels.AdvancedSettingsViewModel
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToEmptySetting
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.core.tools.compatibility.DeviceUtils
|
||||
import org.linphone.databinding.SettingsAdvancedFragmentBinding
|
||||
|
@ -134,6 +135,10 @@ class AdvancedSettingsFragment : GenericFragment<SettingsAdvancedFragmentBinding
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptySetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ import org.linphone.activities.GenericFragment
|
|||
import org.linphone.activities.main.settings.SettingListenerStub
|
||||
import org.linphone.activities.main.settings.viewmodels.AudioSettingsViewModel
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToEmptySetting
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.databinding.SettingsAudioFragmentBinding
|
||||
import org.linphone.utils.Event
|
||||
|
@ -118,6 +119,10 @@ class AudioSettingsFragment : GenericFragment<SettingsAudioFragmentBinding>() {
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptySetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ import org.linphone.R
|
|||
import org.linphone.activities.GenericFragment
|
||||
import org.linphone.activities.main.settings.viewmodels.CallSettingsViewModel
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToEmptySetting
|
||||
import org.linphone.compatibility.Compatibility
|
||||
import org.linphone.databinding.SettingsCallFragmentBinding
|
||||
import org.linphone.mediastream.Version
|
||||
|
@ -92,6 +93,10 @@ class CallSettingsFragment : GenericFragment<SettingsCallFragmentBinding>() {
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptySetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ import org.linphone.R
|
|||
import org.linphone.activities.GenericFragment
|
||||
import org.linphone.activities.main.settings.viewmodels.ChatSettingsViewModel
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToEmptySetting
|
||||
import org.linphone.compatibility.Compatibility
|
||||
import org.linphone.databinding.SettingsChatFragmentBinding
|
||||
import org.linphone.mediastream.Version
|
||||
|
@ -84,6 +85,10 @@ class ChatSettingsFragment : GenericFragment<SettingsChatFragmentBinding>() {
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptySetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ import org.linphone.R
|
|||
import org.linphone.activities.GenericFragment
|
||||
import org.linphone.activities.main.settings.viewmodels.ContactsSettingsViewModel
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToEmptySetting
|
||||
import org.linphone.compatibility.Compatibility
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.databinding.SettingsContactsFragmentBinding
|
||||
|
@ -113,6 +114,10 @@ class ContactsSettingsFragment : GenericFragment<SettingsContactsFragmentBinding
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptySetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import org.linphone.R
|
|||
import org.linphone.activities.GenericFragment
|
||||
import org.linphone.activities.main.settings.viewmodels.NetworkSettingsViewModel
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToEmptySetting
|
||||
import org.linphone.databinding.SettingsNetworkFragmentBinding
|
||||
import org.linphone.utils.Event
|
||||
|
||||
|
@ -52,6 +53,10 @@ class NetworkSettingsFragment : GenericFragment<SettingsNetworkFragmentBinding>(
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptySetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,6 +66,9 @@ class SettingsFragment : SecureFragment<SettingsFragmentBinding>() {
|
|||
sharedViewModel.layoutChangedEvent.observe(viewLifecycleOwner, {
|
||||
it.consume {
|
||||
sharedViewModel.canSlidingPaneBeClosed.value = binding.slidingPane.isSlideable
|
||||
if (binding.slidingPane.isSlideable) {
|
||||
binding.slidingPane.closePane()
|
||||
}
|
||||
}
|
||||
})
|
||||
binding.slidingPane.lockMode = SlidingPaneLayout.LOCK_MODE_LOCKED
|
||||
|
|
|
@ -26,6 +26,7 @@ import org.linphone.R
|
|||
import org.linphone.activities.GenericFragment
|
||||
import org.linphone.activities.main.settings.viewmodels.TunnelSettingsViewModel
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToEmptySetting
|
||||
import org.linphone.databinding.SettingsTunnelFragmentBinding
|
||||
import org.linphone.utils.Event
|
||||
|
||||
|
@ -52,6 +53,10 @@ class TunnelSettingsFragment : GenericFragment<SettingsTunnelFragmentBinding>()
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptySetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ import org.linphone.activities.GenericFragment
|
|||
import org.linphone.activities.main.settings.SettingListenerStub
|
||||
import org.linphone.activities.main.settings.viewmodels.VideoSettingsViewModel
|
||||
import org.linphone.activities.main.viewmodels.SharedMainViewModel
|
||||
import org.linphone.activities.navigateToEmptySetting
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.databinding.SettingsVideoFragmentBinding
|
||||
import org.linphone.utils.Event
|
||||
|
@ -108,6 +109,10 @@ class VideoSettingsFragment : GenericFragment<SettingsVideoFragmentBinding>() {
|
|||
}
|
||||
|
||||
override fun goBack() {
|
||||
if (sharedViewModel.canSlidingPaneBeClosed.value == true) {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
} else {
|
||||
navigateToEmptySetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
android:id="@+id/emptyChatFragment"
|
||||
android:name="org.linphone.activities.main.fragments.EmptyFragment"
|
||||
tools:layout="@layout/empty_fragment"
|
||||
android:label="EmptyFragment" />
|
||||
android:label="EmptyChatFragment" />
|
||||
|
||||
<action android:id="@+id/action_global_emptyChatFragment"
|
||||
app:destination="@id/emptyChatFragment" />
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
android:id="@+id/emptyContactFragment"
|
||||
android:name="org.linphone.activities.main.fragments.EmptyFragment"
|
||||
tools:layout="@layout/empty_fragment"
|
||||
android:label="EmptyFragment" />
|
||||
android:label="EmptyContactFragment" />
|
||||
|
||||
<action android:id="@+id/action_global_emptyContactFragment"
|
||||
app:destination="@id/emptyContactFragment" />
|
||||
|
|
|
@ -3,16 +3,16 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/history_nav_graph.xml"
|
||||
app:startDestination="@id/emptyFragment">
|
||||
app:startDestination="@id/emptyCallHistoryFragment">
|
||||
|
||||
<fragment
|
||||
android:id="@+id/emptyFragment"
|
||||
android:id="@+id/emptyCallHistoryFragment"
|
||||
android:name="org.linphone.activities.main.fragments.EmptyFragment"
|
||||
tools:layout="@layout/empty_fragment"
|
||||
android:label="EmptyFragment" />
|
||||
android:label="EmptyCallHistoryFragment" />
|
||||
|
||||
<action android:id="@+id/action_global_emptyFragment"
|
||||
app:destination="@id/emptyFragment" />
|
||||
app:destination="@id/emptyCallHistoryFragment" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/detailCallLogFragment"
|
||||
|
|
|
@ -3,12 +3,17 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/settings_nav_graph.xml"
|
||||
app:startDestination="@id/emptyFragment">
|
||||
app:startDestination="@id/emptySettingsFragment">
|
||||
|
||||
<fragment
|
||||
android:id="@+id/emptyFragment"
|
||||
android:id="@+id/emptySettingsFragment"
|
||||
android:name="org.linphone.activities.main.fragments.EmptyFragment"
|
||||
tools:layout="@layout/empty_fragment"
|
||||
android:label="EmptyFragment"/>
|
||||
android:label="EmptySettingsFragment" />
|
||||
|
||||
<action android:id="@+id/action_global_emptySettingsFragment"
|
||||
app:destination="@id/emptySettingsFragment" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/accountSettingsFragment"
|
||||
android:name="org.linphone.activities.main.settings.fragments.AccountSettingsFragment"
|
||||
|
|
Loading…
Reference in a new issue