mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 03:18:06 +00:00
Add a way to go to Help page from assistant
This commit is contained in:
parent
df0fabce01
commit
53435b4bf8
10 changed files with 109 additions and 23 deletions
|
|
@ -78,6 +78,14 @@ class LandingFragment : GenericFragment() {
|
||||||
requireActivity().finish()
|
requireActivity().finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.setHelpClickListener {
|
||||||
|
if (findNavController().currentDestination?.id == R.id.landingFragment) {
|
||||||
|
val action =
|
||||||
|
LandingFragmentDirections.actionLandingFragmentToHelpFragment()
|
||||||
|
findNavController().navigate(action)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
binding.setRegisterClickListener {
|
binding.setRegisterClickListener {
|
||||||
if (viewModel.conditionsAndPrivacyPolicyAccepted) {
|
if (viewModel.conditionsAndPrivacyPolicyAccepted) {
|
||||||
goToRegisterFragment()
|
goToRegisterFragment()
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,6 @@ import org.linphone.databinding.MainActivityBinding
|
||||||
import org.linphone.ui.GenericActivity
|
import org.linphone.ui.GenericActivity
|
||||||
import org.linphone.ui.assistant.AssistantActivity
|
import org.linphone.ui.assistant.AssistantActivity
|
||||||
import org.linphone.ui.main.chat.fragment.ConversationsListFragmentDirections
|
import org.linphone.ui.main.chat.fragment.ConversationsListFragmentDirections
|
||||||
import org.linphone.ui.main.help.fragment.DebugFragmentDirections
|
|
||||||
import org.linphone.utils.PasswordDialogModel
|
import org.linphone.utils.PasswordDialogModel
|
||||||
import org.linphone.ui.main.sso.fragment.SingleSignOnFragmentDirections
|
import org.linphone.ui.main.sso.fragment.SingleSignOnFragmentDirections
|
||||||
import org.linphone.ui.main.viewmodel.MainViewModel
|
import org.linphone.ui.main.viewmodel.MainViewModel
|
||||||
|
|
@ -722,8 +721,13 @@ class MainActivity : GenericActivity() {
|
||||||
sharedViewModel.showConversationEvent.value = Event(conversationId)
|
sharedViewModel.showConversationEvent.value = Event(conversationId)
|
||||||
}
|
}
|
||||||
|
|
||||||
val action = DebugFragmentDirections.actionDebugFragmentToConversationsListFragment()
|
val action = ConversationsListFragmentDirections.actionGlobalConversationsListFragment()
|
||||||
findNavController().navigate(action)
|
val options = NavOptions.Builder()
|
||||||
|
options.apply {
|
||||||
|
setPopUpTo(R.id.helpFragment, true)
|
||||||
|
setLaunchSingleTop(true)
|
||||||
|
}
|
||||||
|
findNavController().navigate(action, options.build())
|
||||||
} else {
|
} else {
|
||||||
val conversationId = parseShortcutIfAny(intent)
|
val conversationId = parseShortcutIfAny(intent)
|
||||||
if (conversationId != null) {
|
if (conversationId != null) {
|
||||||
|
|
|
||||||
|
|
@ -28,22 +28,22 @@ import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.navigation.navGraphViewModels
|
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.core.tools.Log
|
import org.linphone.core.tools.Log
|
||||||
import org.linphone.databinding.HelpDebugFragmentBinding
|
import org.linphone.databinding.HelpDebugFragmentBinding
|
||||||
import org.linphone.ui.GenericActivity
|
import org.linphone.ui.GenericActivity
|
||||||
|
import org.linphone.ui.assistant.AssistantActivity
|
||||||
import org.linphone.ui.fileviewer.FileViewerActivity
|
import org.linphone.ui.fileviewer.FileViewerActivity
|
||||||
|
import org.linphone.ui.main.MainActivity
|
||||||
import org.linphone.ui.main.fragment.GenericMainFragment
|
import org.linphone.ui.main.fragment.GenericMainFragment
|
||||||
import org.linphone.ui.main.help.viewmodel.HelpViewModel
|
import org.linphone.ui.main.help.viewmodel.HelpViewModel
|
||||||
|
|
||||||
class DebugFragment : GenericMainFragment() {
|
class DebugFragment : GenericMainFragment() {
|
||||||
private lateinit var binding: HelpDebugFragmentBinding
|
private lateinit var binding: HelpDebugFragmentBinding
|
||||||
|
|
||||||
val viewModel: HelpViewModel by navGraphViewModels(
|
private lateinit var viewModel: HelpViewModel
|
||||||
R.id.main_nav_graph
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
|
|
@ -57,9 +57,13 @@ class DebugFragment : GenericMainFragment() {
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
binding.lifecycleOwner = viewLifecycleOwner
|
binding.lifecycleOwner = viewLifecycleOwner
|
||||||
|
|
||||||
|
viewModel = ViewModelProvider(this)[HelpViewModel::class.java]
|
||||||
binding.viewModel = viewModel
|
binding.viewModel = viewModel
|
||||||
observeToastEvents(viewModel)
|
observeToastEvents(viewModel)
|
||||||
|
|
||||||
|
viewModel.canConfigFileBeViewed.postValue(requireActivity() is MainActivity)
|
||||||
|
|
||||||
binding.setBackClickListener {
|
binding.setBackClickListener {
|
||||||
goBack()
|
goBack()
|
||||||
}
|
}
|
||||||
|
|
@ -91,6 +95,13 @@ class DebugFragment : GenericMainFragment() {
|
||||||
|
|
||||||
viewModel.uploadDebugLogsFinishedEvent.observe(viewLifecycleOwner) {
|
viewModel.uploadDebugLogsFinishedEvent.observe(viewLifecycleOwner) {
|
||||||
it.consume { url ->
|
it.consume { url ->
|
||||||
|
if (requireActivity() is AssistantActivity) {
|
||||||
|
val clipboard = requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||||
|
val label = "Logs upload URL"
|
||||||
|
clipboard.setPrimaryClip(ClipData.newPlainText(label, url))
|
||||||
|
return@consume
|
||||||
|
}
|
||||||
|
|
||||||
val appName = requireContext().getString(R.string.app_name)
|
val appName = requireContext().getString(R.string.app_name)
|
||||||
val intent = Intent(Intent.ACTION_SEND)
|
val intent = Intent(Intent.ACTION_SEND)
|
||||||
intent.putExtra(
|
intent.putExtra(
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@ import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.annotation.UiThread
|
import androidx.annotation.UiThread
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.navigation.navGraphViewModels
|
|
||||||
import org.linphone.R
|
import org.linphone.R
|
||||||
import org.linphone.core.tools.Log
|
import org.linphone.core.tools.Log
|
||||||
import org.linphone.databinding.HelpFragmentBinding
|
import org.linphone.databinding.HelpFragmentBinding
|
||||||
|
|
@ -37,6 +36,7 @@ import org.linphone.ui.main.help.viewmodel.HelpViewModel
|
||||||
import org.linphone.utils.ConfirmationDialogModel
|
import org.linphone.utils.ConfirmationDialogModel
|
||||||
import org.linphone.utils.DialogUtils
|
import org.linphone.utils.DialogUtils
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
|
||||||
@UiThread
|
@UiThread
|
||||||
class HelpFragment : GenericMainFragment() {
|
class HelpFragment : GenericMainFragment() {
|
||||||
|
|
@ -46,9 +46,7 @@ class HelpFragment : GenericMainFragment() {
|
||||||
|
|
||||||
private lateinit var binding: HelpFragmentBinding
|
private lateinit var binding: HelpFragmentBinding
|
||||||
|
|
||||||
val viewModel: HelpViewModel by navGraphViewModels(
|
private lateinit var viewModel: HelpViewModel
|
||||||
R.id.main_nav_graph
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
|
|
@ -62,6 +60,8 @@ class HelpFragment : GenericMainFragment() {
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
binding.lifecycleOwner = viewLifecycleOwner
|
binding.lifecycleOwner = viewLifecycleOwner
|
||||||
|
|
||||||
|
viewModel = ViewModelProvider(this)[HelpViewModel::class.java]
|
||||||
binding.viewModel = viewModel
|
binding.viewModel = viewModel
|
||||||
observeToastEvents(viewModel)
|
observeToastEvents(viewModel)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,8 @@ class HelpViewModel
|
||||||
|
|
||||||
val versionClickCount = MutableLiveData<Int>()
|
val versionClickCount = MutableLiveData<Int>()
|
||||||
|
|
||||||
|
val canConfigFileBeViewed = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
val newVersionAvailableEvent: MutableLiveData<Event<Pair<String, String>>> by lazy {
|
val newVersionAvailableEvent: MutableLiveData<Event<Pair<String, String>>> by lazy {
|
||||||
MutableLiveData<Event<Pair<String, String>>>()
|
MutableLiveData<Event<Pair<String, String>>>()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@
|
||||||
<variable
|
<variable
|
||||||
name="backClickListener"
|
name="backClickListener"
|
||||||
type="View.OnClickListener" />
|
type="View.OnClickListener" />
|
||||||
|
<variable
|
||||||
|
name="helpClickListener"
|
||||||
|
type="View.OnClickListener" />
|
||||||
<variable
|
<variable
|
||||||
name="forgottenPasswordClickListener"
|
name="forgottenPasswordClickListener"
|
||||||
type="View.OnClickListener" />
|
type="View.OnClickListener" />
|
||||||
|
|
@ -79,6 +82,23 @@
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="@id/back"/>
|
app:layout_constraintStart_toEndOf="@id/back"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/default_text_style"
|
||||||
|
android:id="@+id/help"
|
||||||
|
android:onClick="@{helpClickListener}"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:text="@string/help_title"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textColor="?attr/color_main2_500"
|
||||||
|
android:drawableStart="@drawable/question"
|
||||||
|
android:drawablePadding="5dp"
|
||||||
|
app:drawableTint="?attr/color_main2_500"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"/>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
style="@style/default_text_style"
|
style="@style/default_text_style"
|
||||||
android:id="@+id/no_account_yet"
|
android:id="@+id/no_account_yet"
|
||||||
|
|
@ -101,15 +121,14 @@
|
||||||
android:onClick="@{registerClickListener}"
|
android:onClick="@{registerClickListener}"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="40dp"
|
||||||
android:layout_marginEnd="40dp"
|
android:layout_marginEnd="40dp"
|
||||||
android:paddingStart="20dp"
|
android:paddingStart="20dp"
|
||||||
android:paddingEnd="20dp"
|
android:paddingEnd="20dp"
|
||||||
android:text="@string/assistant_account_register"
|
android:text="@string/assistant_account_register"
|
||||||
android:visibility="@{viewModel.hideCreateAccount ? View.GONE : View.VISIBLE}"
|
android:visibility="@{viewModel.hideCreateAccount ? View.GONE : View.VISIBLE}"
|
||||||
app:layout_constraintVertical_bias="1"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="@id/title"
|
app:layout_constraintTop_toBottomOf="@id/help"/>
|
||||||
app:layout_constraintBottom_toBottomOf="@id/title"/>
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
style="@style/header_style"
|
style="@style/header_style"
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@
|
||||||
<variable
|
<variable
|
||||||
name="backClickListener"
|
name="backClickListener"
|
||||||
type="View.OnClickListener" />
|
type="View.OnClickListener" />
|
||||||
|
<variable
|
||||||
|
name="helpClickListener"
|
||||||
|
type="View.OnClickListener" />
|
||||||
<variable
|
<variable
|
||||||
name="forgottenPasswordClickListener"
|
name="forgottenPasswordClickListener"
|
||||||
type="View.OnClickListener" />
|
type="View.OnClickListener" />
|
||||||
|
|
@ -60,6 +63,23 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"/>
|
app:layout_constraintEnd_toEndOf="parent"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/default_text_style"
|
||||||
|
android:id="@+id/help"
|
||||||
|
android:onClick="@{helpClickListener}"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:text="@string/help_title"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textColor="?attr/color_main2_500"
|
||||||
|
android:drawableStart="@drawable/question"
|
||||||
|
android:drawablePadding="5dp"
|
||||||
|
app:drawableTint="?attr/color_main2_500"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/title"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/title"/>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
style="@style/header_style"
|
style="@style/header_style"
|
||||||
android:id="@+id/sip_identity_label"
|
android:id="@+id/sip_identity_label"
|
||||||
|
|
|
||||||
|
|
@ -292,6 +292,7 @@
|
||||||
android:text="@string/help_troubleshooting_show_config_file"
|
android:text="@string/help_troubleshooting_show_config_file"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
|
android:visibility="@{viewModel.canConfigFileBeViewed ? View.VISIBLE : View.GONE, default=gone}"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/firebase_project_subtitle"/>
|
app:layout_constraintTop_toBottomOf="@id/firebase_project_subtitle"/>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -152,7 +152,14 @@
|
||||||
app:popEnterAnim="@anim/slide_in_left"
|
app:popEnterAnim="@anim/slide_in_left"
|
||||||
app:popExitAnim="@anim/slide_out_right"
|
app:popExitAnim="@anim/slide_out_right"
|
||||||
app:launchSingleTop="true"/>
|
app:launchSingleTop="true"/>
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_landingFragment_to_helpFragment"
|
||||||
|
app:destination="@id/helpFragment"
|
||||||
|
app:enterAnim="@anim/slide_in_right"
|
||||||
|
app:exitAnim="@anim/slide_out_left"
|
||||||
|
app:popEnterAnim="@anim/slide_in_left"
|
||||||
|
app:popExitAnim="@anim/slide_out_right"
|
||||||
|
app:launchSingleTop="true" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
|
|
@ -192,6 +199,27 @@
|
||||||
app:launchSingleTop="true"/>
|
app:launchSingleTop="true"/>
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/helpFragment"
|
||||||
|
android:name="org.linphone.ui.main.help.fragment.HelpFragment"
|
||||||
|
android:label="HelpFragment"
|
||||||
|
tools:layout="@layout/help_fragment">
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_helpFragment_to_debugFragment"
|
||||||
|
app:destination="@id/debugFragment"
|
||||||
|
app:enterAnim="@anim/slide_in_right"
|
||||||
|
app:exitAnim="@anim/slide_out_left"
|
||||||
|
app:popEnterAnim="@anim/slide_in_left"
|
||||||
|
app:popExitAnim="@anim/slide_out_right"
|
||||||
|
app:launchSingleTop="true" />
|
||||||
|
</fragment>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/debugFragment"
|
||||||
|
android:name="org.linphone.ui.main.help.fragment.DebugFragment"
|
||||||
|
android:label="DebugFragment"
|
||||||
|
tools:layout="@layout/help_debug_fragment"/>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/recoverPhoneAccountFragment"
|
android:id="@+id/recoverPhoneAccountFragment"
|
||||||
android:name="org.linphone.ui.assistant.fragment.RecoverPhoneAccountFragment"
|
android:name="org.linphone.ui.assistant.fragment.RecoverPhoneAccountFragment"
|
||||||
|
|
|
||||||
|
|
@ -228,14 +228,7 @@
|
||||||
android:id="@+id/debugFragment"
|
android:id="@+id/debugFragment"
|
||||||
android:name="org.linphone.ui.main.help.fragment.DebugFragment"
|
android:name="org.linphone.ui.main.help.fragment.DebugFragment"
|
||||||
android:label="DebugFragment"
|
android:label="DebugFragment"
|
||||||
tools:layout="@layout/help_debug_fragment" >
|
tools:layout="@layout/help_debug_fragment"/>
|
||||||
<action
|
|
||||||
android:id="@+id/action_debugFragment_to_conversationsListFragment"
|
|
||||||
app:destination="@id/conversationsListFragment"
|
|
||||||
app:launchSingleTop="true"
|
|
||||||
app:popUpTo="@id/helpFragment"
|
|
||||||
app:popUpToInclusive="true"/>
|
|
||||||
</fragment>
|
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/accountSettingsFragment"
|
android:id="@+id/accountSettingsFragment"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue