* #30525: removed hangup and transfer icon
* replaced with hangup fling
diff --git a/src/com/savoirfairelinux/sflphone/model/BubblesView.java b/src/com/savoirfairelinux/sflphone/model/BubblesView.java
index 845188e..9f61622 100644
--- a/src/com/savoirfairelinux/sflphone/model/BubblesView.java
+++ b/src/com/savoirfairelinux/sflphone/model/BubblesView.java
@@ -37,8 +37,11 @@
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
+import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Paint.Align;
+import android.graphics.RectF;
+import android.graphics.Shader.TileMode;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
@@ -52,6 +55,7 @@
import android.view.View.OnTouchListener;
import android.widget.Toast;
+import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.client.CallActivity;
import com.savoirfairelinux.sflphone.fragments.CallFragment;
@@ -253,11 +257,51 @@
* @param canvas
*/
private void doDraw(Canvas canvas) {
- canvas.drawColor(Color.WHITE);
synchronized (model) {
List<Bubble> bubbles = model.getBubbles();
List<Attractor> attractors = model.getAttractors();
+
+ Paint tryMe = new Paint();
+
+ canvas.drawColor(Color.WHITE);
+
+ if (dragging_bubble) {
+ // Draw red gradient around to hang up call
+ // canvas.drawColor(Color.RED);
+
+ LinearGradient grTop = new LinearGradient(0, 0, 0, 40, Color.RED, Color.WHITE, TileMode.CLAMP);
+ Paint p = new Paint();
+ p.setDither(true);
+ p.setShader(grTop);
+ canvas.drawRect(new RectF(0, 0, model.width, 40), p);
+
+ LinearGradient grBottom = new LinearGradient(0, model.height, 0, model.height - 40, Color.RED, Color.WHITE, TileMode.CLAMP);
+ p.setDither(true);
+ p.setShader(grBottom);
+ canvas.drawRect(new RectF(0, model.height - 40, model.width, model.height), p);
+
+ LinearGradient grLeft = new LinearGradient(0, 0, 40, 0, Color.RED, Color.WHITE, TileMode.CLAMP);
+ p.setDither(true);
+ p.setShader(grLeft);
+ canvas.drawRect(new RectF(0, 0, 40, model.height), p);
+
+ LinearGradient grRight = new LinearGradient(model.width, 0, model.width - 40, 0, Color.RED, Color.WHITE, TileMode.CLAMP);
+ p.setDither(true);
+ p.setShader(grRight);
+ canvas.drawRect(new RectF(model.width - 40, 0, model.width, model.height), p);
+
+ // tryMe.setColor(getResources().getColor(R.color.lighter_gray));
+ // tryMe.setStyle(Paint.Style.FILL);
+ // tryMe.setXfermode(new PorterDuffXfermode(Mode.SRC_OUT));
+ // canvas.drawArc(new RectF(15, 30, model.width - 15, model.height - 30), 0, 360, false, tryMe);
+ }
+
+ tryMe.setStyle(Paint.Style.STROKE);
+ tryMe.setColor(getResources().getColor(R.color.darker_gray));
+ tryMe.setXfermode(null);
+ canvas.drawCircle(model.width / 2, model.height / 2, model.width / 2 - getResources().getDimension(R.dimen.bubble_size), tryMe);
+
try {
for (int i = 0, n = attractors.size(); i < n; i++) {
@@ -267,20 +311,21 @@
for (int i = 0, n = bubbles.size(); i < n; i++) {
Bubble b = bubbles.get(i);
- if(b.expanded){
+ if (b.expanded) {
continue;
}
canvas.drawBitmap(b.getBitmap(), null, b.getBounds(), null);
- canvas.drawText(b.associated_call.getContact().getmDisplayName(), b.getPosX(),
- (float) (b.getPosY() - b.getRetractedRadius() * 1.2 * density), getNamePaint(b));
+ canvas.drawText(b.associated_call.getContact().getmDisplayName(), b.getPosX(), (float) (b.getPosY() - b.getRetractedRadius()
+ * 1.2 * density), getNamePaint(b));
}
+
Bubble first_plan = getExpandedBubble();
if (first_plan != null) {
canvas.drawBitmap(first_plan.getBitmap(), null, first_plan.getBounds(), null);
-
+
canvas.drawText(first_plan.associated_call.getContact().getmDisplayName(), first_plan.getPosX(),
(float) (first_plan.getPosY() - first_plan.getRetractedRadius() * 1.2 * density), getNamePaint(first_plan));
-
+
canvas.drawText("Transfer", first_plan.getPosX(), (float) (first_plan.getPosY() + first_plan.getRetractedRadius() * 1.5
* density), getNamePaint(first_plan));
@@ -330,6 +375,10 @@
if (b.dragged) {
b.dragged = false;
b.target_scale = 1.f;
+ if (b.isOnBorder(model.width, model.height)){
+ b.markedToDie = true;
+ ((CallActivity) callback.getActivity()).onCallEnded(b.associated_call);
+ }
}
}
dragging_bubble = false;