From 3e2a1d00d445510d23f32789a64a1d07c9bcfd62 Mon Sep 17 00:00:00 2001
From: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Date: Tue, 19 Nov 2013 17:23:00 -0500
Subject: [PATCH] register accounts on startup

---
 res/layout/activity_sflphone_home.xml        |  2 +-
 src/org/sflphone/fragments/MenuFragment.java |  6 +++++-
 src/org/sflphone/service/ISipService.aidl    |  1 +
 src/org/sflphone/service/SipService.java     | 13 +++++++++++++
 4 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/res/layout/activity_sflphone_home.xml b/res/layout/activity_sflphone_home.xml
index 9f004e412..d84349ce9 100644
--- a/res/layout/activity_sflphone_home.xml
+++ b/res/layout/activity_sflphone_home.xml
@@ -59,7 +59,7 @@ as that of the covered work.
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:layout_below="@+id/pts_main"
-            android:background="#000000"
+            android:background="@drawable/bg_72"
             android:paddingBottom="@dimen/contact_drawer_handle_height" />
 
         <ImageView
diff --git a/src/org/sflphone/fragments/MenuFragment.java b/src/org/sflphone/fragments/MenuFragment.java
index 6276db64a..00d729d25 100644
--- a/src/org/sflphone/fragments/MenuFragment.java
+++ b/src/org/sflphone/fragments/MenuFragment.java
@@ -104,6 +104,11 @@ public class MenuFragment extends Fragment implements LoaderCallbacks<Bundle>, A
         }
 
         mCallbacks = (Callbacks) activity;
+        try {
+            mCallbacks.getService().registerAllAccounts();
+        } catch (RemoteException e) {
+            e.printStackTrace();
+        }
         getLoaderManager().initLoader(LoaderConstants.ACCOUNTS_LOADER, null, this);
 
     }
@@ -230,7 +235,6 @@ public class MenuFragment extends Fragment implements LoaderCallbacks<Bundle>, A
         mAccountAdapter.removeAll();
         ArrayList<Account> accounts = bun.getParcelableArrayList(AccountsLoader.ACCOUNTS);
         mAccountAdapter.addAll(accounts);
-
     }
 
     @Override
diff --git a/src/org/sflphone/service/ISipService.aidl b/src/org/sflphone/service/ISipService.aidl
index a953acf1f..886700cd6 100644
--- a/src/org/sflphone/service/ISipService.aidl
+++ b/src/org/sflphone/service/ISipService.aidl
@@ -20,6 +20,7 @@ interface ISipService {
     void setAccountOrder(in String order);
     Map getAccountDetails(in String accountID);
     Map getAccountTemplate();
+    void registerAllAccounts();
     void setAccountDetails(in String accountId, in Map accountDetails);
     List getCredentials(in String accountID);
     void setCredentials(in String accountID, in List creds);
diff --git a/src/org/sflphone/service/SipService.java b/src/org/sflphone/service/SipService.java
index 16379eaa9..c9bb126aa 100644
--- a/src/org/sflphone/service/SipService.java
+++ b/src/org/sflphone/service/SipService.java
@@ -127,6 +127,8 @@ public class SipService extends Service {
 
         notificationManager.onServiceCreate();
         mediaManager.startService();
+        
+        
 
     }
 
@@ -1328,6 +1330,17 @@ public class SipService extends Service {
             });
         }
 
+        @Override
+        public void registerAllAccounts() throws RemoteException {
+            getExecutor().execute(new SipRunnable() {
+                @Override
+                protected void doRun() throws SameThreadException, RemoteException {
+                    Log.i(TAG, "SipService.registerAllAccounts() thread running...");
+                    configurationManagerJNI.registerAllAccounts();
+                }
+            });
+        }
+
        
 
     };
-- 
GitLab