package com.moral.andbrickslib.views.bubbleseekbar; import android.support.annotation.ColorInt; import android.support.annotation.IntRange; /** * config BubbleSeekBar's attributes *

* Created by woxingxiao on 2017-03-14. */ public class BubbleConfigBuilder { float min; float max; float progress; boolean floatType; int trackSize; int secondTrackSize; int thumbRadius; int thumbRadiusOnDragging; int trackColor; int secondTrackColor; int thumbColor; int sectionCount; boolean showSectionMark; boolean autoAdjustSectionMark; boolean showSectionText; int sectionTextSize; int sectionTextColor; @BubbleSeekBar.TextPosition int sectionTextPosition; int sectionTextInterval; boolean showThumbText; int thumbTextSize; int thumbTextColor; boolean showProgressInFloat; boolean touchToSeek; boolean seekBySection; int bubbleColor; int bubbleTextSize; int bubbleTextColor; boolean alwaysShowBubble; private BubbleSeekBar mBubbleSeekBar; BubbleConfigBuilder(BubbleSeekBar bubbleSeekBar) { mBubbleSeekBar = bubbleSeekBar; } public void build() { mBubbleSeekBar.config(this); } public BubbleConfigBuilder min(float min) { this.min = min; this.progress = min; return this; } public BubbleConfigBuilder max(float max) { this.max = max; return this; } public BubbleConfigBuilder progress(float progress) { this.progress = progress; return this; } public BubbleConfigBuilder floatType() { this.floatType = true; return this; } public BubbleConfigBuilder trackSize(int dp) { this.trackSize =BubbleUtils.dp2px(dp); return this; } public BubbleConfigBuilder secondTrackSize(int dp) { this.secondTrackSize = BubbleUtils.dp2px(dp); return this; } public BubbleConfigBuilder thumbRadius(int dp) { this.thumbRadius = BubbleUtils.dp2px(dp); return this; } public BubbleConfigBuilder thumbRadiusOnDragging(int dp) { this.thumbRadiusOnDragging = BubbleUtils.dp2px(dp); return this; } public BubbleConfigBuilder trackColor(@ColorInt int color) { this.trackColor = color; this.sectionTextColor = color; return this; } public BubbleConfigBuilder secondTrackColor(@ColorInt int color) { this.secondTrackColor = color; this.thumbColor = color; this.thumbTextColor = color; this.bubbleColor = color; return this; } public BubbleConfigBuilder thumbColor(@ColorInt int color) { this.thumbColor = color; return this; } public BubbleConfigBuilder sectionCount(@IntRange(from = 1) int count) { this.sectionCount = count; return this; } public BubbleConfigBuilder showSectionMark() { this.showSectionMark = true; return this; } public BubbleConfigBuilder autoAdjustSectionMark() { this.autoAdjustSectionMark = true; return this; } public BubbleConfigBuilder showSectionText() { this.showSectionText = true; return this; } public BubbleConfigBuilder sectionTextSize(int sp) { this.sectionTextSize = BubbleUtils.sp2px(sp); return this; } public BubbleConfigBuilder sectionTextColor(@ColorInt int color) { this.sectionTextColor = color; return this; } public BubbleConfigBuilder sectionTextPosition(@BubbleSeekBar.TextPosition int position) { this.sectionTextPosition = position; return this; } public BubbleConfigBuilder sectionTextInterval(@IntRange(from = 1) int interval) { this.sectionTextInterval = interval; return this; } public BubbleConfigBuilder showThumbText() { this.showThumbText = true; return this; } public BubbleConfigBuilder thumbTextSize(int sp) { this.thumbTextSize = BubbleUtils.sp2px(sp); return this; } public BubbleConfigBuilder thumbTextColor(@ColorInt int color) { thumbTextColor = color; return this; } public BubbleConfigBuilder showProgressInFloat() { this.showProgressInFloat = true; return this; } public BubbleConfigBuilder touchToSeek() { this.touchToSeek = true; return this; } public BubbleConfigBuilder seekBySection() { this.seekBySection = true; return this; } public BubbleConfigBuilder bubbleColor(@ColorInt int color) { this.bubbleColor = color; return this; } public BubbleConfigBuilder bubbleTextSize(int sp) { this.bubbleTextSize = BubbleUtils.sp2px(sp); return this; } public BubbleConfigBuilder bubbleTextColor(@ColorInt int color) { this.bubbleTextColor = color; return this; } public BubbleConfigBuilder alwaysShowBubble() { this.alwaysShowBubble = true; return this; } public float getMin() { return min; } public float getMax() { return max; } public float getProgress() { return progress; } public boolean isFloatType() { return floatType; } public int getTrackSize() { return trackSize; } public int getSecondTrackSize() { return secondTrackSize; } public int getThumbRadius() { return thumbRadius; } public int getThumbRadiusOnDragging() { return thumbRadiusOnDragging; } public int getTrackColor() { return trackColor; } public int getSecondTrackColor() { return secondTrackColor; } public int getThumbColor() { return thumbColor; } public int getSectionCount() { return sectionCount; } public boolean isShowSectionMark() { return showSectionMark; } public boolean isAutoAdjustSectionMark() { return autoAdjustSectionMark; } public boolean isShowSectionText() { return showSectionText; } public int getSectionTextSize() { return sectionTextSize; } public int getSectionTextColor() { return sectionTextColor; } public int getSectionTextPosition() { return sectionTextPosition; } public int getSectionTextInterval() { return sectionTextInterval; } public boolean isShowThumbText() { return showThumbText; } public int getThumbTextSize() { return thumbTextSize; } public int getThumbTextColor() { return thumbTextColor; } public boolean isShowProgressInFloat() { return showProgressInFloat; } public boolean isTouchToSeek() { return touchToSeek; } public boolean isSeekBySection() { return seekBySection; } public int getBubbleColor() { return bubbleColor; } public int getBubbleTextSize() { return bubbleTextSize; } public int getBubbleTextColor() { return bubbleTextColor; } public boolean isAlwaysShowBubble() { return alwaysShowBubble; } }