Skip to content
Snippets Groups Projects
Commit 6883811d authored by Alexandre Savard's avatar Alexandre Savard
Browse files

#17037: Remove multi-level PreferenceScreen launch separate Activities instead

parent 2f1ae54a
No related branches found
No related tags found
No related merge requests found
......@@ -65,12 +65,14 @@ import com.savoirfairelinux.sflphone.utils.AccountDetailBasic;
import com.savoirfairelinux.sflphone.utils.AccountDetailAdvanced;
import com.savoirfairelinux.sflphone.utils.AccountDetailSrtp;
import com.savoirfairelinux.sflphone.utils.AccountDetailTls;
import com.savoirfairelinux.sflphone.client.AccountPreferenceActivity;
public class AccountManagementFragment extends PreferenceFragment
{
static final String TAG = "AccountManagementFragment";
static final String DEFAULT_ACCOUNT_ID = "IP2IP";
static final int ACCOUNT_CREATE_REQUEST = 1;
static final int ACCOUNT_EDIT_REQUEST = 2;
private ISipService service;
// HashMap<String,HashMap<String,String>> mAccountList = new HashMap<String,HashMap<String,String>>();
......@@ -79,11 +81,7 @@ public class AccountManagementFragment extends PreferenceFragment
ArrayList<AccountDetail.PreferenceEntry> advancedDetailKeys;
ArrayList<AccountDetail.PreferenceEntry> srtpDetailKeys;
ArrayList<AccountDetail.PreferenceEntry> tlsDetailKeys;
AccountDetailBasic basicDetails;
AccountDetailAdvanced advancedDetails;
AccountDetailSrtp srtpDetails;
AccountDetailTls tlsDetails;
PreferenceScreen mRoot;
PreferenceScreen mRoot = null;
Activity context = getActivity();
......@@ -95,11 +93,6 @@ public class AccountManagementFragment extends PreferenceFragment
advancedDetailKeys = AccountDetailAdvanced.getPreferenceEntries();
srtpDetailKeys = AccountDetailSrtp.getPreferenceEntries();
tlsDetailKeys = AccountDetailTls.getPreferenceEntries();
basicDetails = new AccountDetailBasic();
advancedDetails = new AccountDetailAdvanced();
srtpDetails = new AccountDetailSrtp();
tlsDetails = new AccountDetailTls();
}
@Override
......@@ -145,7 +138,19 @@ public class AccountManagementFragment extends PreferenceFragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ACCOUNT_CREATE_REQUEST) {
switch(requestCode) {
case ACCOUNT_CREATE_REQUEST:
Log.i(TAG, "ACCOUNT_CREATE_REQUEST Done");
break;
case ACCOUNT_EDIT_REQUEST:
if(resultCode == AccountPreferenceActivity.ACCOUNT_MODIFIED) {
Bundle bundle = data.getExtras();
String accountID = bundle.getString("AccountID");
Log.i(TAG, "Update account settings for " + accountID);
}
break;
default:
break;
}
}
......@@ -161,7 +166,7 @@ public class AccountManagementFragment extends PreferenceFragment
for(String s : newList) {
if(!currentList.contains(s)) {
Log.i("receiver", "ADDING ACCOUNT!!!!!! " + s);
mRoot.addPreference(createAccountPreferenceScreen(s).mScreen);
mRoot.addPreference(createAccountPreferenceScreen(s));
}
}
}
......@@ -201,12 +206,19 @@ public class AccountManagementFragment extends PreferenceFragment
Preference.OnPreferenceClickListener launchAccountCreationOnClick = new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
if(preference.getTitle() == "Create New Account") {
launchAccountCreationPanel(preference);
launchAccountCreationActivity(preference);
}
return true;
}
};
Preference.OnPreferenceClickListener launchAccountEditOnClick = new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
launchAccountEditActivity(preference);
return true;
}
};
Preference.OnPreferenceClickListener removeSelectedAccountOnClick = new Preference.OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
if(preference.getTitle() == "Delete Account") {
......@@ -216,13 +228,20 @@ public class AccountManagementFragment extends PreferenceFragment
}
};
private void launchAccountCreationPanel(Preference preference)
private void launchAccountCreationActivity(Preference preference)
{
Log.i("MainSandbox", "launchPreferencePanel");
Log.i(TAG, "Launch account creation activity");
Intent intent = preference.getIntent();
startActivityForResult(intent, ACCOUNT_CREATE_REQUEST);
}
private void launchAccountEditActivity(Preference preference)
{
Log.i(TAG, "Launch account edit activity");
Intent intent = preference.getIntent();
startActivityForResult(intent, ACCOUNT_EDIT_REQUEST);
}
private void deleteSelectedAccount(String accountID) {
Log.i(TAG, "DeleteSelectedAccount");
try {
......@@ -282,7 +301,7 @@ public class AccountManagementFragment extends PreferenceFragment
defaultAccountCat.setTitle(R.string.default_account_category);
mRoot.addPreference(defaultAccountCat);
mRoot.addPreference(createAccountPreferenceScreen(DEFAULT_ACCOUNT_ID).mScreen);
mRoot.addPreference(createAccountPreferenceScreen(DEFAULT_ACCOUNT_ID));
// Account list category
PreferenceCategory accountListCat = new PreferenceCategory(currentContext);
......@@ -297,18 +316,47 @@ public class AccountManagementFragment extends PreferenceFragment
for(String s : accountList) {
// mRoot.addPreference(getAccountPreferenceScreen(s));
mRoot.addPreference(createAccountPreferenceScreen(s).mScreen);
mRoot.addPreference(createAccountPreferenceScreen(s));
}
return mRoot;
}
Preference createAccountPreferenceScreen(String accountID) {
HashMap<String, String> preferenceMap = getAccountDetails(accountID);
AccountDetailBasic basicDetails = new AccountDetailBasic(preferenceMap);
AccountDetailAdvanced advancedDetails = new AccountDetailAdvanced(preferenceMap);
AccountDetailSrtp srtpDetails = new AccountDetailSrtp(preferenceMap);
AccountDetailTls tlsDetails = new AccountDetailTls(preferenceMap);
Bundle bundle = new Bundle();
bundle.putString("AccountID", accountID);
bundle.putStringArrayList(AccountDetailBasic.BUNDLE_TAG, basicDetails.getValuesOnly());
bundle.putStringArrayList(AccountDetailAdvanced.BUNDLE_TAG, advancedDetails.getValuesOnly());
bundle.putStringArrayList(AccountDetailSrtp.BUNDLE_TAG, srtpDetails.getValuesOnly());
bundle.putStringArrayList(AccountDetailTls.BUNDLE_TAG, tlsDetails.getValuesOnly());
Intent intent = new Intent().setClass(getActivity(), AccountPreferenceActivity.class);
intent.putExtras(bundle);
Preference editAccount = new Preference(getActivity());
editAccount.setTitle(accountID);
editAccount.setOnPreferenceClickListener(launchAccountEditOnClick);
editAccount.setIntent(intent);
return editAccount;
}
/*
AccountPreferenceScreen createAccountPreferenceScreen(String accountID) {
AccountPreferenceScreen preference = new AccountPreferenceScreen(getPreferenceManager(), getActivity(), accountID);
mAccountList.put(accountID, preference);
return preference;
}
*/
private class AccountPreferenceScreen
{
......
/*
* Copyright (C) 2004-2012 Savoir-Faire Linux Inc.
*
* Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Additional permission under GNU GPL version 3 section 7:
*
* If you modify this program, or any covered work, by linking or
* combining it with the OpenSSL project's OpenSSL library (or a
* modified version of that library), containing parts covered by the
* terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
* grants you additional permission to convey the resulting work.
* Corresponding Source for a non-source form of such a combination
* shall include the source code for the parts of OpenSSL used as well
* as that of the covered work.
*/
package com.savoirfairelinux.sflphone.client;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.ServiceConnection;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
import android.preference.EditTextPreference;
import android.preference.CheckBoxPreference;
import android.util.Log;
import com.savoirfairelinux.sflphone.R;
// import com.savoirfairelinux.sflphone.service.SipService;
// import com.savoirfairelinux.sflphone.service.ISipService;
import com.savoirfairelinux.sflphone.utils.AccountDetail;
import com.savoirfairelinux.sflphone.utils.AccountDetailsHandler;
import com.savoirfairelinux.sflphone.utils.AccountDetailBasic;
import com.savoirfairelinux.sflphone.utils.AccountDetailAdvanced;
import com.savoirfairelinux.sflphone.utils.AccountDetailSrtp;
import com.savoirfairelinux.sflphone.utils.AccountDetailTls;
import java.util.HashMap;
import java.util.ArrayList;
public class AccountPreferenceActivity extends PreferenceActivity
{
private static final String TAG = "AccoutPreferenceActivity";
public static final int ACCOUNT_MODIFIED = Activity.RESULT_FIRST_USER + 0;
public static final int ACCOUNT_NOT_MODIFIED = Activity.RESULT_FIRST_USER + 1;
private AccountDetailBasic basicDetails;
private AccountDetailAdvanced advancedDetails;
private AccountDetailSrtp srtpDetails;
private AccountDetailTls tlsDetails;
private PreferenceManager mPreferenceManager;
private HashMap<String, String> mPreferenceMap;
private String mAccountID;
Preference.OnPreferenceChangeListener changeNewAccountPreferenceListener = new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
preference.setSummary(getString(R.string.account_current_value_label) + (CharSequence)newValue);
return true;
}
};
Preference.OnPreferenceChangeListener changeNewAccountTwoStateListener = new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
return true;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.account_creation_preferences);
mPreferenceManager = getPreferenceManager();
Bundle b = getIntent().getExtras();
mAccountID = b.getString("AccountID");
ArrayList<String> basicPreferenceList = b.getStringArrayList(AccountDetailBasic.BUNDLE_TAG);
ArrayList<String> advancedPreferenceList = b.getStringArrayList(AccountDetailAdvanced.BUNDLE_TAG);
ArrayList<String> srtpPreferenceList = b.getStringArrayList(AccountDetailSrtp.BUNDLE_TAG);
ArrayList<String> tlsPreferenceList = b.getStringArrayList(AccountDetailTls.BUNDLE_TAG);
basicDetails = new AccountDetailBasic(basicPreferenceList);
advancedDetails = new AccountDetailAdvanced(advancedPreferenceList);
srtpDetails = new AccountDetailSrtp(srtpPreferenceList);
tlsDetails = new AccountDetailTls(tlsPreferenceList);
setPreferenceDetails(basicDetails);
}
private void setPreferenceDetails(AccountDetail details) {
for(AccountDetail.PreferenceEntry p : details.getDetailValues()) {
Preference pref = mPreferenceManager.findPreference(p.mKey);
if(pref != null) {
Log.i(TAG, "setPreferenceDetails FOUND " + p.mKey + " = " + p.mValue);
if(!p.isTwoState) {
((EditTextPreference)pref).setText(p.mValue);
pref.setSummary(getString(R.string.account_current_value_label) + p.mValue);
}
}
}
}
private void addPreferenceListener(AccountDetail details) {
for(AccountDetail.PreferenceEntry p : details.getDetailValues()) {
Preference pref = mPreferenceManager.findPreference(p.mKey);
if(pref != null) {
if(!p.isTwoState) {
pref.setOnPreferenceChangeListener(changeNewAccountPreferenceListener);
}
}
}
}
@Override
protected void onStart() {
super.onStart();
addPreferenceListener(basicDetails);
addPreferenceListener(advancedDetails);
addPreferenceListener(srtpDetails);
addPreferenceListener(tlsDetails);
}
@Override
protected void onStop() {
super.onStop();
Bundle bundle = new Bundle();
bundle.putString("AccountID", mAccountID);
bundle.putStringArrayList(AccountDetailBasic.BUNDLE_TAG, basicDetails.getValuesOnly());
bundle.putStringArrayList(AccountDetailAdvanced.BUNDLE_TAG, advancedDetails.getValuesOnly());
bundle.putStringArrayList(AccountDetailSrtp.BUNDLE_TAG, srtpDetails.getValuesOnly());
bundle.putStringArrayList(AccountDetailTls.BUNDLE_TAG, tlsDetails.getValuesOnly());
Intent resultIntent = new Intent();
resultIntent.putExtras(bundle);
setResult(ACCOUNT_MODIFIED, resultIntent);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
public void onBackPressed() {
Bundle bundle = new Bundle();
bundle.putString("AccountID", mAccountID);
bundle.putStringArrayList(AccountDetailBasic.BUNDLE_TAG, basicDetails.getValuesOnly());
bundle.putStringArrayList(AccountDetailAdvanced.BUNDLE_TAG, advancedDetails.getValuesOnly());
bundle.putStringArrayList(AccountDetailSrtp.BUNDLE_TAG, srtpDetails.getValuesOnly());
bundle.putStringArrayList(AccountDetailTls.BUNDLE_TAG, tlsDetails.getValuesOnly());
Intent resultIntent = new Intent();
resultIntent.putExtras(bundle);
setResult(ACCOUNT_MODIFIED, resultIntent);
finish();
}
private void updateAccountDetails(HashMap<String, String> accountDetails, AccountDetail det) {
for(AccountDetail.PreferenceEntry p : det.getDetailValues()) {
Preference pref = mPreferenceManager.findPreference(p.mKey);
if(pref != null) {
if(p.isTwoState) {
CheckBoxPreference boxPref = (CheckBoxPreference) pref;
accountDetails.put(p.mKey, boxPref.isChecked() ? "true" : "false");
}
else {
EditTextPreference textPref = (EditTextPreference)pref;
accountDetails.put(p.mKey, textPref.getText());
}
}
}
}
private void updateAccountDetails() {
HashMap<String, String> accountDetails = new HashMap<String, String>();
updateAccountDetails(accountDetails, basicDetails);
updateAccountDetails(accountDetails, advancedDetails);
updateAccountDetails(accountDetails, srtpDetails);
updateAccountDetails(accountDetails, tlsDetails);
}
}
......@@ -26,8 +26,7 @@ import com.savoirfairelinux.sflphone.service.ISipService;
import com.savoirfairelinux.sflphone.service.ServiceConstants;
import com.savoirfairelinux.sflphone.service.StringMap;
import java.util.Collection;
import java.util.Set;
import java.util.ArrayList;
public interface AccountDetail {
......@@ -36,12 +35,14 @@ public interface AccountDetail {
public String mKey;
public int mLabelId;
public boolean isTwoState;
public String mValue;
public PreferenceEntry(String key, int labelId)
{
mKey = key;
mLabelId = labelId;
isTwoState = false;
mValue = "";
}
public PreferenceEntry(String key, int labelId, boolean twoState)
......@@ -49,11 +50,24 @@ public interface AccountDetail {
mKey = key;
mLabelId = labelId;
isTwoState = twoState;
mValue = "";
}
public PreferenceEntry(String key, int labelId, boolean twoState, String value)
{
mKey = key;
mLabelId = labelId;
isTwoState = twoState;
mValue = value;
}
}
public Set<String> getDetailKeys();
public ArrayList<PreferenceEntry> getDetailValues();
public ArrayList<String> getValuesOnly();
public String getDetailString(String key);
public Collection<PreferenceEntry> getDetailValues();
public boolean getDetailBoolean();
}
......@@ -24,6 +24,8 @@ package com.savoirfairelinux.sflphone.utils;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.utils.AccountDetail;
import android.util.Log;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;
......@@ -31,6 +33,9 @@ import java.util.HashMap;
public class AccountDetailAdvanced implements AccountDetail {
private static final String TAG = "AccountDetailAdvanced";
public static final String BUNDLE_TAG = "AdvancedPreferenceArrayList";
public static final String CONFIG_ACCOUNT_MAILBOX = "Account.mailbox";
public static final String CONFIG_ACCOUNT_REGISTRATION_EXPIRE = "Account.registrationExpire";
public static final String CONFIG_ACCOUNT_REGISTRATION_STATUS = "Account.registrationStatus";
......@@ -60,7 +65,7 @@ public class AccountDetailAdvanced implements AccountDetail {
public static final String CONFIG_STUN_SERVER = "STUN.server";
public static final String CONFIG_STUN_ENABLE = "STUN.enable";
private HashMap<String, AccountDetail.PreferenceEntry> privateMap;
private ArrayList<AccountDetail.PreferenceEntry> privateArray;
public static ArrayList<AccountDetail.PreferenceEntry> getPreferenceEntries()
{
......@@ -91,55 +96,66 @@ public class AccountDetailAdvanced implements AccountDetail {
public AccountDetailAdvanced()
{
privateMap = new HashMap<String, AccountDetail.PreferenceEntry>();
privateMap.put(CONFIG_ACCOUNT_REGISTRATION_EXPIRE,
new PreferenceEntry(CONFIG_ACCOUNT_REGISTRATION_EXPIRE, R.string.account_registration_exp_label));
privateMap.put(CONFIG_ACCOUNT_REGISTRATION_STATUS,
new PreferenceEntry(CONFIG_ACCOUNT_REGISTRATION_STATUS, R.string.account_registration_status_label));
privateMap.put(CONFIG_ACCOUNT_REGISTRATION_STATE_CODE,
new PreferenceEntry(CONFIG_ACCOUNT_REGISTRATION_STATE_CODE, R.string.account_registration_code_label));
privateMap.put(CONFIG_ACCOUNT_REGISTRATION_STATE_DESC,
new PreferenceEntry(CONFIG_ACCOUNT_REGISTRATION_STATE_DESC, R.string.account_registration_state_label));
privateMap.put(CONFIG_CREDENTIAL_NUMBER,
new PreferenceEntry(CONFIG_CREDENTIAL_NUMBER, R.string.account_credential_count_label));
privateMap.put(CONFIG_ACCOUNT_DTMF_TYPE,
new PreferenceEntry(CONFIG_ACCOUNT_DTMF_TYPE, R.string.account_config_dtmf_type_label));
privateMap.put(CONFIG_RINGTONE_PATH,
new PreferenceEntry(CONFIG_RINGTONE_PATH, R.string.account_ringtone_path_label));
privateMap.put(CONFIG_RINGTONE_ENABLED,
new PreferenceEntry(CONFIG_RINGTONE_ENABLED, R.string.account_ringtone_enabled_label, true));
privateMap.put(CONFIG_KEEP_ALIVE_ENABLED,
new PreferenceEntry(CONFIG_KEEP_ALIVE_ENABLED, R.string.account_keep_alive_label, true));
privateMap.put(CONFIG_ACCOUNT_AUTOANSWER,
new PreferenceEntry(CONFIG_ACCOUNT_AUTOANSWER, R.string.account_account_interface_label, true));
privateMap.put(CONFIG_LOCAL_INTERFACE,
new PreferenceEntry(CONFIG_LOCAL_INTERFACE, R.string.account_local_interface_label));
privateMap.put(CONFIG_INTERFACE,
new PreferenceEntry(CONFIG_INTERFACE, R.string.account_account_interface_label));
privateMap.put(CONFIG_PUBLISHED_SAMEAS_LOCAL,
new PreferenceEntry(CONFIG_PUBLISHED_SAMEAS_LOCAL, R.string.account_published_same_as_local_label, true));
privateMap.put(CONFIG_LOCAL_PORT,
new PreferenceEntry(CONFIG_LOCAL_PORT, R.string.account_local_port_label));
privateMap.put(CONFIG_PUBLISHED_PORT,
new PreferenceEntry(CONFIG_PUBLISHED_PORT, R.string.account_published_port_label));
privateMap.put(CONFIG_PUBLISHED_ADDRESS,
new PreferenceEntry(CONFIG_PUBLISHED_ADDRESS, R.string.account_published_address_label));
privateMap.put(CONFIG_DISPLAY_NAME,
new PreferenceEntry(CONFIG_DISPLAY_NAME, R.string.account_displayname_label));
privateMap.put(CONFIG_STUN_SERVER,
new PreferenceEntry(CONFIG_STUN_SERVER, R.string.account_stun_server_label));
privateMap.put(CONFIG_STUN_ENABLE,
new PreferenceEntry(CONFIG_STUN_ENABLE, R.string.account_stun_enable_label, true));
privateArray = getPreferenceEntries();
}
public Set<String> getDetailKeys()
public AccountDetailAdvanced(HashMap<String, String> pref)
{
return privateMap.keySet();
privateArray = getPreferenceEntries();
for(AccountDetail.PreferenceEntry p : privateArray) {
p.mValue = pref.get(p.mKey);
}
}
public Collection<AccountDetail.PreferenceEntry> getDetailValues()
public AccountDetailAdvanced(ArrayList<String> pref)
{
return privateMap.values();
privateArray = getPreferenceEntries();
if(pref.size() != privateArray.size()) {
Log.i(TAG, "Error list are not of equal size");
}
else {
int index = 0;
for(String s : pref) {
privateArray.get(index).mValue = s;
}
}
}
public ArrayList<AccountDetail.PreferenceEntry> getDetailValues()
{
return privateArray;
}
public ArrayList<String> getValuesOnly()
{
ArrayList<String> valueList = new ArrayList<String>();
for(AccountDetail.PreferenceEntry p : privateArray) {
valueList.add(p.mValue);
}
return valueList;
}
public String getDetailString(String key)
{
String value = "";
for(AccountDetail.PreferenceEntry p : privateArray) {
if(p.mKey.equals(key)) {
value = p.mValue;
return value;
}
}
return value;
}
public boolean getDetailBoolean()
{
return true;
}
}
......@@ -24,6 +24,8 @@ package com.savoirfairelinux.sflphone.utils;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.utils.AccountDetail;
import android.util.Log;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;
......@@ -31,9 +33,12 @@ import java.util.HashMap;
public class AccountDetailBasic implements AccountDetail {
private static final String TAG = "AccountDetailBasic";
public static final String BUNDLE_TAG = "BasicPreferenceArrayList";
public static final String CONFIG_ACCOUNT_ENABLE = "Account.enable";
public static final String CONFIG_ACCOUNT_TYPE = "Account.type";
public static final String CONFIG_ACCOUNT_ALIAS = "Account.alias";
public static final String CONFIG_ACCOUNT_ENABLE = "Account.enable";
public static final String CONFIG_ACCOUNT_HOSTNAME = "Account.hostname";
public static final String CONFIG_ACCOUNT_USERNAME = "Account.username";
public static final String CONFIG_ACCOUNT_ROUTESET = "Account.routeset";
......@@ -42,16 +47,15 @@ public class AccountDetailBasic implements AccountDetail {
public static final String CONFIG_ACCOUNT_DEFAULT_REALM = "*";
public static final String CONFIG_ACCOUNT_USERAGENT = "Account.useragent";
private HashMap<String, AccountDetail.PreferenceEntry> privateMap;
private ArrayList<AccountDetail.PreferenceEntry> privateArray;
public static ArrayList<AccountDetail.PreferenceEntry> getPreferenceEntries()
{
ArrayList<AccountDetail.PreferenceEntry> preference = new ArrayList<AccountDetail.PreferenceEntry>();
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_ENABLE, R.string.account_enabled_label, true));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_TYPE, R.string.account_type_label));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_ALIAS, R.string.account_alias_label));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_ENABLE, R.string.account_enabled_label, true));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_HOSTNAME, R.string.account_hostname_label));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_USERNAME, R.string.account_username_label));
preference.add(new PreferenceEntry(CONFIG_ACCOUNT_ROUTESET, R.string.account_routeset_label));
......@@ -65,37 +69,66 @@ public class AccountDetailBasic implements AccountDetail {
public AccountDetailBasic()
{
privateMap = new HashMap<String, AccountDetail.PreferenceEntry>();
privateMap.put(CONFIG_ACCOUNT_TYPE,
new PreferenceEntry(CONFIG_ACCOUNT_TYPE, R.string.account_type_label));
privateMap.put(CONFIG_ACCOUNT_ALIAS,
new PreferenceEntry(CONFIG_ACCOUNT_ALIAS, R.string.account_alias_label));
privateMap.put(CONFIG_ACCOUNT_ENABLE,
new PreferenceEntry(CONFIG_ACCOUNT_ENABLE, R.string.account_enabled_label, true));
privateMap.put(CONFIG_ACCOUNT_HOSTNAME,
new PreferenceEntry(CONFIG_ACCOUNT_HOSTNAME, R.string.account_hostname_label));
privateMap.put(CONFIG_ACCOUNT_USERNAME,
new PreferenceEntry(CONFIG_ACCOUNT_USERNAME, R.string.account_username_label));
privateMap.put(CONFIG_ACCOUNT_ROUTESET,
new PreferenceEntry(CONFIG_ACCOUNT_ROUTESET, R.string.account_routeset_label));
privateMap.put(CONFIG_ACCOUNT_PASSWORD,
new PreferenceEntry(CONFIG_ACCOUNT_PASSWORD, R.string.account_password_label));
privateMap.put(CONFIG_ACCOUNT_REALM,
new PreferenceEntry(CONFIG_ACCOUNT_REALM, R.string.account_realm_label));
privateMap.put(CONFIG_ACCOUNT_DEFAULT_REALM,
new PreferenceEntry(CONFIG_ACCOUNT_DEFAULT_REALM, R.string.account_useragent_label));
privateMap.put(CONFIG_ACCOUNT_USERAGENT,
new PreferenceEntry(CONFIG_ACCOUNT_USERAGENT, R.string.account_autoanswer_label));
privateArray = getPreferenceEntries();
}
public AccountDetailBasic(HashMap<String, String> pref)
{
privateArray = getPreferenceEntries();
for(AccountDetail.PreferenceEntry p : privateArray) {
p.mValue = pref.get(p.mKey);
}
}
public AccountDetailBasic(ArrayList<String> pref)
{
privateArray = getPreferenceEntries();
if(pref.size() != privateArray.size()) {
Log.i(TAG, "Error list are not of equal size");
}
else {
int index = 0;
for(String s : pref) {
privateArray.get(index).mValue = s;
index++;
}
}
}
public ArrayList<AccountDetail.PreferenceEntry> getDetailValues()
{
return privateArray;
}
public Set<String> getDetailKeys()
public ArrayList<String> getValuesOnly()
{
return privateMap.keySet();
ArrayList<String> valueList = new ArrayList<String>();
for(AccountDetail.PreferenceEntry p : privateArray) {
valueList.add(p.mValue);
}
return valueList;
}
public String getDetailString(String key)
{
String value = "";
for(AccountDetail.PreferenceEntry p : privateArray) {
if(p.mKey.equals(key)) {
value = p.mValue;
return value;
}
}
return value;
}
public Collection<AccountDetail.PreferenceEntry> getDetailValues()
public boolean getDetailBoolean()
{
return privateMap.values();
return true;
}
}
......@@ -24,6 +24,8 @@ package com.savoirfairelinux.sflphone.utils;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.utils.AccountDetail;
import android.util.Log;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;
......@@ -31,6 +33,9 @@ import java.util.HashMap;
public class AccountDetailSrtp implements AccountDetail{
private static final String TAG = "AccountDetailSrtp";
public static final String BUNDLE_TAG = "SrtpPreferenceArrayList";
public static final String CONFIG_SRTP_ENABLE = "SRTP.enable";
public static final String CONFIG_SRTP_KEY_EXCHANGE = "SRTP.keyExchange";
public static final String CONFIG_SRTP_ENCRYPTION_ALGO = "SRTP.encryptionAlgorithm"; // Provided by ccRTP,0=NULL,1=AESCM,2=AESF8
......@@ -40,7 +45,7 @@ public class AccountDetailSrtp implements AccountDetail{
public static final String CONFIG_ZRTP_NOT_SUPP_WARNING = "ZRTP.notSuppWarning";
public static final String CONFIG_ZRTP_DISPLAY_SAS_ONCE = "ZRTP.displaySasOnce";
private HashMap<String, AccountDetail.PreferenceEntry> privateMap;
private ArrayList<AccountDetail.PreferenceEntry> privateArray;
public static ArrayList<AccountDetail.PreferenceEntry> getPreferenceEntries()
{
......@@ -60,33 +65,66 @@ public class AccountDetailSrtp implements AccountDetail{
public AccountDetailSrtp()
{
privateMap = new HashMap<String, AccountDetail.PreferenceEntry>();
privateMap.put(CONFIG_SRTP_ENABLE,
new PreferenceEntry(CONFIG_SRTP_ENABLE, R.string.account_srtp_enabled_label, true));
privateMap.put(CONFIG_SRTP_KEY_EXCHANGE,
new PreferenceEntry(CONFIG_SRTP_KEY_EXCHANGE, R.string.account_srtp_exchange_label, true));
privateMap.put(CONFIG_SRTP_ENCRYPTION_ALGO,
new PreferenceEntry(CONFIG_SRTP_ENCRYPTION_ALGO, R.string.account_encryption_algo_label, true));
privateMap.put(CONFIG_SRTP_RTP_FALLBACK,
new PreferenceEntry(CONFIG_SRTP_RTP_FALLBACK, R.string.account_srtp_fallback_label, true));
privateMap.put(CONFIG_ZRTP_HELLO_HASH,
new PreferenceEntry(CONFIG_ZRTP_HELLO_HASH, R.string.account_hello_hash_enable_label, true));
privateMap.put(CONFIG_ZRTP_DISPLAY_SAS,
new PreferenceEntry(CONFIG_ZRTP_DISPLAY_SAS, R.string.account_display_sas_label, true));
privateMap.put(CONFIG_ZRTP_NOT_SUPP_WARNING,
new PreferenceEntry(CONFIG_ZRTP_NOT_SUPP_WARNING, R.string.account_not_supported_warning_label, true));
privateMap.put(CONFIG_ZRTP_DISPLAY_SAS_ONCE,
new PreferenceEntry(CONFIG_ZRTP_DISPLAY_SAS_ONCE, R.string.account_display_sas_once_label, true));
privateArray = getPreferenceEntries();
}
public AccountDetailSrtp(HashMap<String, String> pref)
{
privateArray = getPreferenceEntries();
for(AccountDetail.PreferenceEntry p : privateArray) {
p.mValue = pref.get(p.mKey);
}
}
public AccountDetailSrtp(ArrayList<String> pref)
{
privateArray = getPreferenceEntries();
if(pref.size() != privateArray.size()) {
Log.i(TAG, "Error list are not of equal size");
}
else {
int index = 0;
for(String s : pref) {
privateArray.get(index).mValue = s;
index++;
}
}
}
public ArrayList<AccountDetail.PreferenceEntry> getDetailValues()
{
return privateArray;
}
public ArrayList<String> getValuesOnly()
{
ArrayList<String> valueList = new ArrayList<String>();
for(AccountDetail.PreferenceEntry p : privateArray) {
valueList.add(p.mValue);
}
return valueList;
}
public Set<String> getDetailKeys()
public String getDetailString(String key)
{
return privateMap.keySet();
String value = "";
for(AccountDetail.PreferenceEntry p : privateArray) {
if(p.mKey.equals(key)) {
value = p.mValue;
return value;
}
}
return value;
}
public Collection<AccountDetail.PreferenceEntry> getDetailValues()
public boolean getDetailBoolean()
{
return privateMap.values();
return true;
}
}
......@@ -24,12 +24,17 @@ package com.savoirfairelinux.sflphone.utils;
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.utils.AccountDetail;
import android.util.Log;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;
import java.util.HashMap;
public class AccountDetailTls implements AccountDetail {
private static final String TAG = "AccountDetailTls";
public static final String BUNDLE_TAG = "TlsPreferenceArrayList";
public static final String CONFIG_TLS_LISTENER_PORT = "TLS.listenerPort";
public static final String CONFIG_TLS_ENABLE = "TLS.enable";
......@@ -46,7 +51,7 @@ public class AccountDetailTls implements AccountDetail {
public static final String CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC = "TLS.negotiationTimeoutSec";
public static final String CONFIG_TLS_NEGOTIATION_TIMEOUT_MSEC = "TLS.negotiationTimemoutMsec";
private HashMap<String, AccountDetail.PreferenceEntry> privateMap;
private ArrayList<AccountDetail.PreferenceEntry> privateArray;
public static ArrayList<AccountDetail.PreferenceEntry> getPreferenceEntries()
{
......@@ -72,45 +77,66 @@ public class AccountDetailTls implements AccountDetail {
public AccountDetailTls()
{
privateMap = new HashMap<String, AccountDetail.PreferenceEntry>();
privateMap.put(CONFIG_TLS_LISTENER_PORT,
new PreferenceEntry(CONFIG_TLS_LISTENER_PORT, R.string.account_listener_port_label));
privateMap.put(CONFIG_TLS_ENABLE,
new PreferenceEntry(CONFIG_TLS_ENABLE, R.string.account_tls_enabled_label, true));
privateMap.put(CONFIG_TLS_CA_LIST_FILE,
new PreferenceEntry(CONFIG_TLS_CA_LIST_FILE, R.string.account_tls_certificate_list_label));
privateMap.put(CONFIG_TLS_CERTIFICATE_FILE,
new PreferenceEntry(CONFIG_TLS_CERTIFICATE_FILE, R.string.account_tls_certificate_file_label));
privateMap.put(CONFIG_TLS_PRIVATE_KEY_FILE,
new PreferenceEntry(CONFIG_TLS_PRIVATE_KEY_FILE, R.string.account_tls_private_key_file_label));
privateMap.put(CONFIG_TLS_PASSWORD,
new PreferenceEntry(CONFIG_TLS_PASSWORD, R.string.account_tls_password_label));
privateMap.put(CONFIG_TLS_METHOD,
new PreferenceEntry(CONFIG_TLS_METHOD, R.string.account_tls_method_label));
privateMap.put(CONFIG_TLS_CIPHERS,
new PreferenceEntry(CONFIG_TLS_CIPHERS, R.string.account_tls_ciphers_label));
privateMap.put(CONFIG_TLS_SERVER_NAME,
new PreferenceEntry(CONFIG_TLS_SERVER_NAME, R.string.account_tls_server_name_label));
privateMap.put(CONFIG_TLS_VERIFY_SERVER,
new PreferenceEntry(CONFIG_TLS_VERIFY_SERVER, R.string.account_tls_verify_label, true));
privateMap.put(CONFIG_TLS_VERIFY_CLIENT,
new PreferenceEntry(CONFIG_TLS_VERIFY_CLIENT, R.string.account_tls_verify_client_label, true));
privateMap.put(CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE,
new PreferenceEntry(CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE, R.string.account_tls_require_client_certificat_label, true));
privateMap.put(CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC,
new PreferenceEntry(CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC, R.string.account_tls_negotiation_timeout_sec));
privateMap.put(CONFIG_TLS_NEGOTIATION_TIMEOUT_MSEC,
new PreferenceEntry(CONFIG_TLS_NEGOTIATION_TIMEOUT_MSEC, R.string.account_tls_negotiation_timeout_msec));
privateArray = getPreferenceEntries();
}
public AccountDetailTls(HashMap<String, String> pref)
{
privateArray = getPreferenceEntries();
for(AccountDetail.PreferenceEntry p : privateArray) {
p.mValue = pref.get(p.mKey);
}
}
public Set<String> getDetailKeys()
public AccountDetailTls(ArrayList<String> pref)
{
privateArray = getPreferenceEntries();
if(pref.size() != privateArray.size()) {
Log.i(TAG, "Error list are not of equal size");
}
else {
int index = 0;
for(String s : pref) {
privateArray.get(index).mValue = s;
index++;
}
}
}
public ArrayList<AccountDetail.PreferenceEntry> getDetailValues()
{
return privateMap.keySet();
return privateArray;
}
public ArrayList<String> getValuesOnly()
{
ArrayList<String> valueList = new ArrayList<String>();
for(AccountDetail.PreferenceEntry p : privateArray) {
valueList.add(p.mValue);
}
return valueList;
}
public String getDetailString(String key)
{
String value = "";
for(AccountDetail.PreferenceEntry p : privateArray) {
if(p.mKey.equals(key)) {
value = p.mValue;
return value;
}
}
return value;
}
public Collection<AccountDetail.PreferenceEntry> getDetailValues()
public boolean getDetailBoolean()
{
return privateMap.values();
return true;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment