package com.nightonke.boommenusample;
import android.graphics.Color;
import com.nightonke.boommenu.BoomButtons.HamButton;
import com.nightonke.boommenu.BoomButtons.SimpleCircleButton;
import com.nightonke.boommenu.BoomButtons.TextInsideCircleButton;
import com.nightonke.boommenu.BoomButtons.TextOutsideCircleButton;
import com.nightonke.boommenu.Util;
/**
* Created by Weiping Huang at 23:44 on 16/11/21
* For Personal Open Source
* Contact me at 2584541288@qq.com or nightonke@outlook.com
* For more projects: https://github.com/Nightonke
*/
public class BuilderManager {
private static int[] imageResources = new int[]{
R.drawable.bat,
R.drawable.bear,
R.drawable.bee,
R.drawable.butterfly,
R.drawable.cat,
R.drawable.deer,
R.drawable.dolphin,
R.drawable.eagle,
R.drawable.horse,
R.drawable.elephant,
R.drawable.owl,
R.drawable.peacock,
R.drawable.pig,
R.drawable.rat,
R.drawable.snake,
R.drawable.squirrel
};
private static int imageResourceIndex = 0;
static int getImageResource() {
if (imageResourceIndex >= imageResources.length) imageResourceIndex = 0;
return imageResources[imageResourceIndex++];
}
static SimpleCircleButton.Builder getSimpleCircleButtonBuilder() {
return new SimpleCircleButton.Builder()
.normalImageRes(getImageResource());
}
static SimpleCircleButton.Builder getSquareSimpleCircleButtonBuilder() {
return new SimpleCircleButton.Builder()
.isRound(false)
.shadowCornerRadius(Util.dp2px(20))
.buttonCornerRadius(Util.dp2px(20))
.normalImageRes(getImageResource());
}
static TextInsideCircleButton.Builder getTextInsideCircleButtonBuilder() {
return new TextInsideCircleButton.Builder()
.normalImageRes(getImageResource())
.normalTextRes(R.string.text_inside_circle_button_text_normal);
}
static TextInsideCircleButton.Builder getSquareTextInsideCircleButtonBuilder() {
return new TextInsideCircleButton.Builder()
.isRound(false)
.shadowCornerRadius(Util.dp2px(10))
.buttonCornerRadius(Util.dp2px(10))
.normalImageRes(getImageResource())
.normalTextRes(R.string.text_inside_circle_button_text_normal);
}
static TextInsideCircleButton.Builder getTextInsideCircleButtonBuilderWithDifferentPieceColor() {
return new TextInsideCircleButton.Builder()
.normalImageRes(getImageResource())
.normalTextRes(R.string.text_inside_circle_button_text_normal)
.pieceColor(Color.WHITE);
}
static TextOutsideCircleButton.Builder getTextOutsideCircleButtonBuilder() {
return new TextOutsideCircleButton.Builder()
.normalImageRes(getImageResource())
.normalTextRes(R.string.text_outside_circle_button_text_normal);
}
static TextOutsideCircleButton.Builder getSquareTextOutsideCircleButtonBuilder() {
return new TextOutsideCircleButton.Builder()
.isRound(false)
.shadowCornerRadius(Util.dp2px(15))
.buttonCornerRadius(Util.dp2px(15))
.normalImageRes(getImageResource())
.normalTextRes(R.string.text_outside_circle_button_text_normal);
}
static TextOutsideCircleButton.Builder getTextOutsideCircleButtonBuilderWithDifferentPieceColor() {
return new TextOutsideCircleButton.Builder()
.normalImageRes(getImageResource())
.normalTextRes(R.string.text_outside_circle_button_text_normal)
.pieceColor(Color.WHITE);
}
static HamButton.Builder getHamButtonBuilder() {
return new HamButton.Builder()
.normalImageRes(getImageResource())
.normalTextRes(R.string.text_ham_button_text_normal)
.subNormalTextRes(R.string.text_ham_button_sub_text_normal);
}
static HamButton.Builder getHamButtonBuilder(String text, String subText) {
return new HamButton.Builder()
.normalImageRes(getImageResource())
.normalText(text)
.subNormalText(subText);
}
static HamButton.Builder getPieceCornerRadiusHamButtonBuilder() {
return new HamButton.Builder()
.normalImageRes(getImageResource())
.normalTextRes(R.string.text_ham_button_text_normal)
.subNormalTextRes(R.string.text_ham_button_sub_text_normal);
}
static HamButton.Builder getHamButtonBuilderWithDifferentPieceColor() {
return new HamButton.Builder()
.normalImageRes(getImageResource())
.normalTextRes(R.string.text_ham_button_text_normal)
.subNormalTextRes(R.string.text_ham_button_sub_text_normal)
.pieceColor(Color.WHITE);
}
private static BuilderManager ourInstance = new BuilderManager();
public static BuilderManager getInstance() {
return ourInstance;
}
private BuilderManager() {
}
}