diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetail.java b/src/com/savoirfairelinux/sflphone/account/AccountDetail.java
index fe69715..43b4544 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetail.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetail.java
@@ -29,37 +29,39 @@
 
 public interface AccountDetail {
 
-    public static class PreferenceEntry
-    {
+    public static class PreferenceEntry {
         public String mKey;
         public int mLabelId;
         public boolean isTwoState;
         public String mValue;
 
-        public PreferenceEntry(String key, int labelId)
-        {
+        public PreferenceEntry(String key, int labelId) {
             mKey = key;
             mLabelId = labelId;
             isTwoState = false;
             mValue = "";
-            
+
         }
 
-        public PreferenceEntry(String key, int labelId, boolean twoState)
-        {
+        public PreferenceEntry(String key, int labelId, boolean twoState) {
             mKey = key;
             mLabelId = labelId;
             isTwoState = twoState;
             mValue = "";
         }
 
-        public PreferenceEntry(String key, int labelId, boolean twoState, String value)
-        {
+        public PreferenceEntry(String key, int labelId, boolean twoState, String value) {
             mKey = key;
             mLabelId = labelId;
             isTwoState = twoState;
             mValue = value;
         }
+
+        public boolean isChecked() {
+            if (mValue.contentEquals("true"))
+                return true;
+            return false;
+        }
     }
 
     public static final String TAG = "PreferenceHashMap";
@@ -72,8 +74,7 @@
 
     public String getDetailString(String key);
 
-    public void setDetailString(int position, String newValue);
+    public void setDetailString(String key, String newValue);
 
     public boolean getDetailBoolean();
 }
-
