commit:     d382ce26a28ad99244db36314d29d618f2c3c177
Author:     Gerben Jan Dijkman <gjdijkman <AT> gjdwebserver <DOT> nl>
AuthorDate: Sat Jul 24 01:30:35 2021 +0000
Commit:     Gerben Jan Dijkman <gjdijkman <AT> gjdwebserver <DOT> nl>
CommitDate: Sat Jul 24 01:30:35 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=d382ce26

net-voip/gnome-calls: Added for PinePhone use

Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Gerben jan Dijkman <gjdijkman <AT> gjdwebserver.nl>

 net-voip/gnome-calls/Manifest                      |   1 +
 ...lay-use-PinePhone-s-device-for-ugly-hacks.patch |  61 ++++
 .../files/0001-use-at-cmds-to-mute.patch           |  36 +++
 net-voip/gnome-calls/files/188.patch               | 335 +++++++++++++++++++++
 net-voip/gnome-calls/files/230.patch               | 126 ++++++++
 .../gnome-calls/files/add-call-back-button.patch   |  37 +++
 net-voip/gnome-calls/files/calll-display.patch     |  18 ++
 .../files/inhibit-suspend-during-call.patch        |  63 ++++
 net-voip/gnome-calls/gnome-calls-0.3.4.ebuild      |  56 ++++
 net-voip/gnome-calls/metadata.xml                  |  15 +
 10 files changed, 748 insertions(+)

diff --git a/net-voip/gnome-calls/Manifest b/net-voip/gnome-calls/Manifest
new file mode 100644
index 000000000..2306bcd27
--- /dev/null
+++ b/net-voip/gnome-calls/Manifest
@@ -0,0 +1 @@
+DIST calls-v0.3.4.tar.gz 203835 BLAKE2B 
dddafde2c5c1b247a603947679ed9335331ecfacbcdf73dbacc2f8542de783d8acdd398b0ab589680a24097d723dca731600a1886ed923be3889b00a60391ad5
 SHA512 
39463fcf493c8aeb428d41111adc957203dbcb57c033b2025c4932e52c8e158d17687df0ec13ffe4bf704b4c3ec75cdf3bfbacc6f839fd7193290d239df0df72

diff --git 
a/net-voip/gnome-calls/files/0001-call-display-use-PinePhone-s-device-for-ugly-hacks.patch
 
b/net-voip/gnome-calls/files/0001-call-display-use-PinePhone-s-device-for-ugly-hacks.patch
new file mode 100644
index 000000000..fb4ef7d0f
--- /dev/null
+++ 
b/net-voip/gnome-calls/files/0001-call-display-use-PinePhone-s-device-for-ugly-hacks.patch
@@ -0,0 +1,61 @@
+From 6630fea2096118cf0566cfa9a7e07d2b977ffc86 Mon Sep 17 00:00:00 2001
+From: Arnaud Ferraris <arnaud.ferra...@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
+

diff --git a/net-voip/gnome-calls/files/0001-use-at-cmds-to-mute.patch 
b/net-voip/gnome-calls/files/0001-use-at-cmds-to-mute.patch
new file mode 100644
index 000000000..cb1aa14c2
--- /dev/null
+++ b/net-voip/gnome-calls/files/0001-use-at-cmds-to-mute.patch
@@ -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);
++  }    
+ }
+ 
+ 

diff --git a/net-voip/gnome-calls/files/188.patch 
b/net-voip/gnome-calls/files/188.patch
new file mode 100644
index 000000000..60717ded5
--- /dev/null
+++ b/net-voip/gnome-calls/files/188.patch
@@ -0,0 +1,335 @@
+From 5c0a588da7a0ffa57c8893650432804ff2663800 Mon Sep 17 00:00:00 2001
+From: Nazarii Kretovych <nazarii.kretov...@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.kretov...@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.kretov...@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.kretov...@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.kretov...@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.kretov...@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
+

diff --git a/net-voip/gnome-calls/files/230.patch 
b/net-voip/gnome-calls/files/230.patch
new file mode 100644
index 000000000..1ab15515a
--- /dev/null
+++ b/net-voip/gnome-calls/files/230.patch
@@ -0,0 +1,126 @@
+From eaed62151bd533a4021ba937a959464383ddc0cb Mon Sep 17 00:00:00 2001
+From: Arnaud Ferraris <arnaud.ferra...@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.ferra...@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.ferra...@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.ferra...@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
+

diff --git a/net-voip/gnome-calls/files/add-call-back-button.patch 
b/net-voip/gnome-calls/files/add-call-back-button.patch
new file mode 100644
index 000000000..cbff43aba
--- /dev/null
+++ b/net-voip/gnome-calls/files/add-call-back-button.patch
@@ -0,0 +1,37 @@
+From c43bfe3ebb9c0f98c143b8b3e777058d5c1c11e3 Mon Sep 17 00:00:00 2001
+From: Evangelos Ribeiro Tzaras <dev...@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
+

diff --git a/net-voip/gnome-calls/files/calll-display.patch 
b/net-voip/gnome-calls/files/calll-display.patch
new file mode 100644
index 000000000..3573a9171
--- /dev/null
+++ b/net-voip/gnome-calls/files/calll-display.patch
@@ -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;
+     }
+ 

diff --git a/net-voip/gnome-calls/files/inhibit-suspend-during-call.patch 
b/net-voip/gnome-calls/files/inhibit-suspend-during-call.patch
new file mode 100644
index 000000000..15836585f
--- /dev/null
+++ b/net-voip/gnome-calls/files/inhibit-suspend-during-call.patch
@@ -0,0 +1,63 @@
+From 9619ebb674771206662f099901c617edb54b870a Mon Sep 17 00:00:00 2001
+From: Evangelos Ribeiro Tzaras <dev...@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
+

diff --git a/net-voip/gnome-calls/gnome-calls-0.3.4.ebuild 
b/net-voip/gnome-calls/gnome-calls-0.3.4.ebuild
new file mode 100644
index 000000000..f3fb4f257
--- /dev/null
+++ b/net-voip/gnome-calls/gnome-calls-0.3.4.ebuild
@@ -0,0 +1,56 @@
+# 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
+
+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";
+EGIT_REPO_URI="https://gitlab.gnome.org//GNOME/calls.git";
+
+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
+               dev-libs/protobuf
+               "
+RDEPEND="${DEPEND}"
+BDEPEND="
+               vala? ( $(vala_depend) )
+               dev-util/meson
+               dev-libs/gobject-introspection
+               dev-util/wayland-scanner
+"
+
+S="${WORKDIR}/$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
+}

diff --git a/net-voip/gnome-calls/metadata.xml 
b/net-voip/gnome-calls/metadata.xml
new file mode 100644
index 000000000..ee32d2acf
--- /dev/null
+++ b/net-voip/gnome-calls/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>gjdijk...@gjdwebserver.nl</email>
+               <name>Gerben Jan Dijkman</name>
+       </maintainer>
+       <longdescription lang="en">
+       A phone dialer and call handler.
+       </longdescription>
+       <upstream>
+               <doc>https://gitlab.gnome.org/GNOME/calls</doc>
+               <bugs-to>https://gitlab.gnome.org/GNOME/calls/-/issues</bugs-to>
+       </upstream>
+</pkgmetadata>

Reply via email to