blob: 0f13e506bb438c263dba4db8686285e04614290e [file] [log] [blame]
Alexandre Lision3b7148e2013-11-13 17:23:06 -05001package org.sflphone.account;
2
3import java.util.ArrayList;
4import java.util.HashMap;
5
6import org.sflphone.R;
7
8import android.util.Log;
9
10public class AccountCredentials implements AccountDetail {
11
12 private static final String TAG = AccountCredentials.class.getSimpleName();
13
14 public static final String CONFIG_ACCOUNT_USERNAME = "Account.username";
15 public static final String CONFIG_ACCOUNT_PASSWORD = "Account.password";
16 public static final String CONFIG_ACCOUNT_REALM = "Account.realm";
Alexandre Lision3b7148e2013-11-13 17:23:06 -050017
18 private ArrayList<AccountDetail.PreferenceEntry> privateArray;
19
20 public static ArrayList<AccountDetail.PreferenceEntry> getPreferenceEntries() {
21 ArrayList<AccountDetail.PreferenceEntry> preference = new ArrayList<AccountDetail.PreferenceEntry>();
22
23 preference.add(new PreferenceEntry(CONFIG_ACCOUNT_USERNAME, R.string.account_username_label));
24 preference.add(new PreferenceEntry(CONFIG_ACCOUNT_PASSWORD, R.string.account_password_label));
25 preference.add(new PreferenceEntry(CONFIG_ACCOUNT_REALM, R.string.account_realm_label));
26
27 return preference;
28 }
29
30 public AccountCredentials() {
31 privateArray = getPreferenceEntries();
32 }
33
34 public AccountCredentials(HashMap<String, String> pref) {
35 privateArray = getPreferenceEntries();
36
37 for (AccountDetail.PreferenceEntry p : privateArray) {
38 p.mValue = pref.get(p.mKey);
39 }
Alexandre Lision3cefec22013-11-14 17:26:35 -050040
41
Alexandre Lision3b7148e2013-11-13 17:23:06 -050042 }
43
44 public AccountCredentials(ArrayList<String> pref) {
45 privateArray = getPreferenceEntries();
46
47 if (pref.size() != privateArray.size()) {
48 Log.i(TAG, "Error list are not of equal size");
49 } else {
50 int index = 0;
51 for (String s : pref) {
52 privateArray.get(index).mValue = s;
53 index++;
54 }
55 }
56 }
57
58 public ArrayList<AccountDetail.PreferenceEntry> getDetailValues() {
59 return privateArray;
60 }
61
62 public ArrayList<String> getValuesOnly() {
63 ArrayList<String> valueList = new ArrayList<String>();
64
65 for (AccountDetail.PreferenceEntry p : privateArray) {
Alexandre Lision3b7148e2013-11-13 17:23:06 -050066 valueList.add(p.mValue);
67 }
68
69 return valueList;
70 }
71
72 public HashMap<String, String> getDetailsHashMap() {
73 HashMap<String, String> map = new HashMap<String, String>();
74
75 for (AccountDetail.PreferenceEntry p : privateArray) {
76 map.put(p.mKey, p.mValue);
77 }
78
79 return map;
80 }
81
82 public String getDetailString(String key) {
83 String value = "";
84
85 for (AccountDetail.PreferenceEntry p : privateArray) {
86 if (p.mKey.equals(key)) {
87 value = p.mValue;
88 return value;
89 }
90 }
91 return value;
92 }
93
94 public void setDetailString(String key, String newValue) {
95 for (int i = 0; i < privateArray.size(); ++i) {
96 PreferenceEntry p = privateArray.get(i);
97 if (p.mKey.equals(key)) {
98 privateArray.get(i).mValue = newValue;
99 }
100 }
101
102 }
Alexandre Lision3cefec22013-11-14 17:26:35 -0500103
104 @Override
105 public boolean equals(Object other){
106 if(other instanceof AccountCredentials)
107 return ((AccountCredentials)other).getDetailsHashMap().get(CONFIG_ACCOUNT_USERNAME).contentEquals(getDetailString(CONFIG_ACCOUNT_USERNAME)) &&
108 ((AccountCredentials)other).getDetailsHashMap().get(CONFIG_ACCOUNT_PASSWORD).contentEquals(getDetailString(CONFIG_ACCOUNT_PASSWORD)) &&
109 ((AccountCredentials)other).getDetailsHashMap().get(CONFIG_ACCOUNT_REALM).contentEquals(getDetailString(CONFIG_ACCOUNT_REALM));
110
111 return false;
112 }
Alexandre Lision3b7148e2013-11-13 17:23:06 -0500113
114}