mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 11:28:06 +00:00
Improved back nav
This commit is contained in:
parent
643a2be9a2
commit
17ef0a5ca7
17 changed files with 62 additions and 61 deletions
|
|
@ -40,7 +40,6 @@
|
|||
|
||||
<activity
|
||||
android:name=".ui.main.MainActivity"
|
||||
android:enableOnBackInvokedCallback="true"
|
||||
android:windowSoftInputMode="adjustResize"
|
||||
android:exported="true"
|
||||
android:label="@string/app_name">
|
||||
|
|
@ -52,22 +51,18 @@
|
|||
|
||||
</activity>
|
||||
|
||||
<!-- Disable enableOnBackInvokedCallback so back gesture will go back in viewPager -->
|
||||
<activity
|
||||
android:name=".ui.welcome.WelcomeActivity"
|
||||
android:enableOnBackInvokedCallback="false"
|
||||
android:launchMode="singleTask"
|
||||
android:resizeableActivity="true" />
|
||||
|
||||
<activity
|
||||
android:name=".ui.assistant.AssistantActivity"
|
||||
android:enableOnBackInvokedCallback="true"
|
||||
android:launchMode="singleTask"
|
||||
android:resizeableActivity="true" />
|
||||
|
||||
<activity
|
||||
android:name=".ui.voip.VoipActivity"
|
||||
android:enableOnBackInvokedCallback="true"
|
||||
android:launchMode="singleTask"
|
||||
android:turnScreenOn="true"
|
||||
android:showWhenLocked="true"
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.navGraphViewModels
|
||||
|
|
@ -38,11 +39,10 @@ import org.linphone.core.tools.Log
|
|||
import org.linphone.databinding.AssistantLoginFragmentBinding
|
||||
import org.linphone.ui.assistant.AssistantActivity
|
||||
import org.linphone.ui.assistant.viewmodel.AccountLoginViewModel
|
||||
import org.linphone.ui.main.fragment.GenericFragment
|
||||
import org.linphone.utils.PhoneNumberUtils
|
||||
|
||||
@UiThread
|
||||
class LoginFragment : GenericFragment() {
|
||||
class LoginFragment : Fragment() {
|
||||
companion object {
|
||||
private const val TAG = "[Login Fragment]"
|
||||
}
|
||||
|
|
@ -62,10 +62,6 @@ class LoginFragment : GenericFragment() {
|
|||
return binding.root
|
||||
}
|
||||
|
||||
override fun goBack() {
|
||||
requireActivity().finish()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
|
|
@ -142,4 +138,8 @@ class LoginFragment : GenericFragment() {
|
|||
)
|
||||
requireActivity().window.navigationBarColor = white
|
||||
}
|
||||
|
||||
private fun goBack() {
|
||||
requireActivity().finish()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import android.view.ViewGroup
|
|||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.navGraphViewModels
|
||||
import org.linphone.LinphoneApplication.Companion.coreContext
|
||||
|
|
@ -36,10 +37,9 @@ import org.linphone.core.tools.Log
|
|||
import org.linphone.databinding.AssistantQrCodeScannerFragmentBinding
|
||||
import org.linphone.ui.assistant.AssistantActivity
|
||||
import org.linphone.ui.assistant.viewmodel.QrCodeViewModel
|
||||
import org.linphone.ui.main.fragment.GenericFragment
|
||||
|
||||
@UiThread
|
||||
class QrCodeScannerFragment : GenericFragment() {
|
||||
class QrCodeScannerFragment : Fragment() {
|
||||
companion object {
|
||||
private const val TAG = "[Qr Code Scanner Fragment]"
|
||||
}
|
||||
|
|
@ -71,10 +71,6 @@ class QrCodeScannerFragment : GenericFragment() {
|
|||
return binding.root
|
||||
}
|
||||
|
||||
override fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
|
|
@ -133,6 +129,10 @@ class QrCodeScannerFragment : GenericFragment() {
|
|||
super.onPause()
|
||||
}
|
||||
|
||||
private fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
|
||||
private fun isCameraPermissionGranted(): Boolean {
|
||||
val granted = ContextCompat.checkSelfPermission(
|
||||
requireContext(),
|
||||
|
|
|
|||
|
|
@ -26,16 +26,16 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.navGraphViewModels
|
||||
import org.linphone.R
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.databinding.AssistantRegisterConfirmSmsCodeFragmentBinding
|
||||
import org.linphone.ui.assistant.viewmodel.AccountCreationViewModel
|
||||
import org.linphone.ui.main.fragment.GenericFragment
|
||||
|
||||
@UiThread
|
||||
class RegisterCodeConfirmationFragment : GenericFragment() {
|
||||
class RegisterCodeConfirmationFragment : Fragment() {
|
||||
companion object {
|
||||
private const val TAG = "[Register Code Confirmation Fragment]"
|
||||
}
|
||||
|
|
@ -55,10 +55,6 @@ class RegisterCodeConfirmationFragment : GenericFragment() {
|
|||
return binding.root
|
||||
}
|
||||
|
||||
override fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
|
|
@ -97,4 +93,8 @@ class RegisterCodeConfirmationFragment : GenericFragment() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.navGraphViewModels
|
||||
|
|
@ -39,12 +40,11 @@ import org.linphone.core.tools.Log
|
|||
import org.linphone.databinding.AssistantRegisterFragmentBinding
|
||||
import org.linphone.ui.assistant.model.ConfirmPhoneNumberDialogModel
|
||||
import org.linphone.ui.assistant.viewmodel.AccountCreationViewModel
|
||||
import org.linphone.ui.main.fragment.GenericFragment
|
||||
import org.linphone.utils.DialogUtils
|
||||
import org.linphone.utils.PhoneNumberUtils
|
||||
|
||||
@UiThread
|
||||
class RegisterFragment : GenericFragment() {
|
||||
class RegisterFragment : Fragment() {
|
||||
companion object {
|
||||
private const val TAG = "[Register Fragment]"
|
||||
}
|
||||
|
|
@ -64,10 +64,6 @@ class RegisterFragment : GenericFragment() {
|
|||
return binding.root
|
||||
}
|
||||
|
||||
override fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
|
|
@ -143,6 +139,10 @@ class RegisterFragment : GenericFragment() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
|
||||
private fun showPhoneNumberConfirmationDialog(number: String) {
|
||||
val model = ConfirmPhoneNumberDialogModel(number)
|
||||
val dialog = DialogUtils.getAccountCreationPhoneNumberConfirmationDialog(
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import android.view.ViewGroup
|
|||
import android.widget.AdapterView
|
||||
import android.widget.ArrayAdapter
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.navGraphViewModels
|
||||
|
|
@ -37,11 +38,10 @@ import org.linphone.core.tools.Log
|
|||
import org.linphone.databinding.AssistantThirdPartySipAccountLoginFragmentBinding
|
||||
import org.linphone.ui.assistant.AssistantActivity
|
||||
import org.linphone.ui.assistant.viewmodel.ThirdPartySipAccountLoginViewModel
|
||||
import org.linphone.ui.main.fragment.GenericFragment
|
||||
import org.linphone.utils.PhoneNumberUtils
|
||||
|
||||
@UiThread
|
||||
class ThirdPartySipAccountLoginFragment : GenericFragment() {
|
||||
class ThirdPartySipAccountLoginFragment : Fragment() {
|
||||
companion object {
|
||||
private const val TAG = "[Third Party SIP Account Login Fragment]"
|
||||
}
|
||||
|
|
@ -74,10 +74,6 @@ class ThirdPartySipAccountLoginFragment : GenericFragment() {
|
|||
return binding.root
|
||||
}
|
||||
|
||||
override fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
|
|
@ -128,4 +124,8 @@ class ThirdPartySipAccountLoginFragment : GenericFragment() {
|
|||
viewModel.internationalPrefix.postValue(prefix)
|
||||
}
|
||||
}
|
||||
|
||||
private fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,13 +26,13 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.databinding.AssistantThirdPartySipAccountWarningFragmentBinding
|
||||
import org.linphone.ui.main.fragment.GenericFragment
|
||||
|
||||
@UiThread
|
||||
class ThirdPartySipAccountWarningFragment : GenericFragment() {
|
||||
class ThirdPartySipAccountWarningFragment : Fragment() {
|
||||
companion object {
|
||||
private const val TAG = "[Third Party SIP Account Warning Fragment]"
|
||||
}
|
||||
|
|
@ -48,10 +48,6 @@ class ThirdPartySipAccountWarningFragment : GenericFragment() {
|
|||
return binding.root
|
||||
}
|
||||
|
||||
override fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
|
|
@ -81,4 +77,8 @@ class ThirdPartySipAccountWarningFragment : GenericFragment() {
|
|||
findNavController().navigate(action)
|
||||
}
|
||||
}
|
||||
|
||||
private fun goBack() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ class ContactsListFragment : GenericFragment() {
|
|||
"$TAG Default account changed, updating avatar in top bar & refreshing contacts list"
|
||||
)
|
||||
listViewModel.updateDefaultAccount()
|
||||
listViewModel.applyFilter()
|
||||
listViewModel.applyCurrentDefaultAccountFilter()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -110,6 +110,16 @@ class ContactsListViewModel @UiThread constructor() : AbstractTopBarViewModel()
|
|||
super.onCleared()
|
||||
}
|
||||
|
||||
@UiThread
|
||||
fun applyCurrentDefaultAccountFilter() {
|
||||
coreContext.postOnCoreThread { core ->
|
||||
val defaultAccount = core.defaultAccount
|
||||
limitSearchToLinphoneAccounts = defaultAccount?.isInSecureMode() ?: false
|
||||
}
|
||||
|
||||
applyFilter(currentFilter)
|
||||
}
|
||||
|
||||
@UiThread
|
||||
fun toggleContactsFilter() {
|
||||
limitSearchToLinphoneAccounts = !limitSearchToLinphoneAccounts
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ class DrawerMenuFragment : GenericFragment() {
|
|||
|
||||
viewModel.startAssistantEvent.observe(viewLifecycleOwner) {
|
||||
it.consume {
|
||||
startActivity(Intent(requireContext(), AssistantActivity::class.java))
|
||||
startActivity(Intent(requireActivity(), AssistantActivity::class.java))
|
||||
(requireActivity() as MainActivity).closeDrawerMenu()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,11 +27,10 @@ import android.view.ViewGroup
|
|||
import androidx.annotation.UiThread
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import org.linphone.databinding.VoipIncomingCallFragmentBinding
|
||||
import org.linphone.ui.main.fragment.GenericFragment
|
||||
import org.linphone.ui.voip.viewmodel.CurrentCallViewModel
|
||||
|
||||
@UiThread
|
||||
class IncomingCallFragment : GenericFragment() {
|
||||
class IncomingCallFragment : GenericCallFragment() {
|
||||
private lateinit var binding: VoipIncomingCallFragmentBinding
|
||||
|
||||
private lateinit var callViewModel: CurrentCallViewModel
|
||||
|
|
|
|||
|
|
@ -27,11 +27,10 @@ import android.view.ViewGroup
|
|||
import androidx.annotation.UiThread
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import org.linphone.databinding.VoipOutgoingCallFragmentBinding
|
||||
import org.linphone.ui.main.fragment.GenericFragment
|
||||
import org.linphone.ui.voip.viewmodel.CurrentCallViewModel
|
||||
|
||||
@UiThread
|
||||
class OutgoingCallFragment : GenericFragment() {
|
||||
class OutgoingCallFragment : GenericCallFragment() {
|
||||
private lateinit var binding: VoipOutgoingCallFragmentBinding
|
||||
|
||||
private lateinit var callViewModel: CurrentCallViewModel
|
||||
|
|
|
|||
|
|
@ -50,14 +50,6 @@ class WelcomeActivity : AppCompatActivity() {
|
|||
|
||||
private val pageChangedCallback = PageChangedCallback()
|
||||
|
||||
override fun onBackPressed() {
|
||||
if (viewPager.currentItem == 0) {
|
||||
super.onBackPressed()
|
||||
} else {
|
||||
viewPager.currentItem = viewPager.currentItem - 1
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
WindowCompat.setDecorFitsSystemWindows(window, true)
|
||||
super.onCreate(savedInstanceState)
|
||||
|
|
|
|||
|
|
@ -23,9 +23,11 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.fragment.app.Fragment
|
||||
import org.linphone.R
|
||||
|
||||
@UiThread
|
||||
class WelcomePage1Fragment : Fragment() {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
|
|
|
|||
|
|
@ -23,9 +23,11 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.fragment.app.Fragment
|
||||
import org.linphone.R
|
||||
|
||||
@UiThread
|
||||
class WelcomePage2Fragment : Fragment() {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
|
|
|
|||
|
|
@ -23,9 +23,11 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.UiThread
|
||||
import androidx.fragment.app.Fragment
|
||||
import org.linphone.R
|
||||
|
||||
@UiThread
|
||||
class WelcomePage3Fragment : Fragment() {
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
|
|
|
|||
|
|
@ -69,9 +69,9 @@
|
|||
<action
|
||||
android:id="@+id/action_contactsFragment_to_callsFragment"
|
||||
app:destination="@id/callsFragment"
|
||||
app:popUpTo="@id/callsFragment"
|
||||
app:popUpToInclusive="true"
|
||||
app:launchSingleTop="true"/>
|
||||
app:launchSingleTop="true"
|
||||
app:popUpTo="@id/contactsFragment"
|
||||
app:popUpToInclusive="true" />
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
|
|
@ -82,9 +82,9 @@
|
|||
<action
|
||||
android:id="@+id/action_callsFragment_to_contactsFragment"
|
||||
app:destination="@id/contactsFragment"
|
||||
app:popUpTo="@id/contactsFragment"
|
||||
app:popUpToInclusive="true"
|
||||
app:launchSingleTop="true" />
|
||||
app:launchSingleTop="true"
|
||||
app:popUpTo="@id/callsFragment"
|
||||
app:popUpToInclusive="true" />
|
||||
<action
|
||||
android:id="@+id/action_callsFragment_to_conversationsFragment"
|
||||
app:destination="@id/conversationsFragment" />
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue