* #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;