fixed majority of java-related warnings
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetail.java b/src/com/savoirfairelinux/sflphone/account/AccountDetail.java
index 43b4544..957079f 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetail.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetail.java
@@ -24,9 +24,6 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 
-import android.provider.MediaStore;
-import android.provider.MediaStore.Audio.Media;
-
 public interface AccountDetail {
 
     public static class PreferenceEntry {
@@ -76,5 +73,4 @@
 
     public void setDetailString(String key, String newValue);
 
-    public boolean getDetailBoolean();
 }
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailAdvanced.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailAdvanced.java
index 1829ff2..ca63767 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailAdvanced.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailAdvanced.java
@@ -21,16 +21,12 @@
  */
 package com.savoirfairelinux.sflphone.account;
 
-import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.account.AccountDetail;
-import com.savoirfairelinux.sflphone.account.AccountDetail.PreferenceEntry;
+import java.util.ArrayList;
+import java.util.HashMap;
 
 import android.util.Log;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Set;
-import java.util.HashMap;
+import com.savoirfairelinux.sflphone.R;
 
 public class AccountDetailAdvanced implements AccountDetail {
 
@@ -56,11 +52,11 @@
     public static final String CONFIG_PUBLISHED_ADDRESS = "Account.publishedAddress";
     
     // FIXME: Why isn't this 5060?
-    public static final String CONFIG_DEFAULT_LOCAL_PORT = "5070";
-    public static final String CONFIG_DEFAULT_PUBLISHED_PORT = "5070";
+    public static final String CONFIG_DEFAULT_LOCAL_PORT = "5060";
+    public static final String CONFIG_DEFAULT_PUBLISHED_PORT = "5060";
     public static final String CONFIG_DEFAULT_PUBLISHED_SAMEAS_LOCAL = "true";
     // FIXME: Why isn't this "default"?
-    public static final String CONFIG_DEFAULT_INTERFACE = "wlan0";
+    public static final String CONFIG_DEFAULT_INTERFACE = "default";
     public static final String CONFIG_DEFAULT_REGISTRATION_EXPIRE = "60";
 
     public static final String CONFIG_DISPLAY_NAME = "Account.displayName";
@@ -180,9 +176,4 @@
         
     }
 
-    public boolean getDetailBoolean()
-    {
-        return true;
-    }
-
 }
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailBasic.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailBasic.java
index 4f9137d..b2766ed 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailBasic.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailBasic.java
@@ -21,16 +21,12 @@
  */
 package com.savoirfairelinux.sflphone.account;
 
-import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.account.AccountDetail;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
+import java.util.ArrayList;
+import java.util.HashMap;
 
 import android.util.Log;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Set;
-import java.util.HashMap;
+import com.savoirfairelinux.sflphone.R;
 
 public class AccountDetailBasic implements AccountDetail {
 
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailSrtp.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailSrtp.java
index a193f85..7b82d72 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailSrtp.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailSrtp.java
@@ -21,17 +21,12 @@
  */
 package com.savoirfairelinux.sflphone.account;
 
-import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.account.AccountDetail;
-import com.savoirfairelinux.sflphone.account.AccountDetail.PreferenceEntry;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
+import java.util.ArrayList;
+import java.util.HashMap;
 
 import android.util.Log;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Set;
-import java.util.HashMap;
+import com.savoirfairelinux.sflphone.R;
 
 public class AccountDetailSrtp implements AccountDetail{
 
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailTls.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailTls.java
index 0794749..8d535f7 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailTls.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailTls.java
@@ -27,7 +27,6 @@
 import android.util.Log;
 
 import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
 
 public class AccountDetailTls implements AccountDetail {
 
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountDetailsHandler.java b/src/com/savoirfairelinux/sflphone/account/AccountDetailsHandler.java
index fb6c5cc..da01569 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountDetailsHandler.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountDetailsHandler.java
@@ -25,11 +25,10 @@
 import java.util.HashMap;
 
 import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
 import com.savoirfairelinux.sflphone.service.StringMap;
 
 public class AccountDetailsHandler {
-    private static final String TAG = "AccountDetailsHandler";
+//    private static final String TAG = "AccountDetailsHandler";
 
     public static class PreferenceEntry {
         public String mKey;
diff --git a/src/com/savoirfairelinux/sflphone/account/CallDetailsHandler.java b/src/com/savoirfairelinux/sflphone/account/CallDetailsHandler.java
index ddce5be..76ff36b 100644
--- a/src/com/savoirfairelinux/sflphone/account/CallDetailsHandler.java
+++ b/src/com/savoirfairelinux/sflphone/account/CallDetailsHandler.java
@@ -69,6 +69,8 @@
         if (smap.has_key(key)) {
             return smap.get(key);
         } else {
+            if(key.contentEquals(ServiceConstants.call.TIMESTAMP_START))
+            return ""+System.currentTimeMillis() / 1000;
             return "";
         }
     }
diff --git a/src/com/savoirfairelinux/sflphone/account/HistoryHandler.java b/src/com/savoirfairelinux/sflphone/account/HistoryHandler.java
index 130ef31..993b0b5 100644
--- a/src/com/savoirfairelinux/sflphone/account/HistoryHandler.java
+++ b/src/com/savoirfairelinux/sflphone/account/HistoryHandler.java
@@ -3,14 +3,12 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 
-import android.util.Log;
-
 import com.savoirfairelinux.sflphone.service.ServiceConstants;
-import com.savoirfairelinux.sflphone.service.VectMap;
 import com.savoirfairelinux.sflphone.service.StringMap;
+import com.savoirfairelinux.sflphone.service.VectMap;
 
 public class HistoryHandler {
-    private static final String TAG = HistoryHandler.class.getSimpleName();
+//    private static final String TAG = HistoryHandler.class.getSimpleName();
 
     private static String tryToGet(StringMap smap, String key) {
         if (smap.has_key(key)) {
diff --git a/src/com/savoirfairelinux/sflphone/adapters/AccountSelectionAdapter.java b/src/com/savoirfairelinux/sflphone/adapters/AccountSelectionAdapter.java
index c794cdb..ae5d8a5 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/AccountSelectionAdapter.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/AccountSelectionAdapter.java
@@ -14,7 +14,6 @@
 
 import com.savoirfairelinux.sflphone.R;
 import com.savoirfairelinux.sflphone.model.Account;
-import com.savoirfairelinux.sflphone.service.ISipService;
 
 public class AccountSelectionAdapter extends BaseAdapter {
 
diff --git a/src/com/savoirfairelinux/sflphone/adapters/ContactPictureLoader.java b/src/com/savoirfairelinux/sflphone/adapters/ContactPictureTask.java
similarity index 94%
rename from src/com/savoirfairelinux/sflphone/adapters/ContactPictureLoader.java
rename to src/com/savoirfairelinux/sflphone/adapters/ContactPictureTask.java
index 591d0c3..d1d5f6b 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/ContactPictureLoader.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/ContactPictureTask.java
@@ -50,13 +50,13 @@
 
 import com.savoirfairelinux.sflphone.R;
 
-public class ContactPictureLoader implements Runnable {
+public class ContactPictureTask implements Runnable {
     private ImageView view;
     private long cid;
     private ContentResolver cr;
-    private final String TAG = ContactPictureLoader.class.getSimpleName();
+//    private final String TAG = ContactPictureTask.class.getSimpleName();
 
-    public ContactPictureLoader(Context context, ImageView element, long contact_id) {
+    public ContactPictureTask(Context context, ImageView element, long contact_id) {
         cid = contact_id;
         cr = context.getContentResolver();
         view = element;
diff --git a/src/com/savoirfairelinux/sflphone/adapters/ContactsAdapter.java b/src/com/savoirfairelinux/sflphone/adapters/ContactsAdapter.java
index b27c85f..a47b20a 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/ContactsAdapter.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/ContactsAdapter.java
@@ -9,7 +9,6 @@
 import java.util.concurrent.Executors;
 
 import android.content.Context;
-import android.util.Log;
 import android.util.SparseArray;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -30,7 +29,7 @@
     HashMap<String, Integer> alphaIndexer;
     String[] sections;
 
-    private static final String TAG = ContactsAdapter.class.getSimpleName();
+//    private static final String TAG = ContactsAdapter.class.getSimpleName();
 
     public ContactsAdapter(Context context) {
         super();
@@ -79,7 +78,7 @@
         ((TextView) convertView.findViewById(R.id.display_name)).setText(item.getmDisplayName());
         ImageView photo_view = (ImageView) convertView.findViewById(R.id.photo);
 
-        infos_fetcher.execute(new ContactPictureLoader(mContext, photo_view, item.getId()));
+        infos_fetcher.execute(new ContactPictureTask(mContext, photo_view, item.getId()));
 
         return convertView;
     }
@@ -206,14 +205,14 @@
         }
 
         private class Section {
-            public int startPosition;
+//            public int startPosition;
             public int number;
             public String header;
 
             public Section(int i, int headersCount, String str) {
 //                Log.i(TAG, "Creating section");
 
-                startPosition = i + headersCount;
+//                startPosition = i + headersCount;
                 number = headersCount;
                 header = str;
 
diff --git a/src/com/savoirfairelinux/sflphone/adapters/SectionsPagerAdapter.java b/src/com/savoirfairelinux/sflphone/adapters/SectionsPagerAdapter.java
index f58ad4f..903eac6 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/SectionsPagerAdapter.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/SectionsPagerAdapter.java
@@ -1,19 +1,19 @@
 package com.savoirfairelinux.sflphone.adapters;
 
 import java.util.ArrayList;
+import java.util.Locale;
 
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.content.Context;
-import android.os.Bundle;
 import android.os.RemoteException;
 import android.support.v13.app.FragmentStatePagerAdapter;
 import android.util.Log;
 
 import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.fragments.HomeFragment;
 import com.savoirfairelinux.sflphone.fragments.DialingFragment;
 import com.savoirfairelinux.sflphone.fragments.HistoryFragment;
+import com.savoirfairelinux.sflphone.fragments.HomeFragment;
 
 public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
     
@@ -73,11 +73,11 @@
     public CharSequence getPageTitle(int position) {
         switch (position) {
         case 0:
-            return mContext.getString(R.string.title_section0).toUpperCase();
+            return mContext.getString(R.string.title_section0).toUpperCase(Locale.getDefault());
         case 1:
-            return mContext.getString(R.string.title_section1).toUpperCase();
+            return mContext.getString(R.string.title_section1).toUpperCase(Locale.getDefault());
         case 2:
-            return mContext.getString(R.string.title_section2).toUpperCase();
+            return mContext.getString(R.string.title_section2).toUpperCase(Locale.getDefault());
         default:
             Log.e(TAG, "getPageTitle: unknown tab position " + position);
             break;
diff --git a/src/com/savoirfairelinux/sflphone/adapters/StarredContactsAdapter.java b/src/com/savoirfairelinux/sflphone/adapters/StarredContactsAdapter.java
index c09dfe7..70ac20e 100644
--- a/src/com/savoirfairelinux/sflphone/adapters/StarredContactsAdapter.java
+++ b/src/com/savoirfairelinux/sflphone/adapters/StarredContactsAdapter.java
@@ -52,7 +52,7 @@
     private ArrayList<CallContact> dataset;
     Context mContext;
 
-    private static final String TAG = ContactsAdapter.class.getSimpleName();
+//    private static final String TAG = ContactsAdapter.class.getSimpleName();
 
     public StarredContactsAdapter(Context context) {
         super();
@@ -100,7 +100,7 @@
         ((TextView) v.findViewById(R.id.display_name)).setText(item.getmDisplayName());
         ImageView photo_view = (ImageView) v.findViewById(R.id.photo);
 
-        infos_fetcher.execute(new ContactPictureLoader(mContext, photo_view, item.getId()));
+        infos_fetcher.execute(new ContactPictureTask(mContext, photo_view, item.getId()));
 
         return v;
     }
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java b/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java
index ded776c..2a99448 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountPreferenceActivity.java
@@ -82,6 +82,7 @@
 
     private boolean isDifferent = false;
 
+    @SuppressWarnings("deprecation")
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountWizard.java b/src/com/savoirfairelinux/sflphone/client/AccountWizard.java
index 6218ab9..129a6bf 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountWizard.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountWizard.java
@@ -32,16 +32,14 @@
 package com.savoirfairelinux.sflphone.client;
 
 import java.util.ArrayList;
+import java.util.Locale;
 
 import android.app.Activity;
 import android.app.Fragment;
 import android.app.FragmentManager;
-import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
-import android.content.ServiceConnection;
 import android.os.Bundle;
-import android.os.IBinder;
 import android.support.v13.app.FragmentStatePagerAdapter;
 import android.support.v4.view.ViewPager;
 import android.util.Log;
@@ -50,8 +48,6 @@
 import com.savoirfairelinux.sflphone.R;
 import com.savoirfairelinux.sflphone.fragments.AccountCreationFragment;
 import com.savoirfairelinux.sflphone.interfaces.AccountsInterface;
-import com.savoirfairelinux.sflphone.service.ISipService;
-import com.savoirfairelinux.sflphone.service.SipService;
 
 public class AccountWizard extends Activity implements AccountsInterface {
     static final String TAG = "AccountWizard";
@@ -59,7 +55,6 @@
     public static final int ACCOUNT_CREATED = Activity.RESULT_OK;
 
     ViewPager mViewPager;
-    private ISipService service;
     private SectionsPagerAdapter mSectionsPagerAdapter;
 
     @Override
@@ -71,40 +66,17 @@
 
         getActionBar().setDisplayHomeAsUpEnabled(true);
         getActionBar().setHomeButtonEnabled(true);
-
-        Intent intent = new Intent(this, SipService.class);
-        bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
+        mSectionsPagerAdapter = new SectionsPagerAdapter(AccountWizard.this, getFragmentManager());
+        mViewPager.setAdapter(mSectionsPagerAdapter);
 
     }
 
     /* activity finishes itself or is being killed by the system */
     @Override
     protected void onDestroy() {
-        /* stop the service, if no other bound user, no need to check if it is running */
-
-        unbindService(mConnection);
-
         super.onDestroy();
     }
 
-    /** Defines callbacks for service binding, passed to bindService() */
-    private ServiceConnection mConnection = new ServiceConnection() {
-
-        @Override
-        public void onServiceConnected(ComponentName className, IBinder binder) {
-            service = ISipService.Stub.asInterface(binder);
-
-            mSectionsPagerAdapter = new SectionsPagerAdapter(AccountWizard.this, getFragmentManager());
-            mViewPager.setAdapter(mSectionsPagerAdapter);
-
-        }
-
-        @Override
-        public void onServiceDisconnected(ComponentName arg0) {
-
-        }
-    };
-
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
@@ -178,7 +150,7 @@
         public CharSequence getPageTitle(int position) {
             switch (position) {
             case 0:
-                return mContext.getString(R.string.title_section0).toUpperCase();
+                return mContext.getString(R.string.title_section0).toUpperCase(Locale.getDefault());
             default:
                 Log.e(TAG, "getPageTitle: unknown tab position " + position);
                 break;
diff --git a/src/com/savoirfairelinux/sflphone/client/CallActivity.java b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
index d66fecd..d92b53f 100644
--- a/src/com/savoirfairelinux/sflphone/client/CallActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/CallActivity.java
@@ -33,7 +33,6 @@
 
 package com.savoirfairelinux.sflphone.client;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 
 import android.app.Activity;
@@ -264,6 +263,7 @@
 
     }
 
+    @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
     public void processCallStateChangedSignal(String callID, String newState) {
         /*
          * Bundle bundle = intent.getBundleExtra("com.savoirfairelinux.sflphone.service.newstate"); String callID = bundle.getString("CallID"); String
@@ -285,8 +285,8 @@
             }
 
             if (callMap.size() > 0) {
-                ArrayList<SipCall> calls = new ArrayList<SipCall>(callMap.values());
-                HashMap<String, String> details = (HashMap<String, String>) service.getCallDetails(calls.get(0).getCallId());
+//                ArrayList<SipCall> calls = new ArrayList<SipCall>(callMap.values());
+//                HashMap<String, String> details = (HashMap<String, String>) service.getCallDetails(calls.get(0).getCallId());
 
             }
         } catch (RemoteException e) {
@@ -317,6 +317,7 @@
         if (mCurrentCallFragment == null || mCurrentCallFragment.getBubbleView() == null) {
             return;
         }
+        mHandler.removeCallbacks(mUpdateTimeTask);
         mCurrentCallFragment.getBubbleView().stopThread();
         mCurrentCallFragment = new CallFragment();
         Bundle b = new Bundle();
@@ -492,6 +493,7 @@
 
     @Override
     public void replaceCurrentCallDisplayed() {
+        mHandler.removeCallbacks(mUpdateTimeTask);
         mCurrentCallFragment.getBubbleView().stopThread();
         getFragmentManager().beginTransaction().remove(mCurrentCallFragment).commit();
         mCurrentCallFragment = null;
diff --git a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java
index 53a6c6e..43c450e 100644
--- a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHomeActivity.java
@@ -200,13 +200,6 @@
         // mTabHost = (TabHost) findViewById(android.R.id.tabhost);
         mDrawerLayout.setDrawerListener(mDrawerToggle);
 
-        mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
-            @Override
-            public void onPageSelected(int position) {
-                // mTabHost.setCurrentTab(position);
-            }
-        });
-
     }
 
     @Override
diff --git a/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java b/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
index f657702..86f21fc 100644
--- a/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/SFLPhonePreferenceActivity.java
@@ -31,6 +31,8 @@
 
 package com.savoirfairelinux.sflphone.client;
 
+import java.util.Locale;
+
 import android.app.ActionBar;
 import android.app.Activity;
 import android.app.Fragment;
@@ -49,7 +51,6 @@
 
 import com.savoirfairelinux.sflphone.R;
 import com.savoirfairelinux.sflphone.fragments.AccountManagementFragment;
-import com.savoirfairelinux.sflphone.fragments.AudioManagementFragment;
 import com.savoirfairelinux.sflphone.service.ISipService;
 import com.savoirfairelinux.sflphone.service.SipService;
 
@@ -198,7 +199,7 @@
         public CharSequence getPageTitle(int position) {
             switch (position) {
             case 0:
-                return getString(R.string.preference_section1).toUpperCase();
+                return getString(R.string.preference_section1).toUpperCase(Locale.getDefault());
 //            case 1:
 //                return getString(R.string.preference_section2).toUpperCase();
             default:
diff --git a/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java b/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java
index b48844c..9faabd0 100644
--- a/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java
+++ b/src/com/savoirfairelinux/sflphone/client/ZoomOutPageTransformer.java
@@ -5,11 +5,11 @@
 
 public class ZoomOutPageTransformer implements ViewPager.PageTransformer {
     private static final float MIN_ALPHA = .6f;
-    private final float scalingStart;
+//    private final float scalingStart;
 
     public ZoomOutPageTransformer(float scalingStart) {
         super();
-        this.scalingStart = 1 - scalingStart;
+//        this.scalingStart = 1 - scalingStart;
     }
 
     @Override
diff --git a/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java
index af758ef..5103e4b 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AccountCreationFragment.java
@@ -3,10 +3,7 @@
 import java.util.HashMap;
 
 import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
 import android.app.Fragment;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
diff --git a/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
index cf96191..c3c692a 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AccountManagementFragment.java
@@ -136,6 +136,7 @@
         Log.i(TAG, "onDestroy");
     }
 
+    @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         switch (requestCode) {
@@ -295,6 +296,7 @@
         startActivityForResult(intent, ACCOUNT_EDIT_REQUEST);
     }
 
+    @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
     private ArrayList<String> getAccountList() {
         ArrayList<String> accountList = null;
         try {
@@ -309,6 +311,7 @@
         return accountList;
     }
 
+    @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
     private HashMap<String, String> getAccountDetails(String accountID) {
         HashMap<String, String> accountDetails = null;
         try {
diff --git a/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java b/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java
index 022cf2e..32b7db4 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/AudioManagementFragment.java
@@ -35,15 +35,13 @@
 import android.app.Activity;
 import android.content.Context;
 import android.content.res.TypedArray;
-import android.graphics.Typeface;
+import android.os.Bundle;
 import android.preference.EditTextPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceCategory;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
-import android.os.Bundle;
-import android.util.Log;
 import android.util.AttributeSet;
 import android.view.View;
 import android.view.ViewGroup;
@@ -219,10 +217,6 @@
                 seekbar.setMax( max );
         }
 
-        private SeekBar getSeekBar () {
-            return seekbar;
-        }
-
         @Override
         protected Object onGetDefaultValue (TypedArray a, int index) {
             return a.getInt( index, progress );
@@ -253,7 +247,7 @@
             else {
                 setProgress( seekBar.getProgress() );
 
-                OnPreferenceChangeListener listener = getOnPreferenceChangeListener();
+//                OnPreferenceChangeListener listener = getOnPreferenceChangeListener();
                 //if (listener instanceof AbstractSeekBarListener)
                 ////        setSummary( ((AbstractSeekBarListener)listener).toSummary( seekBar.getProgress() ) );
             }
diff --git a/src/com/savoirfairelinux/sflphone/fragments/CallListFragment.java b/src/com/savoirfairelinux/sflphone/fragments/CallListFragment.java
index 5d011db..1c3f203 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/CallListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/CallListFragment.java
@@ -39,7 +39,6 @@
 import android.app.Dialog;
 import android.app.DialogFragment;
 import android.app.Fragment;
-import android.app.FragmentManager;
 import android.content.ClipData;
 import android.content.ClipData.Item;
 import android.content.Context;
@@ -206,6 +205,7 @@
 
     OnDragListener dragListener = new OnDragListener() {
 
+        @SuppressWarnings("deprecation") // deprecated in API 16....
         @Override
         public boolean onDrag(View v, DragEvent event) {
             switch (event.getAction()) {
@@ -292,9 +292,9 @@
         }
     };
 
+    @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
     public void update() {
         try {
-            Log.w(TAG, "Updating");
             HashMap<String, SipCall> list = (HashMap<String, SipCall>) mCallbacks.getService().getCallList();
 
             // Toast.makeText(getActivity(), "Calls: " + list.size(), Toast.LENGTH_SHORT).show();
@@ -304,7 +304,6 @@
 
             ArrayList<SipCall> simple_calls = new ArrayList<SipCall>(list.values());
             for (SipCall call : simple_calls) {
-                Log.w(TAG, "SimpleCall:" + call.getCallId());
                 Conference confOne = new Conference("-1");
                 confOne.getParticipants().add(call);
                 conferences.add(confOne);
diff --git a/src/com/savoirfairelinux/sflphone/fragments/ConferenceDFragment.java b/src/com/savoirfairelinux/sflphone/fragments/ConferenceDFragment.java
index 0316d33..6f4cabd 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/ConferenceDFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/ConferenceDFragment.java
@@ -24,9 +24,7 @@
 
 import com.savoirfairelinux.sflphone.R;
 import com.savoirfairelinux.sflphone.loaders.ContactsLoader;
-import com.savoirfairelinux.sflphone.model.CallContact;
 import com.savoirfairelinux.sflphone.model.Conference;
-import com.savoirfairelinux.sflphone.model.SipCall;
 
 public class ConferenceDFragment extends DialogFragment implements LoaderManager.LoaderCallbacks<Bundle> {
 
@@ -105,7 +103,7 @@
     @Override
     public void onLoadFinished(Loader<Bundle> loader, Bundle data) {
 
-        ArrayList<CallContact> tmp = data.getParcelableArrayList("Contacts");
+//        ArrayList<CallContact> tmp = data.getParcelableArrayList("Contacts");
 
     }
 
diff --git a/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java b/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java
index da42955..b9d38a6 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/DialingFragment.java
@@ -31,38 +31,32 @@
 
 package com.savoirfairelinux.sflphone.fragments;
 
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
 import android.app.Activity;
 import android.app.Fragment;
 import android.content.Context;
-import android.os.Build;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnClickListener;
+import android.view.View.OnTouchListener;
 import android.view.ViewGroup;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Button;
 import android.widget.ImageButton;
-import android.widget.Toast;
 
 import com.savoirfairelinux.sflphone.R;
 import com.savoirfairelinux.sflphone.service.ISipService;
 import com.savoirfairelinux.sflphone.views.ClearableEditText;
 
-public class DialingFragment extends Fragment {
+public class DialingFragment extends Fragment implements OnTouchListener {
 
     private static final String TAG = DialingFragment.class.getSimpleName();
-    public static final String ARG_SECTION_NUMBER = "section_number";
 
     ClearableEditText textField;
-    // private AccountSelectionSpinner mAccountSelectionSpinner;
-
-    // AccountSelectionAdapter mAdapter;
     private Callbacks mCallbacks = sDummyCallbacks;
-    // private Spinner spinnerAccounts;
 
     /**
      * A dummy implementation of the {@link Callbacks} interface that does nothing. Used only when this fragment is not attached to an activity.
@@ -110,8 +104,9 @@
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
+        Log.i(TAG,"Create History Fragment");
         super.onCreate(savedInstanceState);
-        // mAdapter = new HistoryAdapter(getActivity(),new ArrayList<HashMap<String, String>>());
+
     }
 
     @Override
@@ -132,6 +127,8 @@
             }
         });
 
+        inflatedView.setOnTouchListener(this);
+
         ((Button) inflatedView.findViewById(R.id.alphabetic_keyboard)).setOnClickListener(new OnClickListener() {
 
             @Override
@@ -146,16 +143,14 @@
 
             @Override
             public void onClick(View v) {
-                textField.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
+                textField.setInputType(EditorInfo.TYPE_CLASS_PHONE);
                 InputMethodManager lManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
                 lManager.showSoftInput(textField.getEdit_text(), 0);
             }
         });
-
         return inflatedView;
     }
 
-
     @Override
     public void onResume() {
         super.onResume();
@@ -164,7 +159,15 @@
     @Override
     public void onStart() {
         super.onStart();
+    }
 
+    @Override
+    public boolean onTouch(View v, MotionEvent event) {
+        InputMethodManager lManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+        lManager.showSoftInput(textField.getEdit_text(), 0);
+        textField.setError(null);
+        lManager.hideSoftInputFromWindow(textField.getWindowToken(), 0);
+        return false;
     }
 
 }
diff --git a/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java b/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java
index 766e067..480b122 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/HistoryFragment.java
@@ -56,7 +56,7 @@
 import android.widget.TextView;
 
 import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.adapters.ContactPictureLoader;
+import com.savoirfairelinux.sflphone.adapters.ContactPictureTask;
 import com.savoirfairelinux.sflphone.loaders.HistoryLoader;
 import com.savoirfairelinux.sflphone.loaders.LoaderConstants;
 import com.savoirfairelinux.sflphone.model.HistoryEntry;
@@ -65,7 +65,6 @@
 public class HistoryFragment extends ListFragment implements LoaderCallbacks<ArrayList<HistoryEntry>> {
 
     private static final String TAG = HistoryFragment.class.getSimpleName();
-    public static final String ARG_SECTION_NUMBER = "section_number";
 
     HistoryAdapter mAdapter;
     private Callbacks mCallbacks = sDummyCallbacks;
@@ -217,7 +216,7 @@
             // SipCall call = (SipCall) mCallList.values().toArray()[position];
             entryView.displayName.setText(dataset.get(pos).getContact().getmDisplayName());
 
-            infos_fetcher.execute(new ContactPictureLoader(mContext.getActivity(), entryView.photo, dataset.get(pos).getContact().getId()));
+            infos_fetcher.execute(new ContactPictureTask(mContext.getActivity(), entryView.photo, dataset.get(pos).getContact().getId()));
 
             entryView.missed.setText("Missed:" + dataset.get(pos).getMissed_sum());
             entryView.incoming.setText("In:" + dataset.get(pos).getIncoming_sum());
diff --git a/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java b/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java
index 33228ae..cb6cb0b 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/HomeFragment.java
@@ -30,14 +30,10 @@
  */
 package com.savoirfairelinux.sflphone.fragments;
 
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.HashMap;
-import java.util.Locale;
 import java.util.Observable;
 import java.util.Observer;
-import java.util.TimeZone;
 
 import android.app.Activity;
 import android.app.Fragment;
@@ -46,7 +42,6 @@
 import android.os.Handler;
 import android.os.RemoteException;
 import android.os.SystemClock;
-import android.text.format.DateFormat;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -69,7 +64,6 @@
     private static final String TAG = HomeFragment.class.getSimpleName();
 
     private Callbacks mCallbacks = sDummyCallbacks;
-    // Button access_calls;
     TextView nb_calls, nb_confs;
     CallListAdapter confs_adapter;
     CallTimer timer;
@@ -149,6 +143,7 @@
 
     }
 
+    @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
     public void updateLists() throws RemoteException {
         HashMap<String, SipCall> calls = (HashMap<String, SipCall>) mCallbacks.getService().getCallList();
         HashMap<String, Conference> confs = (HashMap<String, Conference>) mCallbacks.getService().getConferenceList();
diff --git a/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java b/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
index 7339a91..14bee67 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/MenuFragment.java
@@ -51,7 +51,6 @@
 import android.widget.ListView;
 import android.widget.RadioButton;
 import android.widget.Spinner;
-import android.widget.Toast;
 
 import com.savoirfairelinux.sflphone.R;
 import com.savoirfairelinux.sflphone.adapters.AccountSelectionAdapter;
diff --git a/src/com/savoirfairelinux/sflphone/fragments/TransferDFragment.java b/src/com/savoirfairelinux/sflphone/fragments/TransferDFragment.java
index c77949a..a90fe22 100644
--- a/src/com/savoirfairelinux/sflphone/fragments/TransferDFragment.java
+++ b/src/com/savoirfairelinux/sflphone/fragments/TransferDFragment.java
@@ -36,7 +36,6 @@
 
 import com.savoirfairelinux.sflphone.R;
 import com.savoirfairelinux.sflphone.loaders.ContactsLoader;
-import com.savoirfairelinux.sflphone.model.CallContact;
 import com.savoirfairelinux.sflphone.model.Conference;
 import com.savoirfairelinux.sflphone.model.SipCall;
 
@@ -151,7 +150,7 @@
     @Override
     public void onLoadFinished(Loader<Bundle> loader, Bundle data) {
 
-        ArrayList<CallContact> tmp = data.getParcelableArrayList("Contacts");
+//        ArrayList<CallContact> tmp = data.getParcelableArrayList("Contacts");
 
     }
 
@@ -165,7 +164,7 @@
 
         private LayoutInflater mInflater;
         private Geocoder mGeocoder;
-        private StringBuilder mSb = new StringBuilder();
+//        private StringBuilder mSb = new StringBuilder();
 
         public AutoCompleteAdapter(final Context context) {
             super(context, -1);
diff --git a/src/com/savoirfairelinux/sflphone/loaders/AccountsLoader.java b/src/com/savoirfairelinux/sflphone/loaders/AccountsLoader.java
index 375a039..40af292 100644
--- a/src/com/savoirfairelinux/sflphone/loaders/AccountsLoader.java
+++ b/src/com/savoirfairelinux/sflphone/loaders/AccountsLoader.java
@@ -22,6 +22,7 @@
         service = ref;
     }
 
+    @SuppressWarnings("unchecked") // Hashmap runtime cast 
     @Override
     public ArrayList<Account> loadInBackground() {
 
diff --git a/src/com/savoirfairelinux/sflphone/loaders/HistoryLoader.java b/src/com/savoirfairelinux/sflphone/loaders/HistoryLoader.java
index 719dcde..f0b48d1 100644
--- a/src/com/savoirfairelinux/sflphone/loaders/HistoryLoader.java
+++ b/src/com/savoirfairelinux/sflphone/loaders/HistoryLoader.java
@@ -34,6 +34,7 @@
         service = isip;
     }
 
+    @SuppressWarnings("unchecked") // Hashmap runtime cast 
     @Override
     public ArrayList<HistoryEntry> loadInBackground() {
 
diff --git a/src/com/savoirfairelinux/sflphone/model/Account.java b/src/com/savoirfairelinux/sflphone/model/Account.java
index 0ed30fa..2f76d29 100644
--- a/src/com/savoirfairelinux/sflphone/model/Account.java
+++ b/src/com/savoirfairelinux/sflphone/model/Account.java
@@ -40,7 +40,6 @@
 import com.savoirfairelinux.sflphone.account.AccountDetailBasic;
 import com.savoirfairelinux.sflphone.account.AccountDetailSrtp;
 import com.savoirfairelinux.sflphone.account.AccountDetailTls;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
 
 public class Account implements Parcelable {
 
diff --git a/src/com/savoirfairelinux/sflphone/model/Bubble.java b/src/com/savoirfairelinux/sflphone/model/Bubble.java
index db61337..f71a385 100644
--- a/src/com/savoirfairelinux/sflphone/model/Bubble.java
+++ b/src/com/savoirfairelinux/sflphone/model/Bubble.java
@@ -13,7 +13,7 @@
 import android.util.Log;
 
 import com.savoirfairelinux.sflphone.R;
-import com.savoirfairelinux.sflphone.adapters.ContactPictureLoader;
+import com.savoirfairelinux.sflphone.adapters.ContactPictureTask;
 
 public class Bubble {
 
@@ -45,7 +45,7 @@
 
         Bitmap photo = null;
         if (call.getContact().getPhoto_id() > 0) {
-            photo = ContactPictureLoader.loadContactPhoto(context.getContentResolver(), call.getContact().getId());
+            photo = ContactPictureTask.loadContactPhoto(context.getContentResolver(), call.getContact().getId());
         } else {
             photo = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_contact_picture);
         }
diff --git a/src/com/savoirfairelinux/sflphone/model/BubbleModel.java b/src/com/savoirfairelinux/sflphone/model/BubbleModel.java
index 2032e6e..b02b84f 100644
--- a/src/com/savoirfairelinux/sflphone/model/BubbleModel.java
+++ b/src/com/savoirfairelinux/sflphone/model/BubbleModel.java
@@ -36,6 +36,7 @@
 	private float density = 1.f;
 
 	public BubbleModel(float screen_density) {
+	    Log.d(TAG, "Creating BubbleModel");
 		this.density = screen_density;
 		attractor_dist_suck = ATTRACTOR_DIST_SUCK*density;
 		bubble_max_speed = BUBBLE_MAX_SPEED*density;
diff --git a/src/com/savoirfairelinux/sflphone/model/CallContact.java b/src/com/savoirfairelinux/sflphone/model/CallContact.java
index bc720a0..6f7b834 100644
--- a/src/com/savoirfairelinux/sflphone/model/CallContact.java
+++ b/src/com/savoirfairelinux/sflphone/model/CallContact.java
@@ -211,7 +211,7 @@
         isUser = in.readByte() == 1 ? true : false;
     }
 
-    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
+    public static final Parcelable.Creator<CallContact> CREATOR = new Parcelable.Creator<CallContact>() {
         @Override
         public CallContact createFromParcel(Parcel in) {
             return new CallContact(in);
diff --git a/src/com/savoirfairelinux/sflphone/model/Conference.java b/src/com/savoirfairelinux/sflphone/model/Conference.java
index c242b4d..ef0a2c8 100644
--- a/src/com/savoirfairelinux/sflphone/model/Conference.java
+++ b/src/com/savoirfairelinux/sflphone/model/Conference.java
@@ -1,9 +1,6 @@
 package com.savoirfairelinux.sflphone.model;
 
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
 
 import android.os.Parcel;
 import android.os.Parcelable;
diff --git a/src/com/savoirfairelinux/sflphone/receivers/IncomingReceiver.java b/src/com/savoirfairelinux/sflphone/receivers/IncomingReceiver.java
index 64769b8..60b91f3 100644
--- a/src/com/savoirfairelinux/sflphone/receivers/IncomingReceiver.java
+++ b/src/com/savoirfairelinux/sflphone/receivers/IncomingReceiver.java
@@ -12,16 +12,14 @@
 import android.os.RemoteException;
 import android.util.Log;
 
-import com.savoirfairelinux.sflphone.account.CallDetailsHandler;
 import com.savoirfairelinux.sflphone.model.CallContact;
 import com.savoirfairelinux.sflphone.model.Conference;
 import com.savoirfairelinux.sflphone.model.SipCall;
 import com.savoirfairelinux.sflphone.service.CallManagerCallBack;
 import com.savoirfairelinux.sflphone.service.ConfigurationManagerCallback;
-import com.savoirfairelinux.sflphone.service.ServiceConstants;
 import com.savoirfairelinux.sflphone.service.ISipService.Stub;
+import com.savoirfairelinux.sflphone.service.ServiceConstants;
 import com.savoirfairelinux.sflphone.service.SipService;
-import com.savoirfairelinux.sflphone.service.StringMap;
 
 public class IncomingReceiver extends BroadcastReceiver {
 
@@ -35,6 +33,7 @@
         mBinder = bind;
     }
 
+    @SuppressWarnings("unchecked") // Hashmap runtime cast 
     @Override
     public void onReceive(Context context, Intent intent) {
 
diff --git a/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerCallback.java b/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerCallback.java
index 48e1440..4b96ae1 100644
--- a/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerCallback.java
+++ b/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerCallback.java
@@ -25,10 +25,9 @@
 import android.content.Context;
 import android.content.Intent;
 import android.support.v4.content.LocalBroadcastManager;
-import android.util.Log;
 
 public class ConfigurationManagerCallback extends ConfigurationCallback {
-    private static final String TAG = "ConfigurationManagerCallback";
+//    private static final String TAG = "ConfigurationManagerCallback";
     private Context mContext;
 
     static public final String SIGNAL_NAME = "signal-name";
diff --git a/src/com/savoirfairelinux/sflphone/service/SipService.java b/src/com/savoirfairelinux/sflphone/service/SipService.java
index fb78acb..217568d 100644
--- a/src/com/savoirfairelinux/sflphone/service/SipService.java
+++ b/src/com/savoirfairelinux/sflphone/service/SipService.java
@@ -536,6 +536,7 @@
             return nativemap;
         }
 
+        @SuppressWarnings("unchecked") // Hashmap runtime cast 
         @Override
         public void setAccountDetails(final String accountId, final Map map) {
             HashMap<String, String> nativemap = (HashMap<String, String>) map;
@@ -584,6 +585,7 @@
             return nativemap;
         }
 
+        @SuppressWarnings("unchecked") // Hashmap runtime cast 
         @Override
         public String addAccount(Map map) {
             class AddAccount extends SipRunnableWithReturn {
diff --git a/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java b/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java
index 78c1e9c..8a21b7c 100644
--- a/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java
+++ b/src/com/savoirfairelinux/sflphone/views/CustomSlidingDrawer.java
@@ -1,5 +1,7 @@
 package com.savoirfairelinux.sflphone.views;
 
+import java.lang.ref.WeakReference;
+
 import android.content.Context;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
@@ -10,7 +12,6 @@
 import android.os.Message;
 import android.os.SystemClock;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.util.TypedValue;
 import android.view.MotionEvent;
 import android.view.SoundEffectConstants;
@@ -80,7 +81,7 @@
 
     private static final int EXPANDED_FULL_OPEN = -10001;
     private static final int COLLAPSED_FULL_CLOSED = -10002;
-    private static final String TAG = CustomSlidingDrawer.class.getSimpleName();
+//    private static final String TAG = CustomSlidingDrawer.class.getSimpleName();
 
     private final int mHandleId;
     private final int mContentId;
@@ -107,7 +108,7 @@
     private OnDrawerCloseListener mOnDrawerCloseListener;
     private OnDrawerScrollListener mOnDrawerScrollListener;
 
-    private final Handler mHandler = new SlidingHandler();
+    private SlidingHandler mHandler;
     private float mAnimatedAcceleration;
     private float mAnimatedVelocity;
     private float mAnimationPosition;
@@ -186,7 +187,9 @@
     public CustomSlidingDrawer(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
         TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomSlidingDrawer, defStyle, 0);
-
+        
+        mHandler = new SlidingHandler(this);
+        
         int orientation = a.getInt(R.styleable.CustomSlidingDrawer_orientation, ORIENTATION_VERTICAL);
         mVertical = orientation == ORIENTATION_VERTICAL;
         mBottomOffset = (int) a.getDimension(R.styleable.CustomSlidingDrawer_bottomOffset, 0.0f);
@@ -966,11 +969,19 @@
         this.mTrackHandle = mTrackHandle;
     }
 
-    private class SlidingHandler extends Handler {
+    private static class SlidingHandler extends Handler {
+        
+        WeakReference<CustomSlidingDrawer> ref;
+        
+        public SlidingHandler(CustomSlidingDrawer r){
+            ref = new WeakReference<CustomSlidingDrawer>(r);
+        }
+
         public void handleMessage(Message m) {
             switch (m.what) {
             case MSG_ANIMATE:
-                doAnimation();
+                if(ref.get() != null)
+                    ref.get().doAnimation();
                 break;
             }
         }
diff --git a/src/com/savoirfairelinux/sflphone/views/TACGridView.java b/src/com/savoirfairelinux/sflphone/views/TACGridView.java
index 5298704..85a1e3a 100644
--- a/src/com/savoirfairelinux/sflphone/views/TACGridView.java
+++ b/src/com/savoirfairelinux/sflphone/views/TACGridView.java
@@ -2,7 +2,6 @@
 

 import android.content.Context;

 import android.util.AttributeSet;

-import android.view.View.MeasureSpec;

 import android.widget.GridView;