* #24007 Fixed build process
diff --git a/src/com/savoirfairelinux/sflphone/client/BubblesViewActivity.java b/src/com/savoirfairelinux/sflphone/client/BubblesViewActivity.java
index bcd358f..c1d9e13 100644
--- a/src/com/savoirfairelinux/sflphone/client/BubblesViewActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/BubblesViewActivity.java
@@ -25,15 +25,12 @@
BubbleModel model;
- int num_bubble;
-
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bubbleview_layout);
- num_bubble = 0;
model = new BubbleModel();
DisplayMetrics metrics = getResources().getDisplayMetrics();
screenCenter = new PointF(metrics.widthPixels / 2, metrics.heightPixels / 3);
@@ -41,17 +38,23 @@
// model.listBubbles.add(new Bubble(this, metrics.widthPixels / 2, metrics.heightPixels / 4, 150, R.drawable.me));
// model.listBubbles.add(new Bubble(this, metrics.widthPixels / 2, metrics.heightPixels / 4 * 3, 150, R.drawable.callee));
- Button b = (Button) findViewById(R.id.add_bubble);
view = (BubblesView) findViewById(R.id.main_view);
view.setModel(model);
- b.setOnClickListener(new OnClickListener() {
+ ((Button) findViewById(R.id.add_bubble)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
addBubble();
}
});
+ ((Button) findViewById(R.id.remove_bubble)).setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ removeBubble();
+ }
+ });
+
}
public void addBubble() {
@@ -61,18 +64,50 @@
DisplayMetrics metrics = getResources().getDisplayMetrics();
Bubble b = new Bubble(this, metrics.widthPixels / 3, metrics.heightPixels / 4 * 3, 150, -1);
model.listBubbles.add(b);
- num_bubble++;
- angle_part = 360 / num_bubble;
-
+
+ angle_part = 360 / model.listBubbles.size();
+
double dX = 0;
double dY = 0;
- for(int i = 0; i < model.listBubbles.size() ; ++i){
+ for (int i = 0; i < model.listBubbles.size(); ++i) {
dX = Math.cos(Math.toRadians(angle_part * i)) * radiusCalls;
dY = Math.sin(Math.toRadians(angle_part * i)) * radiusCalls;
- Log.i(TAG,"dX "+dX+ " dY "+dY);
- model.listBubbles.get(i).setAttractor(new PointF((int)dX + screenCenter.x, (int)dY + screenCenter.y));
+ Log.i(TAG, "dX " + dX + " dY " + dY);
+ model.listBubbles.get(i).setAttractor(new PointF((int) dX + screenCenter.x, (int) dY + screenCenter.y));
}
-
+
+ // listBubbles.get(listBubbles.size() - 1).setRegion(width, height);
+ }
+
+ public void removeBubble() {
+
+ if (model.listBubbles.isEmpty()) {
+ return;
+ }
+ /*
+ * Bubble.Builder builder = new Bubble.Builder(getContext()); builder.setRadiusPixels(200).setX(200).setY(300);
+ */
+ // DisplayMetrics metrics = getResources().getDisplayMetrics();
+ // Bubble b = new Bubble(this, metrics.widthPixels / 3, metrics.heightPixels / 4 * 3, 150, -1);
+ synchronized (model) {
+ model.listBubbles.remove(model.listBubbles.size() - 1);
+ }
+
+ if (model.listBubbles.isEmpty()) {
+ return;
+ }
+
+ angle_part = 360 / model.listBubbles.size();
+
+ Log.i(TAG, "Angle:" + angle_part);
+ double dX = 0;
+ double dY = 0;
+ for (int i = 0; i < model.listBubbles.size(); ++i) {
+ dX = Math.cos(Math.toRadians(angle_part * i)) * radiusCalls;
+ dY = Math.sin(Math.toRadians(angle_part * i)) * radiusCalls;
+ Log.i(TAG, "dX " + dX + " dY " + dY);
+ model.listBubbles.get(i).setAttractor(new PointF((int) dX + screenCenter.x, (int) dY + screenCenter.y));
+ }
// listBubbles.get(listBubbles.size() - 1).setRegion(width, height);
}
diff --git a/src/com/savoirfairelinux/sflphone/model/BubblesView.java b/src/com/savoirfairelinux/sflphone/model/BubblesView.java
index 3ce9439..87d44fe 100644
--- a/src/com/savoirfairelinux/sflphone/model/BubblesView.java
+++ b/src/com/savoirfairelinux/sflphone/model/BubblesView.java
@@ -202,9 +202,11 @@
{
canvas.drawColor(Color.WHITE);
- for(int i=0, n=model.listBubbles.size(); i<n; i++) {
- Bubble b = model.listBubbles.get(i);
- canvas.drawBitmap(b.getBitmap(), null, b.getBounds(), null);
+ for(int i=0 ; i<model.listBubbles.size(); i++) {
+ synchronized (model) {
+ Bubble b = model.listBubbles.get(i);
+ canvas.drawBitmap(b.getBitmap(), null, b.getBounds(), null);
+ }
}
}
}