[gnome-contacts] ContactStore: only store 1 calling account.
- From: Niels De Graef <nielsdg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-contacts] ContactStore: only store 1 calling account.
- Date: Sun, 24 Dec 2017 01:19:12 +0000 (UTC)
commit 5efeaea38664b9c3e99ae26baa3c00a04b3eb2dc
Author: Niels De Graef <nielsdegraef gmail com>
Date: Sun Dec 24 01:50:14 2017 +0100
ContactStore: only store 1 calling account.
Telepathy is on it's way out, and really, the end-result of this code
still does exactly the same thing.
src/contacts-contact-sheet.vala | 4 ++--
src/contacts-store.vala | 18 +++---------------
src/contacts-utils.vala | 8 +-------
3 files changed, 6 insertions(+), 24 deletions(-)
---
diff --git a/src/contacts-contact-sheet.vala b/src/contacts-contact-sheet.vala
index e0243f2..6b96794 100644
--- a/src/contacts-contact-sheet.vala
+++ b/src/contacts-contact-sheet.vala
@@ -152,10 +152,10 @@ public class Contacts.ContactSheet : Grid {
if (phone_details != null) {
var phones = Contact.sort_fields<PhoneFieldDetails>(phone_details.phone_numbers);
foreach (var phone in phones) {
- if (c.store != null && c.store.can_call) {
+ if (c.store != null && c.store.caller_account != null) {
var button = add_row_with_button (ref i, TypeSet.phone.format_type (phone), phone.value);
button.clicked.connect (() => {
- Utils.start_call (phone.value, c.store.calling_accounts);
+ Utils.start_call (phone.value, c.store.caller_account);
});
} else {
add_row_with_label (ref i, TypeSet.phone.format_type (phone), phone.value);
diff --git a/src/contacts-store.vala b/src/contacts-store.vala
index f841f2f..c92f61a 100644
--- a/src/contacts-store.vala
+++ b/src/contacts-store.vala
@@ -34,15 +34,9 @@ public class Contacts.Store : GLib.Object {
public BackendStore backend_store { get; private set; }
Gee.ArrayList<Contact> contacts;
- public Gee.HashMap<string, Account> calling_accounts;
-
public Gee.HashMultiMap<string, string> dont_suggest_link;
- public bool can_call {
- get {
- return this.calling_accounts.size > 0 ? true : false;
- }
- }
+ public Account? caller_account { get; private set; default = null; }
public bool is_quiescent {
get { return this.aggregator.is_quiescent; }
@@ -319,7 +313,6 @@ public class Contacts.Store : GLib.Object {
// TODO: listen for changes in Account#URISchemes
private async void check_call_capabilities () {
- this.calling_accounts = new Gee.HashMap<string, Account> ();
var account_manager = AccountManager.dup ();
try {
@@ -347,13 +340,8 @@ public class Contacts.Store : GLib.Object {
}
if (account.is_prepared (addressing)) {
- var k = account.get_object_path ();
- if (account.is_enabled () &&
- account.associated_with_uri_scheme ("tel")) {
- this.calling_accounts.set (k, account);
- } else {
- this.calling_accounts.unset (k);
- }
+ if (account.is_enabled () && account.associated_with_uri_scheme ("tel"))
+ this.caller_account = account;
}
}
}
diff --git a/src/contacts-utils.vala b/src/contacts-utils.vala
index c629778..a589a16 100644
--- a/src/contacts-utils.vala
+++ b/src/contacts-utils.vala
@@ -168,13 +168,7 @@ namespace Contacts.Utils {
request.ensure_channel_async.begin ("org.freedesktop.Telepathy.Client.Empathy.Chat", null);
}
- public void start_call (string contact_id, Gee.HashMap<string, TelepathyGLib.Account> accounts) {
- // TODO: prompt for which account to use
- var account = accounts.values.to_array ()[0];
- Utils.start_call_with_account (contact_id, account);
- }
-
- public void start_call_with_account (string contact_id, TelepathyGLib.Account account) {
+ public void start_call (string contact_id, TelepathyGLib.Account account) {
var request_dict = new HashTable<weak string,GLib.Value?>(str_hash, str_equal);
request_dict.insert (TelepathyGLib.PROP_CHANNEL_CHANNEL_TYPE,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]