fixed majority of java-related warnings
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;
             }
         }