From 922fd1d85920410a518ee288e26be4206e91feb8 Mon Sep 17 00:00:00 2001 From: Alireza Afkar Date: Fri, 9 Jul 2021 04:48:53 +0430 Subject: [PATCH 1/3] Fix crash when wheelItems list is empty --- .../main/java/com/bluehomestudio/luckywheel/WheelView.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/luckywheel/src/main/java/com/bluehomestudio/luckywheel/WheelView.java b/luckywheel/src/main/java/com/bluehomestudio/luckywheel/WheelView.java index e878ca3..c3835bc 100644 --- a/luckywheel/src/main/java/com/bluehomestudio/luckywheel/WheelView.java +++ b/luckywheel/src/main/java/com/bluehomestudio/luckywheel/WheelView.java @@ -237,7 +237,10 @@ protected void onDraw(Canvas canvas) { initComponents(); float tempAngle = 0; - float sweepAngle = 360 / mWheelItems.size(); + float sweepAngle = 360; + if (!mWheelItems.isEmpty()) { + sweepAngle = 360f / mWheelItems.size(); + } for (int i = 0; i < mWheelItems.size(); i++) { archPaint.setColor(mWheelItems.get(i).color); From 1e27aa1ae13d9d0bcc8d9c75c7316f89eb800f5f Mon Sep 17 00:00:00 2001 From: Alireza Afkar Date: Fri, 9 Jul 2021 04:49:29 +0430 Subject: [PATCH 2/3] Add textSize & typeface to WheelView --- .../luckywheeldemo/MainActivity.java | 27 +++++---- app/src/main/res/layout/activity_main.xml | 20 +++---- .../bluehomestudio/luckywheel/LuckyWheel.java | 13 ++++- .../OnLuckyWheelReachTheTarget.java | 2 +- .../bluehomestudio/luckywheel/WheelItem.java | 13 ++++- .../bluehomestudio/luckywheel/WheelView.java | 56 +++++++++++++------ luckywheel/src/main/res/values/attrs.xml | 4 +- 7 files changed, 87 insertions(+), 48 deletions(-) diff --git a/app/src/main/java/com/bluehomestudio/luckywheeldemo/MainActivity.java b/app/src/main/java/com/bluehomestudio/luckywheeldemo/MainActivity.java index a9f344c..817d98b 100644 --- a/app/src/main/java/com/bluehomestudio/luckywheeldemo/MainActivity.java +++ b/app/src/main/java/com/bluehomestudio/luckywheeldemo/MainActivity.java @@ -7,8 +7,6 @@ import android.widget.Button; import android.widget.Toast; -import androidx.appcompat.app.AppCompatActivity; - import com.bluehomestudio.luckywheel.LuckyWheel; import com.bluehomestudio.luckywheel.OnLuckyWheelReachTheTarget; import com.bluehomestudio.luckywheel.WheelItem; @@ -16,10 +14,12 @@ import java.util.ArrayList; import java.util.List; +import androidx.appcompat.app.AppCompatActivity; + public class MainActivity extends AppCompatActivity { private LuckyWheel lw; - List wheelItems ; + List wheelItems; @Override protected void onCreate(Bundle savedInstanceState) { @@ -35,8 +35,8 @@ protected void onCreate(Bundle savedInstanceState) { lw.setLuckyWheelReachTheTarget(new OnLuckyWheelReachTheTarget() { @Override - public void onReachTarget() { - Toast.makeText(MainActivity.this, "Target Reached", Toast.LENGTH_LONG).show(); + public void onReachTarget(WheelItem item) { + Toast.makeText(MainActivity.this, "Target Reached " + item.text, Toast.LENGTH_LONG).show(); } }); @@ -44,7 +44,7 @@ public void onReachTarget() { start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - lw.rotateWheelTo(1); + lw.rotateWheelTo(5); } }); @@ -52,17 +52,16 @@ public void onClick(View v) { private void generateWheelItems() { wheelItems = new ArrayList<>(); - wheelItems.add(new WheelItem(Color.parseColor("#fc6c6c"), BitmapFactory.decodeResource(getResources(), - R.drawable.chat) , "100 $")); - wheelItems.add(new WheelItem(Color.parseColor("#00E6FF"), BitmapFactory.decodeResource(getResources(), - R.drawable.coupon) , "0 $")); - wheelItems.add(new WheelItem(Color.parseColor("#F00E6F"), BitmapFactory.decodeResource(getResources(), + wheelItems.add(new WheelItem(1, Color.parseColor("#fc6c6c"), BitmapFactory.decodeResource(getResources(), + R.drawable.chat), "100 $")); + wheelItems.add(new WheelItem(2, Color.parseColor("#00E6FF"), "0 $")); + wheelItems.add(new WheelItem(3, Color.parseColor("#F00E6F"), BitmapFactory.decodeResource(getResources(), R.drawable.ice_cream), "30 $")); - wheelItems.add(new WheelItem(Color.parseColor("#00E6FF"), BitmapFactory.decodeResource(getResources(), + wheelItems.add(new WheelItem(4, Color.parseColor("#00E6FF"), BitmapFactory.decodeResource(getResources(), R.drawable.lemonade), "6000 $")); - wheelItems.add(new WheelItem(Color.parseColor("#fc6c6c"), BitmapFactory.decodeResource(getResources(), + wheelItems.add(new WheelItem(5, Color.parseColor("#fc6c6c"), BitmapFactory.decodeResource(getResources(), R.drawable.orange), "9 $")); - wheelItems.add(new WheelItem(Color.parseColor("#00E6FF"), BitmapFactory.decodeResource(getResources(), + wheelItems.add(new WheelItem(6, Color.parseColor("#00E6FF"), BitmapFactory.decodeResource(getResources(), R.drawable.shop), "20 $")); } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 1ccb442..1cae2b5 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,19 +1,11 @@ - -