From 51191a5ceef97f42d4545ad59af82f713121fbf4 Mon Sep 17 00:00:00 2001 From: Jhon Magdalena Date: Fri, 10 Nov 2017 01:51:13 +0100 Subject: [PATCH 1/5] - (Added) Show long months - (Fixed) Leap years have 29 days in February - (Added) Use custom font - (Added) maxDate - (Fixed) Prevent an IndexOutOfBoundsException at onDateSelected - (Fixed) Properly access months and days array while setting initial positions - (Fixed) decreasing dayPos while changing to a shorter month - (Fixed) calculate maxTextHeight with a "j" to support lowerCase month names --- .../wheelview/view/DatePickerWheelView.java | 83 ++++++++++++++++++- .../wheelview/view/WheelView.java | 38 ++++++++- .../src/main/res/values/attrs.xml | 3 + 3 files changed, 116 insertions(+), 8 deletions(-) diff --git a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java index ca29953..fa6ede7 100644 --- a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java +++ b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java @@ -4,6 +4,7 @@ import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; +import android.graphics.Color; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.AttributeSet; @@ -26,6 +27,7 @@ public final class DatePickerWheelView extends LinearLayout { private static final String TAG = DatePickerWheelView.class.getSimpleName(); + private static final String LONG_MONTH_FORMAT = "MMMM"; private static final String SHORT_MONTH_FORMAT = "MMM"; private static final String YEAR_FORMAT = "yyyy"; private static final String MONTH_FORMAT = "MM"; @@ -49,6 +51,7 @@ public final class DatePickerWheelView extends LinearLayout { private boolean showDayMonthYear; private boolean showShortMonths; + private boolean showLongMonths; @NonNull private final List years = new ArrayList<>(); @@ -72,6 +75,10 @@ public final class DatePickerWheelView extends LinearLayout { private Locale locale = Locale.getDefault(); private View rootView; + private String mFont; + private long maxDate; + private int validContentTextColor = Integer.MAX_VALUE; + private boolean canLoop; public DatePickerWheelView(Context context) { this(context, null, 0); @@ -105,6 +112,7 @@ private void takeStyles(@NonNull AttributeSet attrs) { showDayMonthYear = array.getBoolean(R.styleable.DatePickerWheelView_datePickerWheelViewShowDayMonthYear, false); showShortMonths = array.getBoolean(R.styleable.DatePickerWheelView_datePickerWheelViewShowShortMonths, false); + showLongMonths = array.getBoolean(R.styleable.DatePickerWheelView_datePickerWheelViewShowLongMonths, false); textSize = array.getDimension(R.styleable.DatePickerWheelView_datePickerWheelViewTextSize, 16F); @@ -112,6 +120,8 @@ private void takeStyles(@NonNull AttributeSet attrs) { maxYear = array.getInt(R.styleable.DatePickerWheelView_datePickerWheelViewMaxYear, 2100); initialDate = array.getString(R.styleable.DatePickerWheelView_datePickerWheelViewInitialDate); + mFont = array.getString(R.styleable.DatePickerWheelView_datePickerWheelViewFont); + canLoop = array.getBoolean(R.styleable.DatePickerWheelView_datePickerWheelViewIsLoopEnabled, false); } } finally { if (null != array) { @@ -144,6 +154,10 @@ private void drawDatePickerWheelView() { monthSpinner.setTextSize(textSize); daySpinner.setTextSize(textSize); + yearSpinner.setIsLoopEnabled(canLoop); + monthSpinner.setIsLoopEnabled(canLoop); + daySpinner.setIsLoopEnabled(canLoop); + yearSpinner.addOnLoopScrollListener(this::updateYearPosition); yearSpinner.addOnLoopScrollListener(this::onDateSelected); @@ -158,10 +172,13 @@ private void drawDatePickerWheelView() { drawDayPickerView(); setInitialPositions(); + setFont(mFont); } private void updateYearPosition(@NonNull Object item, int position) { this.yearPos = position; + // Leap years have 29 days in February + drawDayPickerView(); invalidate(); } @@ -182,12 +199,29 @@ private void onDateSelected(@NonNull Object item, int position) { calendar.set(Calendar.YEAR, Integer.valueOf(years.get(yearPos))); calendar.set(Calendar.MONTH, monthPos); - calendar.set(Calendar.DAY_OF_MONTH, Integer.valueOf(days.get(dayPos))); + // Prevent an IndexOutOfBoundsException + calendar.set(Calendar.DAY_OF_MONTH, Integer.valueOf(days.get(Math.min(days.size() - 1, dayPos)))); final int year = calendar.get(Calendar.YEAR); final int month = calendar.get(Calendar.MONTH); final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); + if (calendar.getTimeInMillis() <= maxDate) { + if (validContentTextColor != Integer.MAX_VALUE) { + // TODO: Change color (valid date) +// yearSpinner.setContentTextColor(validContentTextColor); +// monthSpinner.setContentTextColor(validContentTextColor); +// daySpinner.setContentTextColor(validContentTextColor); + } + } else { + int contentTextColor = daySpinner.getContentTextColor(); + if (contentTextColor != Color.RED) + validContentTextColor = contentTextColor; + // TODO: Change color (invalid date) +// yearSpinner.setContentTextColor(Color.RED); +// monthSpinner.setContentTextColor(Color.RED); +// daySpinner.setContentTextColor(Color.RED); + } onDateSelectedListener.onDateSelected(year, month, dayOfMonth); } } @@ -196,8 +230,14 @@ private void setInitialPositions() { final Calendar calendar = DateUtils.parseDateString(initialDate); yearPos = years.indexOf(String.valueOf(calendar.get(Calendar.YEAR))); - monthPos = months.indexOf(String.valueOf(calendar.get(Calendar.MONTH) + 1)); - dayPos = days.indexOf(String.valueOf(calendar.get(Calendar.DAY_OF_MONTH))); + String dateFormat = showShortMonths ? SHORT_MONTH_FORMAT : MONTH_FORMAT; + dateFormat = showLongMonths ? LONG_MONTH_FORMAT : dateFormat; + String formattedMonth = formatDate(calendar, locale, dateFormat); + formattedMonth = showShortMonths ? formattedMonth.toUpperCase(locale) : formattedMonth; + // Fixed: months array was accessed without custom format + monthPos = months.indexOf(formattedMonth); + // Fixed: days was accessed without "dd" + dayPos = days.indexOf(formatDate(calendar, locale, DAY_FORMAT)); yearSpinner.setInitialPosition(yearPos); monthSpinner.setInitialPosition(monthPos); @@ -223,7 +263,9 @@ private void drawMonthPickerView() { deleteAll(months); calendar = Calendar.getInstance(locale); - final String dateFormat = showShortMonths ? SHORT_MONTH_FORMAT : MONTH_FORMAT; + String dateFormat = showShortMonths ? SHORT_MONTH_FORMAT : MONTH_FORMAT; + // Support long months + dateFormat = showLongMonths ? LONG_MONTH_FORMAT : dateFormat; for (int j = 0; j <= calendar.getActualMaximum(Calendar.MONTH); j++) { calendar.set(Calendar.YEAR, Integer.valueOf(years.get(yearPos))); @@ -246,6 +288,20 @@ private void drawDayPickerView() { calendar = Calendar.getInstance(locale); + // Fixed: dayPos while changing to a shorter month + Calendar cl = Calendar.getInstance(locale); + cl.set(Calendar.YEAR, year); + cl.set(Calendar.DAY_OF_MONTH, 1); + cl.set(Calendar.MONTH, monthPos); + int actualMaximum = cl.getActualMaximum(Calendar.DAY_OF_MONTH); + + if (dayPos > actualMaximum - 1) { + int delta = dayPos - actualMaximum + 1; + dayPos = delta - 1; + daySpinner.forceScroll(delta); + } + /// + for (int i = 0; i < calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) { calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, monthPos); @@ -266,6 +322,10 @@ private void deleteAll(@NonNull List list) { } } + public void setMaxDate(long maxDate) { + this.maxDate = maxDate; + } + public interface OnDateSelectedListener { void onDateSelected(int year, int month, int dayOfMonth); @@ -289,6 +349,7 @@ public DatePickerWheelView setMaxYear(int maxYear) { } this.maxYear = maxYear; + drawYearPickerView(); invalidate(); return this; } @@ -312,6 +373,13 @@ public DatePickerWheelView setShowShortMonths(boolean showShortMonths) { return this; } + public DatePickerWheelView setShowLongMonths(boolean showLongMonths) { + this.showLongMonths = showLongMonths; + drawMonthPickerView(); + invalidate(); + return this; + } + public DatePickerWheelView setTextSize(float textSize) { this.textSize = textSize; invalidate(); @@ -342,4 +410,11 @@ public DatePickerWheelView setInitialDate(String initialDate) { invalidate(); return this; } + + public DatePickerWheelView setFont(String font) { + yearSpinner.setFont(font); + monthSpinner.setFont(font); + daySpinner.setFont(font); + return this; + } } diff --git a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/WheelView.java b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/WheelView.java index 5aa9368..5ffec2b 100644 --- a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/WheelView.java +++ b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/WheelView.java @@ -83,6 +83,8 @@ public final class WheelView extends View { private int circularRadius; private int widgetWidth; + private String font; + public Handler handler = new Handler(msg -> { switch (msg.what) { case MSG_INVALIDATE: @@ -162,20 +164,26 @@ private void initData() { throw new IllegalArgumentException("items list must not be null!"); } + Typeface typeface; + if (font != null) + typeface = Typeface.createFromAsset(getContext().getAssets(), font); + else + typeface = Typeface.MONOSPACE; + topBottomTextPaint.setColor(overflowTextColor); topBottomTextPaint.setAntiAlias(true); - topBottomTextPaint.setTypeface(Typeface.MONOSPACE); + topBottomTextPaint.setTypeface(typeface); topBottomTextPaint.setTextSize(textSize); centerTextPaint.setColor(contentTextColor); centerTextPaint.setAntiAlias(true); centerTextPaint.setTextScaleX(1.05F); - centerTextPaint.setTypeface(Typeface.MONOSPACE); + centerTextPaint.setTypeface(typeface); centerTextPaint.setTextSize(textSize); centerLinePaint.setColor(lineColor); centerLinePaint.setAntiAlias(true); - centerLinePaint.setTypeface(Typeface.MONOSPACE); + centerLinePaint.setTypeface(typeface); centerLinePaint.setTextSize(textSize); measureTextWidthHeight(); @@ -203,7 +211,8 @@ private void measureTextWidthHeight() { final Rect rect = new Rect(); for (int i = 0; i < items.size(); i++) { - final String s1 = (String) items.get(i); + // support lowerCase month names + final String s1 = (String) items.get(i) + "j"; centerTextPaint.getTextBounds(s1, 0, s1.length(), rect); @@ -429,6 +438,14 @@ private void startSmoothScrollTo(float velocityY) { scheduledFuture = executorService.scheduleWithFixedDelay(new FlingRunnable(velocityY), 0, velocityFling, TimeUnit.MILLISECONDS); } + /** + * This fixes the item amount difference + * @param delta Number of items + */ + public void forceScroll(int delta) { + totalScrollY += delta * itemHeight; + } + class WheelViewGestureListener extends SimpleOnGestureListener { @Override @@ -562,6 +579,19 @@ public void run() { } } + public String getFont() { + return font; + } + + public void setFont(String font) { + this.font = font; + initData(); + } + + public int getContentTextColor() { + return contentTextColor; + } + public interface OnLoopScrollListener { void onLoopScrollFinish(@NonNull Object item, int position); diff --git a/materialwheelview/src/main/res/values/attrs.xml b/materialwheelview/src/main/res/values/attrs.xml index c26ff9f..7e5d1b6 100644 --- a/materialwheelview/src/main/res/values/attrs.xml +++ b/materialwheelview/src/main/res/values/attrs.xml @@ -18,6 +18,9 @@ + + + \ No newline at end of file From 9a704852f57849c9fbe1a3112ba9d9af8501ce28 Mon Sep 17 00:00:00 2001 From: Jhon Magdalena Date: Fri, 10 Nov 2017 19:15:55 +0100 Subject: [PATCH 2/5] Code cleanup --- .../wheelview/view/DatePickerWheelView.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java index fa6ede7..e592b28 100644 --- a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java +++ b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java @@ -206,22 +206,24 @@ private void onDateSelected(@NonNull Object item, int position) { final int month = calendar.get(Calendar.MONTH); final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); - if (calendar.getTimeInMillis() <= maxDate) { - if (validContentTextColor != Integer.MAX_VALUE) { - // TODO: Change color (valid date) -// yearSpinner.setContentTextColor(validContentTextColor); -// monthSpinner.setContentTextColor(validContentTextColor); -// daySpinner.setContentTextColor(validContentTextColor); - } - } else { + if (calendar.getTimeInMillis() > maxDate) { int contentTextColor = daySpinner.getContentTextColor(); - if (contentTextColor != Color.RED) + if (contentTextColor != Color.RED) { validContentTextColor = contentTextColor; + } // TODO: Change color (invalid date) // yearSpinner.setContentTextColor(Color.RED); // monthSpinner.setContentTextColor(Color.RED); // daySpinner.setContentTextColor(Color.RED); } +// else { + // TODO: Change color (valid date) +// if (validContentTextColor != Integer.MAX_VALUE) { +// yearSpinner.setContentTextColor(validContentTextColor); +// monthSpinner.setContentTextColor(validContentTextColor); +// daySpinner.setContentTextColor(validContentTextColor); +// } +// } onDateSelectedListener.onDateSelected(year, month, dayOfMonth); } } From b474acfc4a956ac4615aef154a1ed076f87ac8fc Mon Sep 17 00:00:00 2001 From: Jhon Magdalena Date: Fri, 10 Nov 2017 19:22:03 +0100 Subject: [PATCH 3/5] Code cleanup: not using validContentTextColor --- .../wheelview/view/DatePickerWheelView.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java index e592b28..370b23d 100644 --- a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java +++ b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java @@ -77,7 +77,7 @@ public final class DatePickerWheelView extends LinearLayout { private View rootView; private String mFont; private long maxDate; - private int validContentTextColor = Integer.MAX_VALUE; + // private int validContentTextColor = Integer.MAX_VALUE; private boolean canLoop; public DatePickerWheelView(Context context) { @@ -206,16 +206,16 @@ private void onDateSelected(@NonNull Object item, int position) { final int month = calendar.get(Calendar.MONTH); final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); - if (calendar.getTimeInMillis() > maxDate) { - int contentTextColor = daySpinner.getContentTextColor(); - if (contentTextColor != Color.RED) { - validContentTextColor = contentTextColor; - } - // TODO: Change color (invalid date) +// if (calendar.getTimeInMillis() > maxDate) { +// int contentTextColor = daySpinner.getContentTextColor(); +// if (contentTextColor != Color.RED) { +// validContentTextColor = contentTextColor; +// } + // TODO: Change color (invalid date) // yearSpinner.setContentTextColor(Color.RED); // monthSpinner.setContentTextColor(Color.RED); // daySpinner.setContentTextColor(Color.RED); - } +// } // else { // TODO: Change color (valid date) // if (validContentTextColor != Integer.MAX_VALUE) { From 0c681c2900a4d1e1df7c821cff6dd0ce815a7e55 Mon Sep 17 00:00:00 2001 From: Jhon Magdalena Date: Fri, 10 Nov 2017 19:31:20 +0100 Subject: [PATCH 4/5] Code cleanup: unused imports and maxDate --- .../wheelview/view/DatePickerWheelView.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java index 370b23d..21e8cc9 100644 --- a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java +++ b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java @@ -4,7 +4,6 @@ import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; -import android.graphics.Color; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.AttributeSet; @@ -76,7 +75,7 @@ public final class DatePickerWheelView extends LinearLayout { private View rootView; private String mFont; - private long maxDate; + // private long maxDate; // private int validContentTextColor = Integer.MAX_VALUE; private boolean canLoop; @@ -324,9 +323,9 @@ private void deleteAll(@NonNull List list) { } } - public void setMaxDate(long maxDate) { - this.maxDate = maxDate; - } +// public void setMaxDate(long maxDate) { +// this.maxDate = maxDate; +// } public interface OnDateSelectedListener { From 1f4716dc7b5a8433700b2eb5997efef002309dc3 Mon Sep 17 00:00:00 2001 From: Jhon Magdalena Date: Mon, 20 Nov 2017 10:53:43 +0100 Subject: [PATCH 5/5] Code cleanup for typeFace --- .../wheelview/view/DatePickerWheelView.java | 38 ++++--------------- .../wheelview/view/WheelView.java | 24 ++++++------ .../src/main/res/values/attrs.xml | 2 +- 3 files changed, 21 insertions(+), 43 deletions(-) diff --git a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java index 21e8cc9..221b54a 100644 --- a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java +++ b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/DatePickerWheelView.java @@ -74,9 +74,7 @@ public final class DatePickerWheelView extends LinearLayout { private Locale locale = Locale.getDefault(); private View rootView; - private String mFont; - // private long maxDate; - // private int validContentTextColor = Integer.MAX_VALUE; + private String fontTypeface; private boolean canLoop; public DatePickerWheelView(Context context) { @@ -119,7 +117,7 @@ private void takeStyles(@NonNull AttributeSet attrs) { maxYear = array.getInt(R.styleable.DatePickerWheelView_datePickerWheelViewMaxYear, 2100); initialDate = array.getString(R.styleable.DatePickerWheelView_datePickerWheelViewInitialDate); - mFont = array.getString(R.styleable.DatePickerWheelView_datePickerWheelViewFont); + fontTypeface = array.getString(R.styleable.DatePickerWheelView_datePickerWheelViewFontTypeface); canLoop = array.getBoolean(R.styleable.DatePickerWheelView_datePickerWheelViewIsLoopEnabled, false); } } finally { @@ -171,7 +169,7 @@ private void drawDatePickerWheelView() { drawDayPickerView(); setInitialPositions(); - setFont(mFont); + setFontTypeface(fontTypeface); } private void updateYearPosition(@NonNull Object item, int position) { @@ -205,24 +203,6 @@ private void onDateSelected(@NonNull Object item, int position) { final int month = calendar.get(Calendar.MONTH); final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); -// if (calendar.getTimeInMillis() > maxDate) { -// int contentTextColor = daySpinner.getContentTextColor(); -// if (contentTextColor != Color.RED) { -// validContentTextColor = contentTextColor; -// } - // TODO: Change color (invalid date) -// yearSpinner.setContentTextColor(Color.RED); -// monthSpinner.setContentTextColor(Color.RED); -// daySpinner.setContentTextColor(Color.RED); -// } -// else { - // TODO: Change color (valid date) -// if (validContentTextColor != Integer.MAX_VALUE) { -// yearSpinner.setContentTextColor(validContentTextColor); -// monthSpinner.setContentTextColor(validContentTextColor); -// daySpinner.setContentTextColor(validContentTextColor); -// } -// } onDateSelectedListener.onDateSelected(year, month, dayOfMonth); } } @@ -323,10 +303,6 @@ private void deleteAll(@NonNull List list) { } } -// public void setMaxDate(long maxDate) { -// this.maxDate = maxDate; -// } - public interface OnDateSelectedListener { void onDateSelected(int year, int month, int dayOfMonth); @@ -412,10 +388,10 @@ public DatePickerWheelView setInitialDate(String initialDate) { return this; } - public DatePickerWheelView setFont(String font) { - yearSpinner.setFont(font); - monthSpinner.setFont(font); - daySpinner.setFont(font); + public DatePickerWheelView setFontTypeface(String fontTypeface) { + yearSpinner.setFontTypeface(fontTypeface); + monthSpinner.setFontTypeface(fontTypeface); + daySpinner.setFontTypeface(fontTypeface); return this; } } diff --git a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/WheelView.java b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/WheelView.java index 5ffec2b..64d1c52 100644 --- a/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/WheelView.java +++ b/materialwheelview/src/main/java/io/blackbox_vision/wheelview/view/WheelView.java @@ -46,7 +46,7 @@ public final class WheelView extends View { private final List listeners = new ArrayList<>(); @NonNull - private final SimpleOnGestureListener onGestureListener = new WheelViewGestureListener(); + private final SimpleOnGestureListener onGestureListener = new WheelViewGestureListener(); private GestureDetector gestureDetector; private final Paint topBottomTextPaint = new Paint(); //paint that draw top and bottom text @@ -83,7 +83,7 @@ public final class WheelView extends View { private int circularRadius; private int widgetWidth; - private String font; + private String fontTypeface; public Handler handler = new Handler(msg -> { switch (msg.what) { @@ -165,10 +165,11 @@ private void initData() { } Typeface typeface; - if (font != null) - typeface = Typeface.createFromAsset(getContext().getAssets(), font); - else + if (fontTypeface != null) { + typeface = Typeface.createFromAsset(getContext().getAssets(), fontTypeface); + } else { typeface = Typeface.MONOSPACE; + } topBottomTextPaint.setColor(overflowTextColor); topBottomTextPaint.setAntiAlias(true); @@ -414,7 +415,7 @@ private void itemSelected() { } private void onItemSelected() { - for (OnLoopScrollListener onLoopScrollListener: listeners) { + for (OnLoopScrollListener onLoopScrollListener : listeners) { onLoopScrollListener.onLoopScrollFinish(items.get(selectedIndex), items.indexOf(items.get(selectedIndex))); } } @@ -440,6 +441,7 @@ private void startSmoothScrollTo(float velocityY) { /** * This fixes the item amount difference + * * @param delta Number of items */ public void forceScroll(int delta) { @@ -545,7 +547,7 @@ class FlingRunnable implements Runnable { public void run() { if (velocity == Integer.MAX_VALUE) { if (Math.abs(velocityY) > 2000F) { - velocity = (velocityY > 0.0F) ? 2000F : - 2000F; + velocity = (velocityY > 0.0F) ? 2000F : -2000F; } else { velocity = velocityY; } @@ -579,12 +581,12 @@ public void run() { } } - public String getFont() { - return font; + public String getFontTypeface() { + return fontTypeface; } - public void setFont(String font) { - this.font = font; + public void setFontTypeface(String fontTypeface) { + this.fontTypeface = fontTypeface; initData(); } diff --git a/materialwheelview/src/main/res/values/attrs.xml b/materialwheelview/src/main/res/values/attrs.xml index 7e5d1b6..9207aee 100644 --- a/materialwheelview/src/main/res/values/attrs.xml +++ b/materialwheelview/src/main/res/values/attrs.xml @@ -21,6 +21,6 @@ - + \ No newline at end of file