Added Gnome Calls
This commit is contained in:
		
							
								
								
									
										1
									
								
								net-voip/gnome-calls/Manifest
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								net-voip/gnome-calls/Manifest
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
DIST calls-v0.3.4.tar.gz 203835 BLAKE2B dddafde2c5c1b247a603947679ed9335331ecfacbcdf73dbacc2f8542de783d8acdd398b0ab589680a24097d723dca731600a1886ed923be3889b00a60391ad5 SHA512 39463fcf493c8aeb428d41111adc957203dbcb57c033b2025c4932e52c8e158d17687df0ec13ffe4bf704b4c3ec75cdf3bfbacc6f839fd7193290d239df0df72
 | 
			
		||||
@@ -0,0 +1,61 @@
 | 
			
		||||
From 6630fea2096118cf0566cfa9a7e07d2b977ffc86 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Arnaud Ferraris <arnaud.ferraris@collabora.com>
 | 
			
		||||
Date: Thu, 5 Mar 2020 15:06:44 +0100
 | 
			
		||||
Subject: [PATCH 1/1] call-display: use PinePhone's device for ugly hacks
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/calls-call-display.c | 18 +++++-------------
 | 
			
		||||
 1 file changed, 5 insertions(+), 13 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/calls-call-display.c b/src/calls-call-display.c
 | 
			
		||||
index 1d8f276..a60f24b 100644
 | 
			
		||||
--- a/src/calls-call-display.c
 | 
			
		||||
+++ b/src/calls-call-display.c
 | 
			
		||||
@@ -334,9 +334,9 @@ set_property (GObject      *object,
 | 
			
		||||
 //#define UGLY_SOURCE "alsa_input.platform-sound.VoiceCall__hw_CARD_sgtl5000__source"
 | 
			
		||||
 //#define UGLY_SINK   "alsa_output.platform-sound.VoiceCall__hw_CARD_sgtl5000__sink"
 | 
			
		||||
 //#define UGLY_SPEAKER_PORT "Headset"
 | 
			
		||||
-#define UGLY_SOURCE "alsa_input.platform-sound.Audio__hw_CARD_wm8962__source"
 | 
			
		||||
-#define UGLY_SINK   "alsa_output.platform-sound.Audio__hw_CARD_wm8962__sink"
 | 
			
		||||
-#define UGLY_SPEAKER_PORT "SpeakerPhone"
 | 
			
		||||
+#define UGLY_SOURCE "alsa_input.platform-sound.Voice_Call__hw_PinePhone_0__source"
 | 
			
		||||
+#define UGLY_SINK   "alsa_output.platform-sound.Voice_Call__hw_PinePhone_0__sink"
 | 
			
		||||
+#define UGLY_SPEAKER_PORT "Speaker"
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 static gboolean
 | 
			
		||||
@@ -413,21 +413,13 @@ ugly_speaker_pressed_cb (CallsCallDisplay *self,
 | 
			
		||||
 
 | 
			
		||||
   if (gtk_toggle_button_get_active (speaker))
 | 
			
		||||
     {
 | 
			
		||||
-      port = "Handset";
 | 
			
		||||
+      port = "Earpiece";
 | 
			
		||||
     }
 | 
			
		||||
   else
 | 
			
		||||
     {
 | 
			
		||||
       port = UGLY_SPEAKER_PORT;
 | 
			
		||||
     }
 | 
			
		||||
 
 | 
			
		||||
-  ok = ugly_set_pa_port ("source", UGLY_SOURCE,
 | 
			
		||||
-                         "In", port);
 | 
			
		||||
-  if (!ok)
 | 
			
		||||
-    {
 | 
			
		||||
-      /* Stop other handlers */
 | 
			
		||||
-      return TRUE;
 | 
			
		||||
-    }
 | 
			
		||||
-
 | 
			
		||||
   ok = ugly_set_pa_port ("sink", UGLY_SINK,
 | 
			
		||||
                          "Out", port);
 | 
			
		||||
   if (!ok)
 | 
			
		||||
@@ -599,7 +591,7 @@ calls_call_display_class_init (CallsCallDisplayClass *klass)
 | 
			
		||||
                          "Data for the call this display will be associated with",
 | 
			
		||||
                          CALLS_TYPE_CALL_DATA,
 | 
			
		||||
                          G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY);
 | 
			
		||||
-   
 | 
			
		||||
+
 | 
			
		||||
   g_object_class_install_properties (object_class, PROP_LAST_PROP, props);
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.20.1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								net-voip/gnome-calls/files/0001-use-at-cmds-to-mute.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								net-voip/gnome-calls/files/0001-use-at-cmds-to-mute.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
diff --git a/src/calls-call-display.c b/src/calls-call-display.c
 | 
			
		||||
index bf98958..c8b1bc4 100644
 | 
			
		||||
--- a/src/calls-call-display.c
 | 
			
		||||
+++ b/src/calls-call-display.c
 | 
			
		||||
@@ -34,6 +34,8 @@
 | 
			
		||||
 
 | 
			
		||||
 #include <libcallaudio.h>
 | 
			
		||||
 
 | 
			
		||||
+#include <stdlib.h>
 | 
			
		||||
+
 | 
			
		||||
 struct _CallsCallDisplay
 | 
			
		||||
 {
 | 
			
		||||
   GtkOverlay parent_instance;
 | 
			
		||||
@@ -103,11 +105,17 @@ mute_toggled_cb (GtkToggleButton  *togglebutton,
 | 
			
		||||
   g_autoptr (GError) error = NULL;
 | 
			
		||||
 
 | 
			
		||||
   want_mute = gtk_toggle_button_get_active (togglebutton);
 | 
			
		||||
-  ret = call_audio_mute_mic (want_mute, &error);
 | 
			
		||||
-  if (!ret && error)
 | 
			
		||||
-    g_warning ("Failed to %smute microphone: %s",
 | 
			
		||||
-               want_mute ? "" : "un",
 | 
			
		||||
-               error->message);
 | 
			
		||||
+
 | 
			
		||||
+  gchar* command = g_strdup_printf("/usr/bin/mmcli -m 0 --command=AT+CMUT=%d",want_mute?1:0);
 | 
			
		||||
+
 | 
			
		||||
+  int exit_code;
 | 
			
		||||
+
 | 
			
		||||
+  ret = g_spawn_command_line_sync(command, NULL,NULL,&exit_code, &error);
 | 
			
		||||
+
 | 
			
		||||
+  if(!ret || error || exit_code != 0){
 | 
			
		||||
+      g_warning ("Failed to %smute microphone (mmcli exit code: %d)",
 | 
			
		||||
+                   want_mute ? "" : "un", exit_code);
 | 
			
		||||
+  }    
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										335
									
								
								net-voip/gnome-calls/files/188.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										335
									
								
								net-voip/gnome-calls/files/188.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,335 @@
 | 
			
		||||
From 5c0a588da7a0ffa57c8893650432804ff2663800 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Nazarii Kretovych <nazarii.kretovych@gmail.com>
 | 
			
		||||
Date: Sun, 20 Sep 2020 11:53:43 +0300
 | 
			
		||||
Subject: [PATCH 1/3] Remove adding country code to tel number while dialing.
 | 
			
		||||
 | 
			
		||||
Fixes #176
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Nazarii Kretovych <nazarii.kretovych@gmail.com>
 | 
			
		||||
---
 | 
			
		||||
 src/calls-application.c | 23 ++++++++++++++++++-----
 | 
			
		||||
 1 file changed, 18 insertions(+), 5 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/calls-application.c b/src/calls-application.c
 | 
			
		||||
index c9a9251..796c8cd 100644
 | 
			
		||||
--- a/src/calls-application.c
 | 
			
		||||
+++ b/src/calls-application.c
 | 
			
		||||
@@ -393,7 +393,6 @@ open_tel_uri (CallsApplication *self,
 | 
			
		||||
 {
 | 
			
		||||
   EPhoneNumber *number;
 | 
			
		||||
   GError *error = NULL;
 | 
			
		||||
-  gchar *dial_str;
 | 
			
		||||
 
 | 
			
		||||
   g_debug ("Opening tel URI `%s'", uri);
 | 
			
		||||
 
 | 
			
		||||
@@ -405,14 +404,28 @@ open_tel_uri (CallsApplication *self,
 | 
			
		||||
       g_error_free (error);
 | 
			
		||||
       return;
 | 
			
		||||
     }
 | 
			
		||||
-
 | 
			
		||||
-  dial_str = e_phone_number_to_string
 | 
			
		||||
-    (number, E_PHONE_NUMBER_FORMAT_E164);
 | 
			
		||||
   e_phone_number_free (number);
 | 
			
		||||
 
 | 
			
		||||
+  // Get dial string.
 | 
			
		||||
+  const size_t uri_len = strlen(uri);
 | 
			
		||||
+  gchar dial_str[uri_len + 1];
 | 
			
		||||
+  gchar *p_dial_str = dial_str;
 | 
			
		||||
+  for (const gchar *p_uri = uri; *p_uri; p_uri++) {
 | 
			
		||||
+    const gchar ch = *p_uri;
 | 
			
		||||
+    if ((ch >= '0' && ch <= '9') || ch == '+') {
 | 
			
		||||
+      *p_dial_str = ch;
 | 
			
		||||
+      p_dial_str++;
 | 
			
		||||
+    }
 | 
			
		||||
+  }
 | 
			
		||||
+  if (p_dial_str == dial_str) {
 | 
			
		||||
+    // dial_str is empty, so we return.
 | 
			
		||||
+    g_warning("Failed to create dial string for tel URI '%s'", uri);
 | 
			
		||||
+    return;
 | 
			
		||||
+  }
 | 
			
		||||
+  *p_dial_str = '\0';
 | 
			
		||||
+
 | 
			
		||||
   calls_main_window_dial (self->main_window,
 | 
			
		||||
                           dial_str);
 | 
			
		||||
-  g_free (dial_str);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.26.2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
From dedf8f820753d48575db6ec1774ed19783d66e65 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Nazarii Kretovych <nazarii.kretovych@gmail.com>
 | 
			
		||||
Date: Sat, 26 Sep 2020 17:21:54 +0300
 | 
			
		||||
Subject: [PATCH 2/3] Fix: make open_tel_uri generate the proper dial string
 | 
			
		||||
 for tel URIs that have the 'phone-context' param.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Nazarii Kretovych <nazarii.kretovych@gmail.com>
 | 
			
		||||
---
 | 
			
		||||
 .gitignore              |  3 ++-
 | 
			
		||||
 src/calls-application.c | 15 +++++++++++++++
 | 
			
		||||
 2 files changed, 17 insertions(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/.gitignore b/.gitignore
 | 
			
		||||
index 826102b..29e7ed5 100644
 | 
			
		||||
--- a/.gitignore
 | 
			
		||||
+++ b/.gitignore
 | 
			
		||||
@@ -5,4 +5,5 @@ _build
 | 
			
		||||
 .\#*
 | 
			
		||||
 build
 | 
			
		||||
 .buildconfig
 | 
			
		||||
-.flatpak-builder
 | 
			
		||||
\ No newline at end of file
 | 
			
		||||
+.flatpak-builder
 | 
			
		||||
+/nbproject/
 | 
			
		||||
\ No newline at end of file
 | 
			
		||||
diff --git a/src/calls-application.c b/src/calls-application.c
 | 
			
		||||
index 796c8cd..591681a 100644
 | 
			
		||||
--- a/src/calls-application.c
 | 
			
		||||
+++ b/src/calls-application.c
 | 
			
		||||
@@ -410,11 +410,26 @@ open_tel_uri (CallsApplication *self,
 | 
			
		||||
   const size_t uri_len = strlen(uri);
 | 
			
		||||
   gchar dial_str[uri_len + 1];
 | 
			
		||||
   gchar *p_dial_str = dial_str;
 | 
			
		||||
+  const gchar *p_phone_context = strstr(uri, ";phone-context=");
 | 
			
		||||
+  if (p_phone_context) {
 | 
			
		||||
+    // uri has the 'phone-context' param. Add its value to dial_str.
 | 
			
		||||
+    for (p_phone_context += 15; *p_phone_context; p_phone_context++) {
 | 
			
		||||
+      const gchar ch = *p_phone_context;
 | 
			
		||||
+      if ((ch >= '0' && ch <= '9') || ch == '+') {
 | 
			
		||||
+        *p_dial_str = ch;
 | 
			
		||||
+        p_dial_str++;
 | 
			
		||||
+      } else if (ch == ';') {
 | 
			
		||||
+        break;
 | 
			
		||||
+      }
 | 
			
		||||
+    }
 | 
			
		||||
+  }
 | 
			
		||||
   for (const gchar *p_uri = uri; *p_uri; p_uri++) {
 | 
			
		||||
     const gchar ch = *p_uri;
 | 
			
		||||
     if ((ch >= '0' && ch <= '9') || ch == '+') {
 | 
			
		||||
       *p_dial_str = ch;
 | 
			
		||||
       p_dial_str++;
 | 
			
		||||
+    } else if (ch == ';') {
 | 
			
		||||
+      break;
 | 
			
		||||
     }
 | 
			
		||||
   }
 | 
			
		||||
   if (p_dial_str == dial_str) {
 | 
			
		||||
-- 
 | 
			
		||||
2.26.2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
From b29dbc9bc4038b8e0ee2e2f8f0d69e46f757297a Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Nazarii Kretovych <nazarii.kretovych@gmail.com>
 | 
			
		||||
Date: Sat, 26 Sep 2020 20:22:40 +0300
 | 
			
		||||
Subject: [PATCH 3/3] Move code of tel uri parser to separate function and add
 | 
			
		||||
 unit test.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Nazarii Kretovych <nazarii.kretovych@gmail.com>
 | 
			
		||||
---
 | 
			
		||||
 src/calls-application.c  | 81 ++++++++++++++++++++++++++--------------
 | 
			
		||||
 src/calls-application.h  |  1 +
 | 
			
		||||
 tests/meson.build        | 14 +++++++
 | 
			
		||||
 tests/test-application.c | 51 +++++++++++++++++++++++++
 | 
			
		||||
 4 files changed, 118 insertions(+), 29 deletions(-)
 | 
			
		||||
 create mode 100644 tests/test-application.c
 | 
			
		||||
 | 
			
		||||
diff --git a/src/calls-application.c b/src/calls-application.c
 | 
			
		||||
index 591681a..9665a62 100644
 | 
			
		||||
--- a/src/calls-application.c
 | 
			
		||||
+++ b/src/calls-application.c
 | 
			
		||||
@@ -387,6 +387,53 @@ activate (GApplication *application)
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+gchar *
 | 
			
		||||
+parse_tel_uri_and_get_dial_str (const gchar *uri)
 | 
			
		||||
+{
 | 
			
		||||
+  // Get dial string.
 | 
			
		||||
+  const size_t uri_len = strlen(uri);
 | 
			
		||||
+  gchar *dial_str = g_new(gchar, uri_len + 1);
 | 
			
		||||
+  gchar *p_dial_str = dial_str;
 | 
			
		||||
+  const gchar *p_phone_context = strstr(uri, ";phone-context=");
 | 
			
		||||
+  if (p_phone_context)
 | 
			
		||||
+    {
 | 
			
		||||
+      // uri has the 'phone-context' param. Add its value to dial_str.
 | 
			
		||||
+      for (p_phone_context += 15; *p_phone_context; p_phone_context++)
 | 
			
		||||
+        {
 | 
			
		||||
+          const gchar ch = *p_phone_context;
 | 
			
		||||
+          if ((ch >= '0' && ch <= '9') || ch == '+')
 | 
			
		||||
+            {
 | 
			
		||||
+              *p_dial_str = ch;
 | 
			
		||||
+              p_dial_str++;
 | 
			
		||||
+            }
 | 
			
		||||
+          else if (ch == ';')
 | 
			
		||||
+            {
 | 
			
		||||
+              break;
 | 
			
		||||
+            }
 | 
			
		||||
+        }
 | 
			
		||||
+    }
 | 
			
		||||
+  for (const gchar *p_uri = uri; *p_uri; p_uri++)
 | 
			
		||||
+    {
 | 
			
		||||
+      const gchar ch = *p_uri;
 | 
			
		||||
+      if ((ch >= '0' && ch <= '9') || ch == '+')
 | 
			
		||||
+        {
 | 
			
		||||
+          *p_dial_str = ch;
 | 
			
		||||
+          p_dial_str++;
 | 
			
		||||
+        }
 | 
			
		||||
+      else if (ch == ';')
 | 
			
		||||
+        {
 | 
			
		||||
+          break;
 | 
			
		||||
+        }
 | 
			
		||||
+    }
 | 
			
		||||
+  *p_dial_str = '\0';
 | 
			
		||||
+  if (!*dial_str) {
 | 
			
		||||
+    g_free(dial_str);
 | 
			
		||||
+    dial_str = NULL;
 | 
			
		||||
+  }
 | 
			
		||||
+  
 | 
			
		||||
+  return dial_str;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 static void
 | 
			
		||||
 open_tel_uri (CallsApplication *self,
 | 
			
		||||
               const gchar      *uri)
 | 
			
		||||
@@ -407,40 +454,16 @@ open_tel_uri (CallsApplication *self,
 | 
			
		||||
   e_phone_number_free (number);
 | 
			
		||||
 
 | 
			
		||||
   // Get dial string.
 | 
			
		||||
-  const size_t uri_len = strlen(uri);
 | 
			
		||||
-  gchar dial_str[uri_len + 1];
 | 
			
		||||
-  gchar *p_dial_str = dial_str;
 | 
			
		||||
-  const gchar *p_phone_context = strstr(uri, ";phone-context=");
 | 
			
		||||
-  if (p_phone_context) {
 | 
			
		||||
-    // uri has the 'phone-context' param. Add its value to dial_str.
 | 
			
		||||
-    for (p_phone_context += 15; *p_phone_context; p_phone_context++) {
 | 
			
		||||
-      const gchar ch = *p_phone_context;
 | 
			
		||||
-      if ((ch >= '0' && ch <= '9') || ch == '+') {
 | 
			
		||||
-        *p_dial_str = ch;
 | 
			
		||||
-        p_dial_str++;
 | 
			
		||||
-      } else if (ch == ';') {
 | 
			
		||||
-        break;
 | 
			
		||||
-      }
 | 
			
		||||
-    }
 | 
			
		||||
-  }
 | 
			
		||||
-  for (const gchar *p_uri = uri; *p_uri; p_uri++) {
 | 
			
		||||
-    const gchar ch = *p_uri;
 | 
			
		||||
-    if ((ch >= '0' && ch <= '9') || ch == '+') {
 | 
			
		||||
-      *p_dial_str = ch;
 | 
			
		||||
-      p_dial_str++;
 | 
			
		||||
-    } else if (ch == ';') {
 | 
			
		||||
-      break;
 | 
			
		||||
-    }
 | 
			
		||||
-  }
 | 
			
		||||
-  if (p_dial_str == dial_str) {
 | 
			
		||||
-    // dial_str is empty, so we return.
 | 
			
		||||
-    g_warning("Failed to create dial string for tel URI '%s'", uri);
 | 
			
		||||
+  gchar *dial_str = parse_tel_uri_and_get_dial_str (uri);
 | 
			
		||||
+  if (!dial_str) {
 | 
			
		||||
+    g_warning ("Failed to create dial string for tel URI '%s'", uri);
 | 
			
		||||
     return;
 | 
			
		||||
   }
 | 
			
		||||
-  *p_dial_str = '\0';
 | 
			
		||||
 
 | 
			
		||||
   calls_main_window_dial (self->main_window,
 | 
			
		||||
                           dial_str);
 | 
			
		||||
+  
 | 
			
		||||
+  g_free (dial_str);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
diff --git a/src/calls-application.h b/src/calls-application.h
 | 
			
		||||
index 08c3c56..26cf6c8 100644
 | 
			
		||||
--- a/src/calls-application.h
 | 
			
		||||
+++ b/src/calls-application.h
 | 
			
		||||
@@ -34,5 +34,6 @@ G_BEGIN_DECLS
 | 
			
		||||
 G_DECLARE_FINAL_TYPE (CallsApplication, calls_application, CALLS, APPLICATION, GtkApplication)
 | 
			
		||||
 
 | 
			
		||||
 CallsApplication   *calls_application_new    (void);
 | 
			
		||||
+gchar *parse_tel_uri_and_get_dial_str (const gchar *);
 | 
			
		||||
 
 | 
			
		||||
 G_END_DECLS
 | 
			
		||||
diff --git a/tests/meson.build b/tests/meson.build
 | 
			
		||||
index 618b1c4..5cf581d 100644
 | 
			
		||||
--- a/tests/meson.build
 | 
			
		||||
+++ b/tests/meson.build
 | 
			
		||||
@@ -71,5 +71,19 @@ t = executable('manager', test_sources,
 | 
			
		||||
                 )
 | 
			
		||||
 test('manager', t, env: test_env)
 | 
			
		||||
 
 | 
			
		||||
+test_sources = [ 'test-application.c' ]
 | 
			
		||||
+
 | 
			
		||||
+t = executable('application', test_sources,
 | 
			
		||||
+                 calls_sources, calls_enum_sources, calls_resources,
 | 
			
		||||
+                 wl_proto_sources, wayland_sources,
 | 
			
		||||
+                 c_args : test_cflags,
 | 
			
		||||
+                 link_args: test_link_args,
 | 
			
		||||
+                 link_with : calls_vala,
 | 
			
		||||
+                 dependencies: calls_deps,
 | 
			
		||||
+                 include_directories : [
 | 
			
		||||
+                   calls_includes
 | 
			
		||||
+                 ]
 | 
			
		||||
+                )
 | 
			
		||||
+test('application', t, env: test_env)
 | 
			
		||||
 
 | 
			
		||||
 endif
 | 
			
		||||
diff --git a/tests/test-application.c b/tests/test-application.c
 | 
			
		||||
new file mode 100644
 | 
			
		||||
index 0000000..ffd192e
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/tests/test-application.c
 | 
			
		||||
@@ -0,0 +1,51 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ * Copyright (C) 2020 Purism SPC
 | 
			
		||||
+ *
 | 
			
		||||
+ * SPDX-License-Identifier: GPL-3.0+
 | 
			
		||||
+ */
 | 
			
		||||
+
 | 
			
		||||
+#include "calls-application.h"
 | 
			
		||||
+
 | 
			
		||||
+#include <gtk/gtk.h>
 | 
			
		||||
+#include <libpeas/peas.h>
 | 
			
		||||
+
 | 
			
		||||
+static void
 | 
			
		||||
+test_calls_application_parse_tel_uri_and_get_dial_str ()
 | 
			
		||||
+{
 | 
			
		||||
+  gchar *dial_str;
 | 
			
		||||
+
 | 
			
		||||
+  // Test 1.
 | 
			
		||||
+  dial_str = parse_tel_uri_and_get_dial_str ("tel:123-456-789;phone-context=+48");
 | 
			
		||||
+  g_assert_true (g_strcmp0 (dial_str, "+48123456789") == 0);
 | 
			
		||||
+  g_free(dial_str);
 | 
			
		||||
+
 | 
			
		||||
+  // Test 2.
 | 
			
		||||
+  dial_str = parse_tel_uri_and_get_dial_str ("tel:+38-096-123-45-67");
 | 
			
		||||
+  g_assert_true (g_strcmp0 (dial_str, "+380961234567") == 0);
 | 
			
		||||
+  g_free(dial_str);
 | 
			
		||||
+  
 | 
			
		||||
+  // Test 3.
 | 
			
		||||
+  dial_str = parse_tel_uri_and_get_dial_str ("tel:0-800-123-456");
 | 
			
		||||
+  g_assert_true (g_strcmp0 (dial_str, "0800123456") == 0);
 | 
			
		||||
+  g_free(dial_str);
 | 
			
		||||
+  
 | 
			
		||||
+  // Test 4.
 | 
			
		||||
+  dial_str = parse_tel_uri_and_get_dial_str ("tel:447");
 | 
			
		||||
+  g_assert_true (g_strcmp0 (dial_str, "447") == 0);
 | 
			
		||||
+  g_free(dial_str);
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+gint
 | 
			
		||||
+main (gint argc, gchar *argv[])
 | 
			
		||||
+{
 | 
			
		||||
+  gtk_test_init (&argc, &argv, NULL);
 | 
			
		||||
+
 | 
			
		||||
+  /* Add builddir as search path */
 | 
			
		||||
+#ifdef PLUGIN_BUILDDIR
 | 
			
		||||
+  peas_engine_add_search_path (peas_engine_get_default (), PLUGIN_BUILDDIR, NULL);
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
+  g_test_add_func("/Calls/Application/parse_tel_uri_and_get_dial_str", test_calls_application_parse_tel_uri_and_get_dial_str);
 | 
			
		||||
+
 | 
			
		||||
+  return g_test_run();
 | 
			
		||||
+}
 | 
			
		||||
-- 
 | 
			
		||||
2.26.2
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										126
									
								
								net-voip/gnome-calls/files/230.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								net-voip/gnome-calls/files/230.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,126 @@
 | 
			
		||||
From eaed62151bd533a4021ba937a959464383ddc0cb Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Arnaud Ferraris <arnaud.ferraris@collabora.com>
 | 
			
		||||
Date: Tue, 12 Jan 2021 18:40:12 +0100
 | 
			
		||||
Subject: [PATCH 1/4] call-display: update libcallaudio API calls
 | 
			
		||||
 | 
			
		||||
Upstream modified the async API, make sure we use it.
 | 
			
		||||
---
 | 
			
		||||
 src/calls-call-display.c | 10 +++++++---
 | 
			
		||||
 1 file changed, 7 insertions(+), 3 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/calls-call-display.c b/src/calls-call-display.c
 | 
			
		||||
index 7d17772..2bfb8fc 100644
 | 
			
		||||
--- a/src/calls-call-display.c
 | 
			
		||||
+++ b/src/calls-call-display.c
 | 
			
		||||
@@ -211,7 +211,7 @@ stop_timeout (CallsCallDisplay *self)
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 static void
 | 
			
		||||
-select_mode_complete (gboolean success, GError *error)
 | 
			
		||||
+select_mode_complete (gboolean success, GError *error, gpointer data)
 | 
			
		||||
 {
 | 
			
		||||
   if (error)
 | 
			
		||||
     {
 | 
			
		||||
@@ -261,11 +261,15 @@ call_state_changed_cb (CallsCallDisplay *self,
 | 
			
		||||
          state != CALLS_CALL_STATE_DIALING
 | 
			
		||||
          && state != CALLS_CALL_STATE_ALERTING);
 | 
			
		||||
 
 | 
			
		||||
-      call_audio_select_mode_async (CALL_AUDIO_MODE_CALL, select_mode_complete);
 | 
			
		||||
+      call_audio_select_mode_async (CALL_AUDIO_MODE_CALL,
 | 
			
		||||
+                                    select_mode_complete,
 | 
			
		||||
+                                    NULL);
 | 
			
		||||
       break;
 | 
			
		||||
 
 | 
			
		||||
     case CALLS_CALL_STATE_DISCONNECTED:
 | 
			
		||||
-      call_audio_select_mode_async (CALL_AUDIO_MODE_DEFAULT, select_mode_complete);
 | 
			
		||||
+      call_audio_select_mode_async (CALL_AUDIO_MODE_DEFAULT,
 | 
			
		||||
+                                    select_mode_complete,
 | 
			
		||||
+                                    NULL);
 | 
			
		||||
       break;
 | 
			
		||||
     }
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.26.2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
From b371ee665c981c3ea9f398da04fdf1536560cae6 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Arnaud Ferraris <arnaud.ferraris@collabora.com>
 | 
			
		||||
Date: Tue, 12 Jan 2021 18:42:29 +0100
 | 
			
		||||
Subject: [PATCH 2/4] src: meson.build: update libcallaudio dependency
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/meson.build | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/meson.build b/src/meson.build
 | 
			
		||||
index 6222432..9be8cd8 100644
 | 
			
		||||
--- a/src/meson.build
 | 
			
		||||
+++ b/src/meson.build
 | 
			
		||||
@@ -36,7 +36,7 @@ calls_deps = [ dependency('gobject-2.0', version: '>= 2.58'),
 | 
			
		||||
                dependency('gom-1.0'),
 | 
			
		||||
                dependency('libebook-contacts-1.2'),
 | 
			
		||||
                dependency('folks'),
 | 
			
		||||
-               dependency('libcallaudio-0'),
 | 
			
		||||
+               dependency('libcallaudio-0.1'),
 | 
			
		||||
              ]
 | 
			
		||||
 
 | 
			
		||||
 if wl_scanner.found()
 | 
			
		||||
-- 
 | 
			
		||||
2.26.2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
From 2f37394f2e4d3947db967abfa7257cb563b5b4cd Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Arnaud Ferraris <arnaud.ferraris@collabora.com>
 | 
			
		||||
Date: Tue, 12 Jan 2021 18:45:22 +0100
 | 
			
		||||
Subject: [PATCH 3/4] d/control: add version requirement on libcallaudio build
 | 
			
		||||
 dependency
 | 
			
		||||
 | 
			
		||||
The new API appeared in version 0.0.5.
 | 
			
		||||
---
 | 
			
		||||
 debian/control | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/debian/control b/debian/control
 | 
			
		||||
index dc26174..1804e63 100644
 | 
			
		||||
--- a/debian/control
 | 
			
		||||
+++ b/debian/control
 | 
			
		||||
@@ -8,7 +8,7 @@ Build-Depends:
 | 
			
		||||
  debhelper (>= 11),
 | 
			
		||||
  desktop-file-utils,
 | 
			
		||||
  gtk-doc-tools <!nodoc>,
 | 
			
		||||
- libcallaudio-dev,
 | 
			
		||||
+ libcallaudio-dev (>= 0.0.5),
 | 
			
		||||
  libfeedback-dev,
 | 
			
		||||
  libhandy-1-dev (>= 1.0.0),
 | 
			
		||||
  libgtk-3-dev,
 | 
			
		||||
-- 
 | 
			
		||||
2.26.2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
From 5d3ee0acbda6f15c31e9538287ce9323ded19b37 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Arnaud Ferraris <arnaud.ferraris@gmail.com>
 | 
			
		||||
Date: Tue, 19 Jan 2021 22:13:54 +0100
 | 
			
		||||
Subject: [PATCH 4/4] flatpak: update callaudiod version
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 sm.puri.Calls.json | 4 ++--
 | 
			
		||||
 1 file changed, 2 insertions(+), 2 deletions(-)
 | 
			
		||||
 | 
			
		||||
diff --git a/sm.puri.Calls.json b/sm.puri.Calls.json
 | 
			
		||||
index da08789..10e5a36 100644
 | 
			
		||||
--- a/sm.puri.Calls.json
 | 
			
		||||
+++ b/sm.puri.Calls.json
 | 
			
		||||
@@ -267,8 +267,8 @@
 | 
			
		||||
             "sources" : [
 | 
			
		||||
                 {
 | 
			
		||||
                     "type" : "archive",
 | 
			
		||||
-                    "url" : "https://gitlab.com/mobian1/callaudiod/-/archive/0.0.4/callaudiod-0.0.4.tar.gz",
 | 
			
		||||
-                    "sha256" : "a9620dee2999fa85a7ca8f0314be3317a99fc225439ac193d5f727ff9397f93d"
 | 
			
		||||
+                    "url" : "https://gitlab.com/mobian1/callaudiod/-/archive/0.0.5/callaudiod-0.0.5.tar.gz",
 | 
			
		||||
+                    "sha256" : "0016a5800749d408dbaa14d8a7886bf492068d56508c83a352dee9b1920754b4"
 | 
			
		||||
                 }
 | 
			
		||||
             ]
 | 
			
		||||
         },
 | 
			
		||||
-- 
 | 
			
		||||
2.26.2
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										37
									
								
								net-voip/gnome-calls/files/add-call-back-button.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								net-voip/gnome-calls/files/add-call-back-button.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
From c43bfe3ebb9c0f98c143b8b3e777058d5c1c11e3 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
 | 
			
		||||
Date: Tue, 8 Sep 2020 05:10:11 +0200
 | 
			
		||||
Subject: [PATCH] src/calls-notifier.c: Add call-back button
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/calls-notifier.c | 7 +++++++
 | 
			
		||||
 1 file changed, 7 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/calls-notifier.c b/src/calls-notifier.c
 | 
			
		||||
index 292c559..076e2c6 100644
 | 
			
		||||
--- a/src/calls-notifier.c
 | 
			
		||||
+++ b/src/calls-notifier.c
 | 
			
		||||
@@ -46,6 +46,7 @@ notify (CallsNotifier *self, CallsCall *call)
 | 
			
		||||
   g_autoptr(GNotification) notification;
 | 
			
		||||
   g_autofree gchar *msg = NULL;
 | 
			
		||||
   g_autofree gchar *ref = NULL;
 | 
			
		||||
+  g_autofree gchar *label_callback = NULL;
 | 
			
		||||
   const char *name;
 | 
			
		||||
 
 | 
			
		||||
   notification = g_notification_new (_("Missed call"));
 | 
			
		||||
@@ -57,6 +58,12 @@ notify (CallsNotifier *self, CallsCall *call)
 | 
			
		||||
     msg = g_strdup_printf (_("Missed call from %s"), calls_call_get_number (call));
 | 
			
		||||
 
 | 
			
		||||
   g_notification_set_body (notification, msg);
 | 
			
		||||
+
 | 
			
		||||
+  if (calls_call_get_number (call)) {
 | 
			
		||||
+    label_callback = g_strdup_printf ("app.dial::%s", calls_call_get_number (call));
 | 
			
		||||
+    g_notification_add_button (notification, _("Call back"), label_callback);
 | 
			
		||||
+  }
 | 
			
		||||
+
 | 
			
		||||
   ref = g_strdup_printf ("missed-call-%s", calls_call_get_number (call) ?: "unknown");
 | 
			
		||||
   g_application_send_notification (app, ref, notification);
 | 
			
		||||
 }
 | 
			
		||||
-- 
 | 
			
		||||
2.26.2
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								net-voip/gnome-calls/files/calll-display.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								net-voip/gnome-calls/files/calll-display.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
diff --git a/src/calls-call-display.c b/src/calls-call-display.c
 | 
			
		||||
index 7d17772..f4aa855 100644
 | 
			
		||||
--- a/src/calls-call-display.c
 | 
			
		||||
+++ b/src/calls-call-display.c
 | 
			
		||||
@@ -261,11 +261,11 @@ call_state_changed_cb (CallsCallDisplay *self,
 | 
			
		||||
          state != CALLS_CALL_STATE_DIALING
 | 
			
		||||
          && state != CALLS_CALL_STATE_ALERTING);
 | 
			
		||||
 
 | 
			
		||||
-      call_audio_select_mode_async (CALL_AUDIO_MODE_CALL, select_mode_complete);
 | 
			
		||||
+      call_audio_select_mode_async (CALL_AUDIO_MODE_CALL, select_mode_complete, NULL);
 | 
			
		||||
       break;
 | 
			
		||||
 
 | 
			
		||||
     case CALLS_CALL_STATE_DISCONNECTED:
 | 
			
		||||
-      call_audio_select_mode_async (CALL_AUDIO_MODE_DEFAULT, select_mode_complete);
 | 
			
		||||
+      call_audio_select_mode_async (CALL_AUDIO_MODE_DEFAULT, select_mode_complete, NULL);
 | 
			
		||||
       break;
 | 
			
		||||
     }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										63
									
								
								net-voip/gnome-calls/files/inhibit-suspend-during-call.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								net-voip/gnome-calls/files/inhibit-suspend-during-call.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
From 9619ebb674771206662f099901c617edb54b870a Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
 | 
			
		||||
Date: Thu, 6 Aug 2020 22:28:37 +0200
 | 
			
		||||
Subject: [PATCH] src/calls-call-window.c: Inhibit suspend during active call
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 src/calls-call-window.c | 26 ++++++++++++++++++++++++++
 | 
			
		||||
 1 file changed, 26 insertions(+)
 | 
			
		||||
 | 
			
		||||
diff --git a/src/calls-call-window.c b/src/calls-call-window.c
 | 
			
		||||
index 312a892..d6c5d8a 100644
 | 
			
		||||
--- a/src/calls-call-window.c
 | 
			
		||||
+++ b/src/calls-call-window.c
 | 
			
		||||
@@ -60,6 +60,8 @@ struct _CallsCallWindow
 | 
			
		||||
   GtkStack *call_stack;
 | 
			
		||||
   GtkFlowBox *call_selector;
 | 
			
		||||
 
 | 
			
		||||
+  guint inhibit_cookie;
 | 
			
		||||
+
 | 
			
		||||
 #ifdef CALLS_WAYLAND
 | 
			
		||||
   gboolean screensaver_active;
 | 
			
		||||
   struct zwlr_layer_shell_v1 *layer_shell_iface;
 | 
			
		||||
@@ -164,6 +166,28 @@ update_layer_surface (CallsCallWindow *self,
 | 
			
		||||
 #endif // CALLS_WAYLAND
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+static void
 | 
			
		||||
+session_inhibit (CallsCallWindow *self, gboolean inhibit)
 | 
			
		||||
+{
 | 
			
		||||
+  if (inhibit)
 | 
			
		||||
+    {
 | 
			
		||||
+      if (self->inhibit_cookie == 0)
 | 
			
		||||
+        self->inhibit_cookie =
 | 
			
		||||
+          gtk_application_inhibit (gtk_window_get_application (GTK_WINDOW (self)),
 | 
			
		||||
+                                   GTK_WINDOW (self),
 | 
			
		||||
+                                   GTK_APPLICATION_INHIBIT_SUSPEND,
 | 
			
		||||
+                                   "call active");
 | 
			
		||||
+    }
 | 
			
		||||
+  else
 | 
			
		||||
+    {
 | 
			
		||||
+      gtk_application_uninhibit (gtk_window_get_application (GTK_WINDOW (self)),
 | 
			
		||||
+                                 self->inhibit_cookie);
 | 
			
		||||
+      self->inhibit_cookie = 0;
 | 
			
		||||
+    }
 | 
			
		||||
+
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
 static void
 | 
			
		||||
 update_visibility (CallsCallWindow *self)
 | 
			
		||||
 {
 | 
			
		||||
@@ -184,6 +208,8 @@ update_visibility (CallsCallWindow *self)
 | 
			
		||||
     {
 | 
			
		||||
       gtk_stack_set_visible_child_name (self->main_stack, "active-call");
 | 
			
		||||
     }
 | 
			
		||||
+
 | 
			
		||||
+  session_inhibit (self, !!calls);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-- 
 | 
			
		||||
2.26.2
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										60
									
								
								net-voip/gnome-calls/gnome-calls-0.3.4.ebuild
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								net-voip/gnome-calls/gnome-calls-0.3.4.ebuild
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
# Copyright 1999-2021 Gentoo Authors
 | 
			
		||||
# Distributed under the terms of the GNU General Public License v2
 | 
			
		||||
 | 
			
		||||
EAPI=7
 | 
			
		||||
VALA_USE_DEPEND="vapigen"
 | 
			
		||||
 | 
			
		||||
inherit vala meson gnome2-utils git-r3 xdg
 | 
			
		||||
 | 
			
		||||
MY_PN="calls"
 | 
			
		||||
DESCRIPTION="Phone dialer and call handler"
 | 
			
		||||
HOMEPAGE="https://gitlab.gnome.org/GNOME/calls"
 | 
			
		||||
SRC_URI="https://gitlab.gnome.org/GNOME/calls/-/archive/v${PV}/calls-v${PV}.tar.gz"
 | 
			
		||||
 | 
			
		||||
LICENSE="GPL-3"
 | 
			
		||||
SLOT="0"
 | 
			
		||||
KEYWORDS="~amd64 ~arm64"
 | 
			
		||||
IUSE="+introspection +vala"
 | 
			
		||||
 | 
			
		||||
REQUIRED_USE="vala? ( introspection )"
 | 
			
		||||
 | 
			
		||||
DEPEND="
 | 
			
		||||
		dev-libs/feedbackd
 | 
			
		||||
		>=gui-libs/libhandy-1.0.0
 | 
			
		||||
		dev-libs/folks
 | 
			
		||||
		dev-libs/gom
 | 
			
		||||
		dev-libs/libpeas
 | 
			
		||||
		>=net-misc/modemmanager-1.12.0
 | 
			
		||||
		>=media-sound/callaudiod-0.0.5
 | 
			
		||||
		gnome-extra/evolution-data-server
 | 
			
		||||
		net-libs/sofia-sip
 | 
			
		||||
		"
 | 
			
		||||
RDEPEND="${DEPEND}"
 | 
			
		||||
BDEPEND="
 | 
			
		||||
		vala? ( $(vala_depend) )
 | 
			
		||||
		dev-util/meson
 | 
			
		||||
		dev-libs/gobject-introspection
 | 
			
		||||
		dev-util/wayland-scanner
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
PATCHES=(
 | 
			
		||||
	"${FILESDIR}/0001-use-at-cmds-to-mute.patch"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
S=${WORKDIR}/${MY_PN}-${PV}
 | 
			
		||||
 | 
			
		||||
src_prepare() {
 | 
			
		||||
	default
 | 
			
		||||
	eapply_user
 | 
			
		||||
	use vala && vala_src_prepare
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pkg_postinst() {
 | 
			
		||||
	xdg_pkg_postinst
 | 
			
		||||
	gnome2_schemas_update
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pkg_postrm() {
 | 
			
		||||
	xdg_pkg_postrm
 | 
			
		||||
	gnome2_schemas_update
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user