* #33928: record working
diff --git a/src/org/sflphone/model/BubbleUser.java b/src/org/sflphone/model/BubbleUser.java
index ff968c1..77616a7 100644
--- a/src/org/sflphone/model/BubbleUser.java
+++ b/src/org/sflphone/model/BubbleUser.java
@@ -5,19 +5,18 @@
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.Bitmap.Config;
-import android.graphics.Paint.Style;
 import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
 import android.graphics.Paint;
+import android.graphics.Paint.Style;
 import android.graphics.RectF;
 import android.util.Log;
 import android.view.MotionEvent;
-import android.widget.Toast;
 
 public class BubbleUser extends Bubble {
 
     public Conference associated_call;
-    Bitmap buttonMic, buttonMicMuted, buttonHold, buttonUnhold, buttonRecord, buttonHangUp;
+
     float expanded_radius;
 
     public BubbleUser(Context context, CallContact m, Conference conf, float x, float y, float size) {
@@ -27,13 +26,6 @@
 
         expanded_radius = (float) (size * 1.5);
 
-        buttonMic = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_mic);
-        buttonMicMuted = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_mic_muted);
-        buttonHold = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_pause_over_video);
-        buttonUnhold = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_play_over_video);
-        // buttonRecord = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_);
-        buttonHangUp = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_end_call);
-
         setDrawer(new ActionDrawer(0, 0));
     }
 
@@ -97,10 +89,13 @@
 
     protected class ActionDrawer extends Bubble.ActionDrawer {
 
-        RectF boundsHoldButton, boundsMicButton, boundsRecordButton, boundsHangUpButton;
+        RectF boundsHoldButton, boundsMicButton, boundsRecButton, boundsHangUpButton;
+
+        Bitmap buttonMic, buttonMicMuted, buttonHold, buttonUnhold, buttonRec, buttonHangUp;
         int wHang, hHang;
         int wHold, hHold;
         int wMic, hMic;
+        int wRec, hRec;
         Paint mBackgroundPaint;
         Paint mSelector;
         Paint mButtonPaint;
@@ -117,6 +112,13 @@
 
             mButtonPaint = new Paint();
 
+            buttonMic = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_mic);
+            buttonMicMuted = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_mic_muted);
+            buttonHold = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_pause_over_video);
+            buttonUnhold = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_play_over_video);
+            buttonRec = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.recordpressed);
+            buttonHangUp = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_action_end_call);
+
             wHang = buttonHangUp.getWidth();
             hHang = buttonHangUp.getHeight();
 
@@ -125,6 +127,9 @@
 
             wMic = buttonMic.getWidth();
             hMic = buttonMic.getHeight();
+
+            wRec = buttonRec.getWidth();
+            hRec = buttonRec.getHeight();
         }
 
         @Override
@@ -136,26 +141,8 @@
             drawHangUp(c, action == actions.HANGUP);
             drawHold(c, action == actions.HOLD);
             drawMute(c, action == actions.MUTE);
+            drawRec(c, action == actions.RECORD);
 
-            // boundsRecordButton = new RectF(mWidth / 2 - getRadius(), mHeight / 2 + getRadius(), mWidth / 2 + getRadius(), mHeight);
-            // c.drawBitmap(buttonRecord, null, boundsRecordButton, test4);
-
-            // float startAngle = ;
-            // float sweepAngle = 60;
-            //
-            // float startX = mHeight / 2;
-            // float startY = mWidth / 2;
-            //
-            // float angle = (float) ((startAngle + sweepAngle / 2) * Math.PI / 180);
-            // float stopX = (float) (startX + getRadius() * Math.cos(angle));
-            // float stopY = (float) (startY + getRadius() * Math.sin(angle));
-            //
-            // Toast.makeText(mContext, "startX:" + startX + " startY:" + startY, Toast.LENGTH_SHORT).show();
-            // Toast.makeText(mContext, "stopX:" + stopX + " stopY:" + stopY, Toast.LENGTH_SHORT).show();
-            //
-            // Paint mPaint = new Paint();
-            // mPaint.setColor(Color.RED);
-            // c.drawLine(startX, startY, stopX, stopY, mPaint);
         }
 
         private void drawHangUp(Canvas c, boolean selected) {
@@ -197,6 +184,17 @@
             c.drawBitmap(buttonMic, null, boundsMuteIcon, mButtonPaint);
         }
 
+        private void drawRec(Canvas c, boolean selected) {
+            boundsRecButton = new RectF(mWidth / 2 - getRadius(), mHeight / 2 + getRadius(), mWidth / 2 + getRadius(), mHeight);
+            RectF boundsRecIcon = new RectF((int) boundsRecButton.centerX() - wRec / 2, (int) boundsRecButton.centerY() - hRec / 2,
+                    (int) boundsRecButton.centerX() + wRec / 2, (int) boundsRecButton.centerY() + hMic / 2);
+            if (selected || associated_call.isRecording()) {
+                c.drawCircle(boundsRecButton.centerX(), boundsRecButton.centerY(), boundsRecButton.width() / 2, mSelector);
+            }
+
+            c.drawBitmap(buttonRec, null, boundsRecIcon, mButtonPaint);
+        }
+
         @Override
         public int getAction(float x, float y) {
 
@@ -212,10 +210,10 @@
                 return actions.HOLD;
             }
 
-            // if (boundsRecordButton.contains(x, y)) {
-            // Log.i("Bubble", "Record");
-            // return actions.RECORD;
-            // }
+            if (boundsRecButton.contains(relativeX, relativeY)) {
+                Log.i("Bubble", "Record");
+                return actions.RECORD;
+            }
 
             if (boundsMicButton.contains(relativeX, relativeY)) {
                 Log.i("Bubble", "Muting");
diff --git a/src/org/sflphone/model/BubblesView.java b/src/org/sflphone/model/BubblesView.java
index fe27b52..e3665e5 100644
--- a/src/org/sflphone/model/BubblesView.java
+++ b/src/org/sflphone/model/BubblesView.java
@@ -343,6 +343,8 @@
 

             Bubble expand = getExpandedBubble();

             if (expand != null) {

+                

+                Toast.makeText(getContext(), "Action:"+expand.getDrawer().getAction(event.getX(), event.getY()), Toast.LENGTH_SHORT).show();

 

                 switch (expand.getDrawer().getAction(event.getX(), event.getY())) {

                 case Bubble.actions.OUT_OF_BOUNDS:

@@ -545,7 +547,7 @@
             if (isDraggingBubble() && callback.getConference().isOnGoing()) {

                 Bubble b = getDraggedBubble(e);

                 b.expand(model.width, model.height);

-

+                dragging_bubble = false;

             }

             return false;