diff --git a/res/values/strings.xml b/res/values/strings.xml index cbd12159e0878c3acbbcc1000f753da62fd6bb04..4956ab09ee9b336a4760d3a50a8d80fe965ee75f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -43,17 +43,62 @@ as that of the covered work. <string name="account_preferences">Account Preferences</string> <string name="audio_preferences">Audio Preferences</string> - <string name="account_alias_label">Alias</string> <string name="account_hostname_label">Hostname</string> <string name="account_username_label">Username</string> - <string name="account_proxy_label">Proxy</string> - <string name="account_regsitration_label">Registration Expire</string> - <string name="account_network_interface_label">Network Interface</string> + <string name="account_routeset_label">Route Set</string> + <string name="account_password_label">Password</string> + <string name="account_realm_label">Realm</string> + <string name="account_useragent_label">User Agent</string> + <string name="account_autoanswer_label">Auto Answer</string> + + <string name="account_type_label">Account Type</string> + <string name="account_alias_label">Alias</string> + <string name="account_mailbox_label">Mailbox</string> + <string name="account_enabled_label">Account Enabled</string> + <string name="account_registration_exp_label">Registration Expire</string> + <string name="account_registration_status_label">Registration Status</string> + <string name="account_registration_code_label">Registration Code</string> + <string name="account_registration_state_label">Registration State</string> + <string name="account_credential_count_label">Credential Count</string> + <string name="account_config_dtmf_type_label">DTMF Type</string> + <string name="account_ringtone_path_label">Ringtone</string> + <string name="account_ringtone_enabled_label">Ringtone Enabled</string> + <string name="account_keep_alive_label">Keep Alive</string> + + <string name="account_local_interface_label">Local Interface</string> + <string name="account_account_interface_label">Account Interface</string> + <string name="account_published_same_as_local_label">Published Port Same As Local</string> + <string name="account_local_port_label">Local Port</string> + <string name="account_published_port_label">Published Port</string> + <string name="account_published_address_label">Published Address</string> + <string name="account_displayname_label">Displayname Label</string> <string name="account_stun_server_label">Stun Server</string> - <string name="account_security_label">Security</string> - <string name="account_tls_label">TLS</string> - <string name="account_srtp_label">SRTP</string> - + <string name="account_stun_enable_label">Stun Enabled</string> + + <string name="account_srtp_enabled_label">SRTP Enabled</string> + <string name="account_srtp_exchange_label">SRTP Key Exchange</string> + <string name="account_encryption_algo_label">Encryption Algo</string> + <string name="account_srtp_fallback_label">SRTP Fallback</string> + <string name="account_hello_hash_enable_label">Hello Hash Enabled</string> + <string name="account_display_sas_label">Display SAS</string> + <string name="account_not_supported_warning_label">Not Supported Warning</string> + <string name="account_display_sas_once_label">Display SAS Once</string> + + <string name="account_listener_port_label">TLS Listener Port</string> + <string name="account_tls_enabled_label">TLS Enabled</string> + <string name="account_tls_certificate_list_label">TLS Certificate List File</string> + <string name="account_tls_certificate_file_label">TLS Certificate File</string> + <string name="account_tls_private_key_file_label">TLS Private Key File</string> + <string name="account_tls_password_label">TLS Private Key Password</string> + <string name="account_tls_method_label">TLS Method</string> + <string name="account_tls_ciphers_label">TLS Ciphers</string> + <string name="account_tls_server_name_label">TLS Server Name</string> + <string name="account_tls_verify_label">TLS Verify Server</string> + <string name="account_tls_verify_client_label">TLS Verify Client</string> + <string name="account_tls_require_client_certificat_label">TLS Require Client Certificate</string> + <string name="account_tls_negotiation_timeout_sec">TLS Negotiation Timeout (sec)</string> + <string name="account_tls_negotiation_timeout_msec">TLS Negotiation Timeout (msec)</string> + <string name="account_alias_field">Alias</string> <string name="title_account_alias_field">Alias</string> <string name="dialogtitle_account_alias_field">Enter the alias for this account</string> @@ -100,4 +145,7 @@ as that of the covered work. <string name="title_audio_ringtone_field">Ringtone</string> <string name="dialogtitle_audio_ringtone_field">Ringtone</string> + <string name="default_account_category">Default Account</string> + <string name="account_list_category">Account List</string> + </resources> diff --git a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java index eaa700cdbcd689f6661c3ae1211b4f9fafd9fbe8..a1c09a533d3cbcf40334059b2f3e9bd083227b0b 100644 --- a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java +++ b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java @@ -58,11 +58,13 @@ public class AccountManagementFragment extends PreferenceFragment static final String CURRENT_VALUE = "Current value:: "; static final String DEFAULT_ACCOUNT_ID = "IP2IP"; private ISipService service; - HashMap<String, String> mAccountDetails = null; - ArrayList<String> mAccountList = null; + // HashMap<String, String> mAccountDetails = null; + // ArrayList<String> mAccountList = null; + HashMap<String,HashMap<String,String>> mAccountList = new HashMap<String,HashMap<String,String>>(); ArrayList<PreferenceEntry> basicDetailKeys = new ArrayList<PreferenceEntry>(); ArrayList<PreferenceEntry> advancedDetailKeys = new ArrayList<PreferenceEntry>(); Activity context = getActivity(); + public AccountManagementFragment(ISipService s) { @@ -184,6 +186,23 @@ public class AccountManagementFragment extends PreferenceFragment setPreferenceScreen(getAccountListPreferenceScreen()); } + @Override + public void onStop() + { + super.onStop(); + Log.i(TAG, "onStop"); + + } + + @Override + public void onDestroy() + { + super.onDestroy(); + Log.i(TAG, "onDestroy"); + + + } + boolean onTextEditPreferenceChange(Preference preference, Object newValue) { Log.i(TAG, "Account Preference Changed " + preference.getTitle()); @@ -238,8 +257,8 @@ public class AccountManagementFragment extends PreferenceFragment { Activity currentContext = getActivity(); - mAccountList = getAccountList(); - Log.i(TAG, "GetAccountList: " + mAccountList); + ArrayList<String> accountList = getAccountList(); + // Log.i(TAG, "GetAccountList: " + mAccountList); PreferenceScreen root = getPreferenceManager().createPreferenceScreen(currentContext); @@ -255,7 +274,7 @@ public class AccountManagementFragment extends PreferenceFragment accountListCat.setTitle(R.string.default_account_category); root.addPreference(accountListCat); - for(String s : mAccountList) + for(String s : accountList) root.addPreference(getAccountPreferenceScreen(s)); return root; @@ -265,125 +284,39 @@ public class AccountManagementFragment extends PreferenceFragment { Activity currentContext = getActivity(); - mAccountDetails = getAccountDetails(accountID); - Log.i(TAG, "GetAccountDetails: " + mAccountDetails.size()); + HashMap<String,String> map = getAccountDetails(accountID); + mAccountList.put(accountID, map); PreferenceScreen root = getPreferenceManager().createPreferenceScreen(currentContext); - - root.setTitle(mAccountDetails.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS)); + root.setTitle(map.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS)); // Inline preference PreferenceCategory accountPrefCat = new PreferenceCategory(currentContext); accountPrefCat.setTitle(R.string.account_preferences); root.addPreference(accountPrefCat); - // for(PreferenceEntry entry : basicDetailKeys) { EditTextPreference accountAliasPref = new EditTextPreference(currentContext); accountAliasPref.setDialogTitle(entry.mLabelId); accountAliasPref.setPersistent(false); accountAliasPref.setTitle(entry.mLabelId); - accountAliasPref.setSummary(CURRENT_VALUE + mAccountDetails.get(entry.mKey)); + accountAliasPref.setSummary(CURRENT_VALUE + map.get(entry.mKey)); accountAliasPref.setOnPreferenceChangeListener(changeTextEditListener); accountPrefCat.addPreference(accountAliasPref); } - // for(PreferenceEntry entry : advancedDetailKeys) { EditTextPreference accountAliasPref = new EditTextPreference(currentContext); accountAliasPref.setDialogTitle(entry.mLabelId); accountAliasPref.setPersistent(false); accountAliasPref.setTitle(entry.mLabelId); - accountAliasPref.setSummary(CURRENT_VALUE + mAccountDetails.get(entry.mKey)); + accountAliasPref.setSummary(CURRENT_VALUE + map.get(entry.mKey)); accountAliasPref.setOnPreferenceChangeListener(changeTextEditListener); accountPrefCat.addPreference(accountAliasPref); } - /* - // Alias - EditTextPreference accountAliasPref = new EditTextPreference(currentContext); - accountAliasPref.setDialogTitle(R.string.dialogtitle_account_alias_field); - accountAliasPref.setPersistent(false); - accountAliasPref.setTitle(R.string.title_account_alias_field); - accountAliasPref.setSummary(CURRENT_VALUE + mAccountDetails.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS)); - accountAliasPref.setOnPreferenceChangeListener(changeTextEditListener); - accountPrefCat.addPreference(accountAliasPref); - - // Hostname - EditTextPreference accountHostnamePref = new EditTextPreference(currentContext); - accountHostnamePref.setDialogTitle(R.string.dialogtitle_account_hostname_field); - accountHostnamePref.setPersistent(false); - accountHostnamePref.setTitle(R.string.title_account_hostname_field); - accountHostnamePref.setSummary(CURRENT_VALUE + mAccountDetails.get(ServiceConstants.CONFIG_ACCOUNT_HOSTNAME)); - accountHostnamePref.setOnPreferenceChangeListener(changeTextEditListener); - accountPrefCat.addPreference(accountHostnamePref); - - // Username - EditTextPreference accountUsernamePref = new EditTextPreference(currentContext); - accountUsernamePref.setDialogTitle(R.string.dialogtitle_account_username_field); - accountUsernamePref.setPersistent(false); - accountUsernamePref.setTitle(R.string.title_account_username_field); - accountUsernamePref.setSummary(CURRENT_VALUE + mAccountDetails.get(ServiceConstants.CONFIG_ACCOUNT_USERNAME)); - accountUsernamePref.setOnPreferenceChangeListener(changeTextEditListener); - accountPrefCat.addPreference(accountUsernamePref); - - // Proxy - EditTextPreference accountProxyPref = new EditTextPreference(currentContext); - accountProxyPref.setDialogTitle(R.string.dialogtitle_account_proxy_field); - accountProxyPref.setPersistent(false); - accountProxyPref.setTitle(R.string.title_account_proxy_field); - accountProxyPref.setSummary(CURRENT_VALUE + mAccountDetails.get(ServiceConstants.CONFIG_ACCOUNT_ROUTESET)); - accountProxyPref.setOnPreferenceChangeListener(changeTextEditListener); - accountPrefCat.addPreference(accountProxyPref); - - // Registration Timeout - EditTextPreference accountRegistrationPref = new EditTextPreference(currentContext); - accountRegistrationPref.setDialogTitle(R.string.dialogtitle_account_registration_field); - accountRegistrationPref.setPersistent(false); - accountRegistrationPref.setTitle(R.string.title_account_registration_field); - accountRegistrationPref.setSummary(CURRENT_VALUE + mAccountDetails.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE)); - accountRegistrationPref.setOnPreferenceChangeListener(changeTextEditListener); - accountPrefCat.addPreference(accountRegistrationPref); - - // Netowrk interface - EditTextPreference accountNetworkPref = new EditTextPreference(currentContext); - accountNetworkPref.setDialogTitle(R.string.dialogtitle_account_network_field); - accountNetworkPref.setPersistent(false); - accountNetworkPref.setTitle(R.string.title_account_network_field); - accountNetworkPref.setSummary(CURRENT_VALUE + mAccountDetails.get(ServiceConstants.CONFIG_LOCAL_INTERFACE)); - accountNetworkPref.setOnPreferenceChangeListener(changeTextEditListener); - accountPrefCat.addPreference(accountNetworkPref); - - // Account stun server - EditTextPreference accountSecurityPref = new EditTextPreference(currentContext); - accountSecurityPref.setDialogTitle(R.string.dialogtitle_account_security_field); - accountSecurityPref.setPersistent(false); - accountSecurityPref.setTitle(R.string.title_account_security_field); - accountSecurityPref.setSummary(CURRENT_VALUE + mAccountDetails.get(ServiceConstants.CONFIG_STUN_SERVER)); - accountSecurityPref.setOnPreferenceChangeListener(changeTextEditListener); - accountPrefCat.addPreference(accountSecurityPref); - - // Account tls feature - EditTextPreference accountTlsPref = new EditTextPreference(currentContext); - accountTlsPref.setDialogTitle(R.string.dialogtitle_account_tls_field); - accountTlsPref.setPersistent(false); - accountTlsPref.setTitle(R.string.title_account_tls_field); - accountTlsPref.setSummary(CURRENT_VALUE + mAccountDetails.get(ServiceConstants.CONFIG_TLS_ENABLE)); - accountTlsPref.setOnPreferenceChangeListener(changeTextEditListener); - accountPrefCat.addPreference(accountTlsPref); - - // Account srtp feature - EditTextPreference accountSrtpPref = new EditTextPreference(currentContext); - accountSrtpPref.setDialogTitle(R.string.dialogtitle_account_srtp_field); - accountSrtpPref.setPersistent(false); - accountSrtpPref.setTitle(R.string.title_account_srtp_field); - accountSrtpPref.setSummary(CURRENT_VALUE + mAccountDetails.get(ServiceConstants.CONFIG_SRTP_ENABLE)); - accountSrtpPref.setOnPreferenceChangeListener(changeTextEditListener); - accountPrefCat.addPreference(accountSrtpPref); - */ - return root; } diff --git a/src/com/savoirfairelinux/sflphone/service/ISipService.aidl b/src/com/savoirfairelinux/sflphone/service/ISipService.aidl index 01134edd0237c9fca614448827e029caa981672d..8f0eec1f13f120aeca22aee8bfac9d9f16e95b5b 100644 --- a/src/com/savoirfairelinux/sflphone/service/ISipService.aidl +++ b/src/com/savoirfairelinux/sflphone/service/ISipService.aidl @@ -7,5 +7,6 @@ interface ISipService { void hangUp(in String callID); List getAccountList(); Map getAccountDetails(in String accountID); + void setAccountDetails(in String accountId, in Map accountDetails); void setAudioPlugin(in String callID); } diff --git a/src/com/savoirfairelinux/sflphone/service/SipService.java b/src/com/savoirfairelinux/sflphone/service/SipService.java index 0a49e4eabc6ec3d5fb5c992f3c9b763b8eccd4e0..c121846636667f347dc5ccd28540f1362d54f537 100644 --- a/src/com/savoirfairelinux/sflphone/service/SipService.java +++ b/src/com/savoirfairelinux/sflphone/service/SipService.java @@ -40,6 +40,7 @@ import com.savoirfairelinux.sflphone.service.ManagerImpl; import com.savoirfairelinux.sflphone.client.SFLphoneApplication; import com.savoirfairelinux.sflphone.service.ISipService; +import java.util.Map; import java.util.HashMap; import java.util.ArrayList; @@ -143,7 +144,6 @@ public class SipService extends Service { nativemap.put(ServiceConstants.CONFIG_TLS_ENABLE, swigmap.get(ServiceConstants.CONFIG_TLS_ENABLE)); nativemap.put(ServiceConstants.CONFIG_SRTP_ENABLE, swigmap.get(ServiceConstants.CONFIG_SRTP_ENABLE)); - /* nativemap.put(ServiceConstants.CONFIG_ACCOUNT_TYPE, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_TYPE)); nativemap.put(ServiceConstants.CONFIG_ACCOUNT_ALIAS, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS)); nativemap.put(ServiceConstants.CONFIG_ACCOUNT_MAILBOX, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_MAILBOX)); @@ -152,6 +152,8 @@ public class SipService extends Service { nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATUS, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATUS)); nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_CODE, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_CODE)); nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_DESC, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_DESC)); + + /* nativemap.put(ServiceConstants.CONFIG_CREDENTIAL_NUMBER, swigmap.get(ServiceConstants.CONFIG_CREDENTIAL_NUMBER)); nativemap.put(ServiceConstants.CONFIG_ACCOUNT_DTMF_TYPE, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_DTMF_TYPE)); nativemap.put(ServiceConstants.CONFIG_RINGTONE_PATH, swigmap.get(ServiceConstants.CONFIG_RINGTONE_PATH)); @@ -159,6 +161,9 @@ public class SipService extends Service { nativemap.put(ServiceConstants.CONFIG_KEEP_ALIVE_ENABLED, swigmap.get(ServiceConstants.CONFIG_KEEP_ALIVE_ENABLED)); nativemap.put(ServiceConstants.CONFIG_ACCOUNT_PASSWORD, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_PASSWORD)); nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REALM, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REALM)); + */ + + /* nativemap.put(ServiceConstants.CONFIG_ACCOUNT_DEFAULT_REALM, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_DEFAULT_REALM)); nativemap.put(ServiceConstants.CONFIG_ACCOUNT_USERAGENT, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_USERAGENT)); nativemap.put(ServiceConstants.CONFIG_ACCOUNT_AUTOANSWER, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_AUTOANSWER)); @@ -191,6 +196,35 @@ public class SipService extends Service { return nativemap; } + + @Override + public void setAccountDetails(String accountId, Map map) { + HashMap<String,String> nativemap = (HashMap<String,String>) map; + + StringMap swigmap = new StringMap(); + + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_ALIAS, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_HOSTNAME, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_HOSTNAME)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_USERNAME, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_USERNAME)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_ROUTESET, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_ROUTESET)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE)); + swigmap.set(ServiceConstants.CONFIG_LOCAL_INTERFACE, nativemap.get(ServiceConstants.CONFIG_LOCAL_INTERFACE)); + swigmap.set(ServiceConstants.CONFIG_STUN_SERVER, nativemap.get(ServiceConstants.CONFIG_STUN_SERVER)); + swigmap.set(ServiceConstants.CONFIG_TLS_ENABLE, nativemap.get(ServiceConstants.CONFIG_TLS_ENABLE)); + swigmap.set(ServiceConstants.CONFIG_SRTP_ENABLE, nativemap.get(ServiceConstants.CONFIG_SRTP_ENABLE)); + + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_TYPE, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_TYPE)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_ALIAS, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_MAILBOX, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_MAILBOX)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_ENABLE, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_ENABLE)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATUS, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATUS)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_CODE, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_CODE)); + swigmap.set(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_DESC, nativemap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_DESC)); + + configurationManagerJNI.setAccountDetails(accountId, swigmap); + } + }; /**