From 38d8e7ff935a562276de242982b8d1d780e0a161 Mon Sep 17 00:00:00 2001
From: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
Date: Mon, 18 Jul 2016 09:51:12 -0400
Subject: [PATCH] connectivityChanged: add support

This patch improves the network changes management. The client now
notifies the daemon that the network connectivity has changed.

Change-Id: I4a9e5dc2ea4913b41faa52d2375901c176f4ae67
Tuleap: #848
---
 .../app/src/main/java/cx/ring/service/DRingService.java  | 9 +++++++++
 .../app/src/main/java/cx/ring/service/IDRingService.aidl | 2 ++
 .../app/src/main/java/cx/ring/service/LocalService.java  | 1 +
 ring-android/app/src/main/jni/configurationmanager.i     | 1 +
 4 files changed, 13 insertions(+)

diff --git a/ring-android/app/src/main/java/cx/ring/service/DRingService.java b/ring-android/app/src/main/java/cx/ring/service/DRingService.java
index c56d4eb29..2a8f2ba4c 100644
--- a/ring-android/app/src/main/java/cx/ring/service/DRingService.java
+++ b/ring-android/app/src/main/java/cx/ring/service/DRingService.java
@@ -1496,5 +1496,14 @@ public class DRingService extends Service {
                 }
             });
         }
+
+        public void connectivityChanged() {
+            getExecutor().execute(new SipRunnable() {
+                @Override
+                protected void doRun() throws SameThreadException, RemoteException {
+                    Ringservice.connectivityChanged();
+                }
+            });
+        }
     };
 }
diff --git a/ring-android/app/src/main/java/cx/ring/service/IDRingService.aidl b/ring-android/app/src/main/java/cx/ring/service/IDRingService.aidl
index 68c14998e..24ffd145a 100644
--- a/ring-android/app/src/main/java/cx/ring/service/IDRingService.aidl
+++ b/ring-android/app/src/main/java/cx/ring/service/IDRingService.aidl
@@ -111,4 +111,6 @@ interface IDRingService {
 
     int exportAccounts(in List accountIDs, in String toDir, in String password);
     int importAccounts(in String archivePath, in String password);
+
+    void connectivityChanged();
 }
diff --git a/ring-android/app/src/main/java/cx/ring/service/LocalService.java b/ring-android/app/src/main/java/cx/ring/service/LocalService.java
index 12611460b..a68e950f1 100644
--- a/ring-android/app/src/main/java/cx/ring/service/LocalService.java
+++ b/ring-android/app/src/main/java/cx/ring/service/LocalService.java
@@ -1083,6 +1083,7 @@ public class LocalService extends Service implements SharedPreferences.OnSharedP
         if (dringStarted) {
             try {
                 getRemoteService().setAccountsActive(isConnected());
+                getRemoteService().connectivityChanged();
             } catch (RemoteException e) {
                 e.printStackTrace();
             }
diff --git a/ring-android/app/src/main/jni/configurationmanager.i b/ring-android/app/src/main/jni/configurationmanager.i
index 59b485b60..a8d92a886 100644
--- a/ring-android/app/src/main/jni/configurationmanager.i
+++ b/ring-android/app/src/main/jni/configurationmanager.i
@@ -169,6 +169,7 @@ void sendTrustRequest(const std::string& accountId, const std::string& to, const
 int exportAccounts(std::vector<std::string> accountIDs, std::string toDir, std::string password);
 int importAccounts(std::string archivePath, std::string password);
 
+void connectivityChanged();
 }
 
 class ConfigurationCallback {
-- 
GitLab