Removed parenthesis after phone number if no label + added missing fragments (empty)

This commit is contained in:
Sylvain Berfini 2023-08-20 18:31:56 +02:00
parent 4c2b67a5aa
commit 9e4c71a3f0
14 changed files with 274 additions and 4 deletions

View file

@ -20,6 +20,7 @@
package org.linphone.ui.main
import android.Manifest
import android.annotation.SuppressLint
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
@ -36,12 +37,14 @@ import androidx.core.view.WindowCompat
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.core.Account
import org.linphone.databinding.AccountPopupMenuBinding
import org.linphone.databinding.MainActivityBinding
import org.linphone.ui.assistant.AssistantActivity
import org.linphone.ui.main.settings.fragment.AcocuntProfileFragmentDirections
import org.linphone.ui.main.viewmodel.DrawerMenuViewModel
import org.linphone.utils.slideInToastFromTopForDuration
@ -73,6 +76,24 @@ class MainActivity : AppCompatActivity() {
binding = DataBindingUtil.setContentView(this, R.layout.main_activity)
binding.lifecycleOwner = this
binding.setSettingsClickedListener {
val navController = findNavController(R.id.main_nav_host_fragment)
navController.navigate(R.id.action_global_settingsFragment)
binding.drawerMenu.close()
}
binding.setRecordingsClickListener {
val navController = findNavController(R.id.main_nav_host_fragment)
navController.navigate(R.id.action_global_recordingsFragment)
binding.drawerMenu.close()
}
binding.setHelpClickedListener {
val navController = findNavController(R.id.main_nav_host_fragment)
navController.navigate(R.id.action_global_helpFragment)
binding.drawerMenu.close()
}
drawerMenuViewModel = run {
ViewModelProvider(this)[DrawerMenuViewModel::class.java]
}
@ -133,6 +154,7 @@ class MainActivity : AppCompatActivity() {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
@SuppressLint("RtlHardcoded")
fun toggleDrawerMenu() {
if (binding.drawerMenu.isDrawerOpen(Gravity.LEFT)) {
binding.drawerMenu.closeDrawer(binding.drawerMenuContent, true)
@ -189,8 +211,14 @@ class MainActivity : AppCompatActivity() {
)
popupView.setManageProfileClickListener {
// TODO: navigate to profile
val navController = findNavController(R.id.main_nav_host_fragment)
val identity = account.params.identityAddress?.asString().orEmpty()
val action = AcocuntProfileFragmentDirections.actionGlobalAcocuntProfileFragment(
identity
)
navController.navigate(action)
popupWindow.dismiss()
binding.drawerMenu.close()
}
// Elevation is for showing a shadow around the popup

View file

@ -0,0 +1,25 @@
package org.linphone.ui.main.recordings
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import org.linphone.databinding.RecordingsFragmentBinding
import org.linphone.ui.main.fragment.GenericFragment
class RecordingsFragment : GenericFragment() {
private lateinit var binding: RecordingsFragmentBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = RecordingsFragmentBinding.inflate(layoutInflater)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.lifecycleOwner = viewLifecycleOwner
}
}

View file

@ -0,0 +1,26 @@
package org.linphone.ui.main.settings.fragment
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import org.linphone.databinding.AccountProfileFragmentBinding
import org.linphone.ui.main.fragment.GenericFragment
class AcocuntProfileFragment : GenericFragment() {
private lateinit var binding: AccountProfileFragmentBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AccountProfileFragmentBinding.inflate(layoutInflater)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.lifecycleOwner = viewLifecycleOwner
}
}

View file

@ -0,0 +1,26 @@
package org.linphone.ui.main.settings.fragment
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import org.linphone.databinding.HelpFragmentBinding
import org.linphone.ui.main.fragment.GenericFragment
class HelpFragment : GenericFragment() {
private lateinit var binding: HelpFragmentBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = HelpFragmentBinding.inflate(layoutInflater)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.lifecycleOwner = viewLifecycleOwner
}
}

View file

@ -0,0 +1,26 @@
package org.linphone.ui.main.settings.fragment
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import org.linphone.databinding.SettingsFragmentBinding
import org.linphone.ui.main.fragment.GenericFragment
class SettingsFragment : GenericFragment() {
private lateinit var binding: SettingsFragmentBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsFragmentBinding.inflate(layoutInflater)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.lifecycleOwner = viewLifecycleOwner
}
}

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View file

@ -26,7 +26,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:text="@{model.sip ? `SIP address` : `Phone (` + model.label + `)`, default=`Phone (Home)`}"
android:text="@{model.sip ? `SIP address` : model.label.length() > 0 ? `Phone (` + model.label + `)` : `Phone`, default=`Phone (Home)`}"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"

View file

@ -25,7 +25,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:text="@{model.sip ? `SIP address` : `Phone (` + model.label + `)`, default=`Phone (Home)`}"
android:text="@{model.sip ? `SIP address` : model.label.length() > 0 ? `Phone (` + model.label + `)` : `Phone`, default=`Phone (Home)`}"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"

View file

@ -5,6 +5,15 @@
<data>
<import type="android.view.View" />
<variable
name="settingsClickedListener"
type="View.OnClickListener" />
<variable
name="recordingsClickListener"
type="View.OnClickListener" />
<variable
name="helpClickedListener"
type="View.OnClickListener" />
<variable
name="viewModel"
type="org.linphone.ui.main.viewmodel.DrawerMenuViewModel" />
@ -12,7 +21,9 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true">
<ImageView
android:id="@+id/brand_icon"
@ -104,6 +115,7 @@
app:layout_constraintBottom_toTopOf="@id/settings" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{settingsClickedListener}"
style="@style/default_text_style_700"
android:id="@+id/settings"
android:layout_width="0dp"
@ -122,6 +134,7 @@
app:layout_constraintBottom_toTopOf="@id/recordings" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{recordingsClickListener}"
style="@style/default_text_style_700"
android:id="@+id/recordings"
android:layout_width="0dp"
@ -140,6 +153,7 @@
app:layout_constraintBottom_toTopOf="@id/help" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{helpClickedListener}"
style="@style/default_text_style_700"
android:id="@+id/help"
android:layout_width="0dp"

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View file

@ -4,6 +4,16 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="settingsClickedListener"
type="View.OnClickListener" />
<variable
name="recordingsClickListener"
type="View.OnClickListener" />
<variable
name="helpClickedListener"
type="View.OnClickListener" />
<variable
name="drawerMenuViewModel"
type="org.linphone.ui.main.viewmodel.DrawerMenuViewModel" />
@ -57,6 +67,9 @@
android:layout_gravity="start">
<include
tools:settingsClickedListener="@{settingsClickedListener}"
tools:recordingsClickListener="@{recordingsClickListener}"
tools:helpClickedListener="@{helpClickedListener}"
tools:viewModel="@{drawerMenuViewModel}"
layout="@layout/drawer_menu" />

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View file

@ -90,4 +90,48 @@
app:destination="@id/conversationsFragment" />
</fragment>
<fragment
android:id="@+id/acocuntProfileFragment"
android:name="org.linphone.ui.main.settings.fragment.AcocuntProfileFragment"
android:label="AcocuntProfileFragment"
tools:layout="@layout/account_profile_fragment">
<argument
android:name="accountIdentity"
app:argType="string" />
</fragment>
<action
android:id="@+id/action_global_acocuntProfileFragment"
app:destination="@id/acocuntProfileFragment" />
<fragment
android:id="@+id/settingsFragment"
android:name="org.linphone.ui.main.settings.fragment.SettingsFragment"
android:label="SettingsFragment"
tools:layout="@layout/settings_fragment" />
<action
android:id="@+id/action_global_settingsFragment"
app:destination="@id/settingsFragment"/>
<fragment
android:id="@+id/helpFragment"
android:name="org.linphone.ui.main.settings.fragment.HelpFragment"
android:label="HelpFragment"
tools:layout="@layout/help_fragment" />
<action
android:id="@+id/action_global_helpFragment"
app:destination="@id/helpFragment"/>
<fragment
android:id="@+id/recordingsFragment"
android:name="org.linphone.ui.main.recordings.RecordingsFragment"
android:label="RecordingsFragment"
tools:layout="@layout/recordings_fragment" />
<action
android:id="@+id/action_global_recordingsFragment"
app:destination="@id/recordingsFragment"/>
</navigation>