ip2ip removal support
Note : this patch modifies compile.sh to bump a more recent version of
the daemon, also removing ip2ip.
Tuleap: #448
Change-Id: I07bf4c47d74e13bfbe303ba7b35a9564c1a4ecf7
diff --git a/compile.sh b/compile.sh
index eb7415a..4ca2aae 100755
--- a/compile.sh
+++ b/compile.sh
@@ -156,7 +156,7 @@
if [ "$FETCH" = 1 ]
then
# 1/ dring
- TESTED_HASH=ca611bcc469d40bc5642eafcc73ee0db7bec84a8
+ TESTED_HASH=3677f3ad0503f5dfaaf99ee4436fa6c0d680b9bd
if [ ! -d "ring-daemon" ]; then
echo "ring daemon source not found, cloning"
git clone https://gerrit-ring.savoirfairelinux.com/ring-daemon.git
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java
index 360adc5..ebbd68b 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java
@@ -57,7 +57,6 @@
public static final int ACCOUNT_CREATE_REQUEST = 1;
public static final int ACCOUNT_EDIT_REQUEST = 2;
private AccountsAdapter mAccountsAdapter;
- private AccountsAdapter mIP2IPAdapter;
private DragSortListView mDnDListView;
@@ -97,7 +96,6 @@
Log.i(TAG, "Create Account Management Fragment");
mAccountsAdapter = new AccountsAdapter(getActivity());
- mIP2IPAdapter = new AccountsAdapter(getActivity());
this.setHasOptionsMenu(true);
IntentFilter intentFilter = new IntentFilter();
@@ -133,15 +131,6 @@
launchAccountEditActivity(mAccountsAdapter.getItem(pos));
}
});
-
- ((ListView) getView().findViewById(R.id.ip2ip)).setAdapter(mIP2IPAdapter);
- ((ListView) getView().findViewById(R.id.ip2ip)).setOnItemClickListener(new OnItemClickListener() {
-
- @Override
- public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
- launchAccountEditActivity(mIP2IPAdapter.accounts.get(0));
- }
- });
}
@Override
@@ -371,8 +360,6 @@
if (mAccountsAdapter.isEmpty()) {
mDnDListView.setEmptyView(v.findViewById(R.id.empty_account_list));
}
- mIP2IPAdapter.replaceAll(service.getIP2IPAccount());
mAccountsAdapter.notifyDataSetChanged();
- mIP2IPAdapter.notifyDataSetChanged();
}
}
diff --git a/ring-android/app/src/main/java/cx/ring/model/account/Account.java b/ring-android/app/src/main/java/cx/ring/model/account/Account.java
index 7bc974b..a68022d 100644
--- a/ring-android/app/src/main/java/cx/ring/model/account/Account.java
+++ b/ring-android/app/src/main/java/cx/ring/model/account/Account.java
@@ -26,6 +26,7 @@
import java.util.List;
import java.util.Map;
+import android.text.TextUtils;
import android.util.Log;
public class Account extends java.util.Observable {
@@ -178,7 +179,7 @@
}
public boolean isIP2IP() {
- return basicDetails.getDetailString(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS).contentEquals("IP2IP");
+ return isSip() && TextUtils.isEmpty(getHost());
}
public boolean isAutoanswerEnabled() {
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 8c117ec..d60e86b 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
@@ -126,9 +126,7 @@
private final IBinder mBinder = new LocalBinder();
private Map<String, Conversation> conversations = new HashMap<>();
- private ArrayList<Account> all_accounts = new ArrayList<>();
- private List<Account> accounts = all_accounts;
- private List<Account> ip2ip_account = all_accounts;
+ private List<Account> accounts = new ArrayList<>();
private HistoryManager historyManager;
@@ -357,9 +355,7 @@
@Override
public void onLoadComplete(Loader<ArrayList<Account>> loader, ArrayList<Account> data) {
Log.w(TAG, "AccountsLoader Loader.OnLoadCompleteListener " + data.size());
- all_accounts = data;
- accounts = all_accounts.subList(0,data.size()-1);
- ip2ip_account = all_accounts.subList(data.size()-1,data.size());
+ accounts = data;
mAccountLoader.stopLoading();
boolean haveSipAccount = false;
boolean haveRingAccount = false;
@@ -508,11 +504,10 @@
}
public List<Account> getAccounts() { return accounts; }
- public List<Account> getIP2IPAccount() { return ip2ip_account; }
public Account getAccount(String account_id) {
if (account_id == null || account_id.isEmpty())
return null;
- for (Account acc : all_accounts)
+ for (Account acc : accounts)
if (acc.getAccountID().equals(account_id))
return acc;
return null;
@@ -528,7 +523,6 @@
}
accounts = newlist;
try {
- order += AccountsLoader.ACCOUNT_IP2IP;
mService.setAccountOrder(order);
} catch (RemoteException e) {
e.printStackTrace();
@@ -635,17 +629,20 @@
public Account guessAccount(CallContact c, SipUri uri) {
if (uri.isRingId()) {
- for (Account a : all_accounts)
+ for (Account a : accounts)
if (a.isRing())
return a;
// ring ids must be called with ring accounts
return null;
}
- for (Account a : all_accounts)
+ for (Account a : accounts)
if (a.isSip() && a.getHost().equals(uri.host))
return a;
- if (uri.isSingleIp())
- return ip2ip_account.get(0);
+ if (uri.isSingleIp()) {
+ for (Account a : accounts)
+ if (a.isIP2IP())
+ return a;
+ }
return accounts.get(0);
}
@@ -1031,8 +1028,6 @@
}
public class AccountsLoader extends AsyncTaskLoader<ArrayList<Account>> {
- public static final String ACCOUNTS = "accounts";
- public static final String ACCOUNT_IP2IP = "IP2IP";
public AccountsLoader(Context context) {
super(context);
Log.w(TAG, "AccountsLoader constructor");
@@ -1054,7 +1049,6 @@
public ArrayList<Account> loadInBackground() {
Log.w(TAG, "AccountsLoader loadInBackground");
ArrayList<Account> accounts = new ArrayList<>();
- Account IP2IP = null;
if (checkCancel())
return null;
try {
@@ -1067,23 +1061,13 @@
return null;
details = (Map<String, String>) mService.getAccountDetails(id);
state = (Map<String, String>) mService.getVolatileAccountDetails(id);
- if (id.contentEquals(ACCOUNT_IP2IP)) {
- IP2IP = new Account(ACCOUNT_IP2IP, details, new ArrayList<Map<String, String>>(), state); // Empty credentials
- //accounts.add(IP2IP);
- continue;
- }
credentials = (ArrayList<Map<String, String>>) mService.getCredentials(id);
- /*for (Map.Entry<String, String> entry : State.entrySet()) {
- Log.i(TAG, "State:" + entry.getKey() + " -> " + entry.getValue());
- }*/
Account tmp = new Account(id, details, credentials, state);
accounts.add(tmp);
- // Log.i(TAG, "account:" + tmp.getAlias() + " " + tmp.isEnabled());
}
} catch (RemoteException | NullPointerException e) {
Log.e(TAG, e.toString());
}
- accounts.add(IP2IP);
if (checkCancel())
return null;
return accounts;
diff --git a/ring-android/app/src/main/jni/configurationmanager.i b/ring-android/app/src/main/jni/configurationmanager.i
index 91604a5..e6322b0 100644
--- a/ring-android/app/src/main/jni/configurationmanager.i
+++ b/ring-android/app/src/main/jni/configurationmanager.i
@@ -117,8 +117,6 @@
std::map<std::string, std::string> getHookSettings();
void setHookSettings(const std::map<std::string, std::string>& settings);
-std::map<std::string, std::string> getIp2IpDetails();
-
std::vector<std::map<std::string, std::string> > getCredentials(const std::string& accountID);
void setCredentials(const std::string& accountID, const std::vector<std::map<std::string, std::string> >& details);
@@ -188,4 +186,4 @@
virtual void errorAlert(int alert){}
virtual void getHardwareAudioFormat(std::vector<int32_t>* /*params_ret*/){}
virtual void getAppDataPath(const std::string& /* name */, std::vector<std::string>* /*path_ret*/){}
-};
\ No newline at end of file
+};