mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-04-28 13:46:21 +00:00
Improved empty SIP contacts list
This commit is contained in:
parent
a5f0e07ca6
commit
c75d4688db
6 changed files with 57 additions and 10 deletions
|
|
@ -296,7 +296,7 @@ class ContactsListFragment : AbstractMainFragment() {
|
||||||
null,
|
null,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
popupView.seeAllSelected = listViewModel.areAllContactsDisplayed()
|
popupView.seeAllSelected = listViewModel.areAllContactsDisplayed.value == true
|
||||||
popupView.showLinphoneFilter = listViewModel.isDefaultAccountLinphone.value == true
|
popupView.showLinphoneFilter = listViewModel.isDefaultAccountLinphone.value == true
|
||||||
|
|
||||||
val popupWindow = PopupWindow(
|
val popupWindow = PopupWindow(
|
||||||
|
|
@ -307,7 +307,7 @@ class ContactsListFragment : AbstractMainFragment() {
|
||||||
)
|
)
|
||||||
|
|
||||||
popupView.setNoFilterClickListener {
|
popupView.setNoFilterClickListener {
|
||||||
if (!listViewModel.areAllContactsDisplayed()) {
|
if (listViewModel.areAllContactsDisplayed.value != true) {
|
||||||
listViewModel.changeContactsFilter(
|
listViewModel.changeContactsFilter(
|
||||||
onlyLinphoneContacts = false,
|
onlyLinphoneContacts = false,
|
||||||
onlySipContacts = false
|
onlySipContacts = false
|
||||||
|
|
@ -317,7 +317,7 @@ class ContactsListFragment : AbstractMainFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
popupView.setLinphoneOnlyClickListener {
|
popupView.setLinphoneOnlyClickListener {
|
||||||
if (listViewModel.areAllContactsDisplayed()) {
|
if (listViewModel.areAllContactsDisplayed.value == true) {
|
||||||
listViewModel.changeContactsFilter(
|
listViewModel.changeContactsFilter(
|
||||||
onlyLinphoneContacts = true,
|
onlyLinphoneContacts = true,
|
||||||
onlySipContacts = false
|
onlySipContacts = false
|
||||||
|
|
@ -327,7 +327,7 @@ class ContactsListFragment : AbstractMainFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
popupView.setSipOnlyClickListener {
|
popupView.setSipOnlyClickListener {
|
||||||
if (listViewModel.areAllContactsDisplayed()) {
|
if (listViewModel.areAllContactsDisplayed.value == true) {
|
||||||
listViewModel.changeContactsFilter(
|
listViewModel.changeContactsFilter(
|
||||||
onlyLinphoneContacts = false,
|
onlyLinphoneContacts = false,
|
||||||
onlySipContacts = true
|
onlySipContacts = true
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,8 @@ class ContactsListViewModel
|
||||||
|
|
||||||
val isListFiltered = MutableLiveData<Boolean>()
|
val isListFiltered = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
|
val areAllContactsDisplayed = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
val searchInProgress = MutableLiveData<Boolean>()
|
val searchInProgress = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
val isDefaultAccountLinphone = MutableLiveData<Boolean>()
|
val isDefaultAccountLinphone = MutableLiveData<Boolean>()
|
||||||
|
|
@ -107,6 +109,7 @@ class ContactsListViewModel
|
||||||
|
|
||||||
coreContext.postOnCoreThread { core ->
|
coreContext.postOnCoreThread { core ->
|
||||||
domainFilter = corePreferences.contactsFilter
|
domainFilter = corePreferences.contactsFilter
|
||||||
|
areAllContactsDisplayed.postValue(domainFilter.isEmpty())
|
||||||
checkIfDefaultAccountOnDefaultDomain()
|
checkIfDefaultAccountOnDefaultDomain()
|
||||||
|
|
||||||
coreContext.contactsManager.addListener(contactsListener)
|
coreContext.contactsManager.addListener(contactsListener)
|
||||||
|
|
@ -145,6 +148,7 @@ class ContactsListViewModel
|
||||||
fun applyCurrentDefaultAccountFilter() {
|
fun applyCurrentDefaultAccountFilter() {
|
||||||
coreContext.postOnCoreThread {
|
coreContext.postOnCoreThread {
|
||||||
domainFilter = corePreferences.contactsFilter
|
domainFilter = corePreferences.contactsFilter
|
||||||
|
areAllContactsDisplayed.postValue(domainFilter.isEmpty())
|
||||||
checkIfDefaultAccountOnDefaultDomain()
|
checkIfDefaultAccountOnDefaultDomain()
|
||||||
|
|
||||||
coreContext.postOnMainThread {
|
coreContext.postOnMainThread {
|
||||||
|
|
@ -163,6 +167,7 @@ class ContactsListViewModel
|
||||||
} else {
|
} else {
|
||||||
""
|
""
|
||||||
}
|
}
|
||||||
|
areAllContactsDisplayed.postValue(domainFilter.isEmpty())
|
||||||
corePreferences.contactsFilter = domainFilter
|
corePreferences.contactsFilter = domainFilter
|
||||||
Log.i("$TAG Newly set filter is [${corePreferences.contactsFilter}]")
|
Log.i("$TAG Newly set filter is [${corePreferences.contactsFilter}]")
|
||||||
|
|
||||||
|
|
@ -172,10 +177,6 @@ class ContactsListViewModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun areAllContactsDisplayed(): Boolean {
|
|
||||||
return domainFilter.isEmpty()
|
|
||||||
}
|
|
||||||
|
|
||||||
@UiThread
|
@UiThread
|
||||||
fun toggleFavouritesVisibility() {
|
fun toggleFavouritesVisibility() {
|
||||||
val show = showFavourites.value == false
|
val show = showFavourites.value == false
|
||||||
|
|
|
||||||
|
|
@ -130,12 +130,33 @@
|
||||||
android:id="@+id/no_contacts_label"
|
android:id="@+id/no_contacts_label"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@{viewModel.isFilterEmpty ? @string/contacts_list_empty : @string/list_filter_no_result_found, default=@string/contacts_list_empty}"
|
android:text="@{viewModel.isFilterEmpty ? (viewModel.areAllContactsDisplayed ? @string/contacts_list_empty : @string/contacts_list_sip_empty) : @string/list_filter_no_result_found, default=@string/contacts_list_sip_empty}"
|
||||||
app:layout_constraintBottom_toTopOf="@id/lists"
|
app:layout_constraintBottom_toTopOf="@id/lists"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
|
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
|
||||||
app:layout_constraintTop_toBottomOf="@id/no_contacts_image" />
|
app:layout_constraintTop_toBottomOf="@id/no_contacts_image" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/default_text_style_600"
|
||||||
|
android:id="@+id/show_contacts_filter"
|
||||||
|
android:onClick="@{filterClickListener}"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:paddingTop="6dp"
|
||||||
|
android:paddingBottom="6dp"
|
||||||
|
android:paddingStart="12dp"
|
||||||
|
android:paddingEnd="12dp"
|
||||||
|
android:text="@string/contacts_change_filter_label"
|
||||||
|
android:textSize="13sp"
|
||||||
|
android:textColor="@color/secondary_button_label_color"
|
||||||
|
android:gravity="center"
|
||||||
|
android:background="@drawable/secondary_button_background"
|
||||||
|
android:visibility="@{viewModel.contactsList.empty && !viewModel.areAllContactsDisplayed ? View.VISIBLE : View.GONE}"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/no_contacts_label"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"/>
|
||||||
|
|
||||||
<com.google.android.material.progressindicator.CircularProgressIndicator
|
<com.google.android.material.progressindicator.CircularProgressIndicator
|
||||||
android:id="@+id/fetch_in_progress"
|
android:id="@+id/fetch_in_progress"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|
|
||||||
|
|
@ -131,12 +131,33 @@
|
||||||
android:id="@+id/no_contacts_label"
|
android:id="@+id/no_contacts_label"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@{viewModel.isFilterEmpty ? @string/contacts_list_empty : @string/list_filter_no_result_found, default=@string/contacts_list_empty}"
|
android:text="@{viewModel.isFilterEmpty ? (viewModel.areAllContactsDisplayed ? @string/contacts_list_empty : @string/contacts_list_sip_empty) : @string/list_filter_no_result_found, default=@string/contacts_list_sip_empty}"
|
||||||
app:layout_constraintBottom_toTopOf="@id/lists"
|
app:layout_constraintBottom_toTopOf="@id/lists"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/no_contacts_image" />
|
app:layout_constraintTop_toBottomOf="@id/no_contacts_image" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/default_text_style_600"
|
||||||
|
android:id="@+id/show_contacts_filter"
|
||||||
|
android:onClick="@{filterClickListener}"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:paddingTop="6dp"
|
||||||
|
android:paddingBottom="6dp"
|
||||||
|
android:paddingStart="12dp"
|
||||||
|
android:paddingEnd="12dp"
|
||||||
|
android:text="@string/contacts_change_filter_label"
|
||||||
|
android:textSize="13sp"
|
||||||
|
android:textColor="@color/secondary_button_label_color"
|
||||||
|
android:gravity="center"
|
||||||
|
android:background="@drawable/secondary_button_background"
|
||||||
|
android:visibility="@{viewModel.contactsList.empty && !viewModel.areAllContactsDisplayed ? View.VISIBLE : View.GONE}"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/no_contacts_label"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"/>
|
||||||
|
|
||||||
<com.google.android.material.progressindicator.CircularProgressIndicator
|
<com.google.android.material.progressindicator.CircularProgressIndicator
|
||||||
android:id="@+id/fetch_in_progress"
|
android:id="@+id/fetch_in_progress"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|
|
||||||
|
|
@ -379,6 +379,8 @@
|
||||||
|
|
||||||
<!-- Contacts -->
|
<!-- Contacts -->
|
||||||
<string name="contacts_list_empty">Aucun contact pour le moment…</string>
|
<string name="contacts_list_empty">Aucun contact pour le moment…</string>
|
||||||
|
<string name="contacts_list_sip_empty">Aucun contact SIP pour le moment…</string>
|
||||||
|
<string name="contacts_change_filter_label">Changer le filtre</string>
|
||||||
<string name="contacts_list_favourites_title">Favoris</string>
|
<string name="contacts_list_favourites_title">Favoris</string>
|
||||||
<string name="contacts_list_all_contacts_title">Tous les contacts</string>
|
<string name="contacts_list_all_contacts_title">Tous les contacts</string>
|
||||||
<string name="contacts_list_filter_popup_see_all">Tous les contacts</string>
|
<string name="contacts_list_filter_popup_see_all">Tous les contacts</string>
|
||||||
|
|
|
||||||
|
|
@ -420,6 +420,8 @@
|
||||||
|
|
||||||
<!-- Contacts -->
|
<!-- Contacts -->
|
||||||
<string name="contacts_list_empty">No contact for the moment…</string>
|
<string name="contacts_list_empty">No contact for the moment…</string>
|
||||||
|
<string name="contacts_list_sip_empty">No SIP contact for the moment…</string>
|
||||||
|
<string name="contacts_change_filter_label">Change filter</string>
|
||||||
<string name="contacts_list_favourites_title">Favourites</string>
|
<string name="contacts_list_favourites_title">Favourites</string>
|
||||||
<string name="contacts_list_all_contacts_title">All contacts</string>
|
<string name="contacts_list_all_contacts_title">All contacts</string>
|
||||||
<string name="contacts_list_filter_popup_see_all">See all</string>
|
<string name="contacts_list_filter_popup_see_all">See all</string>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue