* #26029 Rounded shape around contact bubble - still a small glitch when bubble expand
diff --git a/src/com/savoirfairelinux/sflphone/model/Bubble.java b/src/com/savoirfairelinux/sflphone/model/Bubble.java
index 927f446..f416169 100644
--- a/src/com/savoirfairelinux/sflphone/model/Bubble.java
+++ b/src/com/savoirfairelinux/sflphone/model/Bubble.java
@@ -52,7 +52,7 @@
saved_photo = photo;
internalBMP = Bitmap.createScaledBitmap(photo, (int) size, (int) size, false);
-
+ internalBMP.setHasAlpha(true);
associated_call = call;
pos.set(x, y);
radius = internalBMP.getWidth() / 2;
@@ -168,6 +168,19 @@
canvas.drawBitmap(circle, 0, 0, circlePaint);
circle_drawer.drawOval(new RectF(0, 0, internalBMP.getWidth(), internalBMP.getHeight()), circlePaint);
+ int[] allpixels = new int[internalBMP.getHeight() * internalBMP.getWidth()];
+
+ internalBMP.getPixels(allpixels, 0, internalBMP.getWidth(), 0, 0, internalBMP.getWidth(), internalBMP.getHeight());
+
+ for (int i = 0; i < internalBMP.getHeight() * internalBMP.getWidth(); i++) {
+// Log.i("Bubble", "allpixels[i]:"+allpixels[i]);
+ if (allpixels[i] == Color.BLACK) {
+ Log.i("Bubble", "replacing color");
+ allpixels[i] = 0xAA000000;
+ }
+ }
+
+ internalBMP.setPixels(allpixels, 0, internalBMP.getWidth(), 0, 0, internalBMP.getWidth(), internalBMP.getHeight());
externalBMP = Bitmap.createBitmap((int) (getRadius() * 2), (int) (getRadius() * 2), Bitmap.Config.ARGB_8888);
Canvas canvasf = new Canvas(externalBMP);
@@ -210,7 +223,6 @@
canvas.drawBitmap(circle, 0, 0, circlePaint);
}
-
/**
* Compare bubbles based on call ID
@@ -234,26 +246,26 @@
public int getAction(float x, float y) {
float relativeX = x - pos.x + externalBMP.getWidth() / 2;
float relativeY = y - pos.y + externalBMP.getHeight() / 2;
-
- Log.i("Bubble","relativeX:"+relativeX);
- Log.i("Bubble","relativeY:"+relativeY);
-
- Log.i("Bubble","pos.x:"+pos.x);
- Log.i("Bubble","pos.y:"+pos.y);
-
- Log.i("Bubble","externalBMP.getWidth():"+externalBMP.getWidth());
- Log.i("Bubble","externalBMP.getHeight():"+externalBMP.getHeight());
+
+ Log.i("Bubble", "relativeX:" + relativeX);
+ Log.i("Bubble", "relativeY:" + relativeY);
+
+ Log.i("Bubble", "pos.x:" + pos.x);
+ Log.i("Bubble", "pos.y:" + pos.y);
+
+ Log.i("Bubble", "externalBMP.getWidth():" + externalBMP.getWidth());
+ Log.i("Bubble", "externalBMP.getHeight():" + externalBMP.getHeight());
// Hold - Left
if (relativeX < externalBMP.getWidth() / 3 && relativeY > externalBMP.getHeight() / 3) {
return 1;
}
-
+
// Record - Right
if (relativeX > externalBMP.getWidth() * 2 / 3 && relativeY > externalBMP.getHeight() / 3) {
return 2;
}
-
+
// Transfer - Bottom
if (relativeY > externalBMP.getHeight() * 2 / 3) {
return 3;
@@ -263,6 +275,7 @@
/**
* Always return the normal radius of the bubble
+ *
* @return
*/
public float getRetractedRadius() {
@@ -270,14 +283,14 @@
}
public int getHoldStatus() {
- if(associated_call.isOnHold())
+ if (associated_call.isOnHold())
return R.string.action_call_unhold;
else
return R.string.action_call_hold;
}
public int getRecordStatus() {
- if(associated_call.isRecording())
+ if (associated_call.isRecording())
return R.string.action_call_stop_record;
else
return R.string.action_call_record;