From 3ed8cf089a2957d82119c206aed3c0728c7a9135 Mon Sep 17 00:00:00 2001 From: shanhong cheng Date: Thu, 23 Mar 2017 22:46:14 -0600 Subject: [PATCH] all --- .../common/decorators/EventDecorator.java | 40 +++++++++++++++++ .../HighlightWeekendsDecorator.java | 38 ++++++++++++++++ .../decorators/MySelectorDecorator.java | 32 +++++++++++++ .../common/decorators/OneDayDecorator.java | 42 ++++++++++++++++++ .../modules/fishing/domain/StockReport.java | 23 +++++++++- .../modules/main/ui/CalendarFragment.java | 35 ++++++++++++++- .../main/res/drawable-hdpi/ic_my_selector.png | Bin 0 -> 1424 bytes .../main/res/drawable-mdpi/ic_my_selector.png | Bin 0 -> 886 bytes .../res/drawable-xhdpi/ic_my_selector.png | Bin 0 -> 2035 bytes .../res/drawable-xxhdpi/ic_my_selector.png | Bin 0 -> 3980 bytes app/src/main/res/drawable/my_selector.xml | 13 ++++++ 11 files changed, 221 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/loganfreeman/utahfishing/common/decorators/EventDecorator.java create mode 100644 app/src/main/java/com/loganfreeman/utahfishing/common/decorators/HighlightWeekendsDecorator.java create mode 100644 app/src/main/java/com/loganfreeman/utahfishing/common/decorators/MySelectorDecorator.java create mode 100644 app/src/main/java/com/loganfreeman/utahfishing/common/decorators/OneDayDecorator.java create mode 100644 app/src/main/res/drawable-hdpi/ic_my_selector.png create mode 100644 app/src/main/res/drawable-mdpi/ic_my_selector.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_my_selector.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_my_selector.png create mode 100644 app/src/main/res/drawable/my_selector.xml diff --git a/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/EventDecorator.java b/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/EventDecorator.java new file mode 100644 index 0000000..9b751e6 --- /dev/null +++ b/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/EventDecorator.java @@ -0,0 +1,40 @@ +package com.loganfreeman.utahfishing.common.decorators; + +import android.content.Context; +import android.graphics.drawable.Drawable; + +import com.loganfreeman.utahfishing.R; +import com.loganfreeman.utahfishing.common.PLog; +import com.prolificinteractive.materialcalendarview.CalendarDay; +import com.prolificinteractive.materialcalendarview.DayViewDecorator; +import com.prolificinteractive.materialcalendarview.DayViewFacade; +import com.prolificinteractive.materialcalendarview.spans.DotSpan; + +import java.util.Collection; +import java.util.HashSet; + +/** + * Created by scheng on 3/23/17. + */ + +public class EventDecorator implements DayViewDecorator { + + private HashSet dates; + private final Drawable drawable; + + public EventDecorator(Context context, Collection dates) { + this.dates = new HashSet<>(dates); + + drawable = context.getResources().getDrawable(R.drawable.my_selector); + } + + @Override + public boolean shouldDecorate(CalendarDay day) { + return dates.contains(day); + } + + @Override + public void decorate(DayViewFacade view) { + view.setBackgroundDrawable(drawable); + } +} diff --git a/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/HighlightWeekendsDecorator.java b/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/HighlightWeekendsDecorator.java new file mode 100644 index 0000000..f3c38cb --- /dev/null +++ b/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/HighlightWeekendsDecorator.java @@ -0,0 +1,38 @@ +package com.loganfreeman.utahfishing.common.decorators; + +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; + +import com.prolificinteractive.materialcalendarview.CalendarDay; +import com.prolificinteractive.materialcalendarview.DayViewDecorator; +import com.prolificinteractive.materialcalendarview.DayViewFacade; + +import java.util.Calendar; + +/** + * Created by scheng on 3/23/17. + */ + +public class HighlightWeekendsDecorator implements DayViewDecorator { + + private final Calendar calendar = Calendar.getInstance(); + private final Drawable highlightDrawable; + private static final int color = Color.parseColor("#228BC34A"); + + public HighlightWeekendsDecorator() { + highlightDrawable = new ColorDrawable(color); + } + + @Override + public boolean shouldDecorate(CalendarDay day) { + day.copyTo(calendar); + int weekDay = calendar.get(Calendar.DAY_OF_WEEK); + return weekDay == Calendar.SATURDAY || weekDay == Calendar.SUNDAY; + } + + @Override + public void decorate(DayViewFacade view) { + view.setBackgroundDrawable(highlightDrawable); + } +} diff --git a/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/MySelectorDecorator.java b/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/MySelectorDecorator.java new file mode 100644 index 0000000..a88a695 --- /dev/null +++ b/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/MySelectorDecorator.java @@ -0,0 +1,32 @@ +package com.loganfreeman.utahfishing.common.decorators; + +import android.app.Activity; +import android.graphics.drawable.Drawable; + +import com.loganfreeman.utahfishing.R; +import com.prolificinteractive.materialcalendarview.CalendarDay; +import com.prolificinteractive.materialcalendarview.DayViewDecorator; +import com.prolificinteractive.materialcalendarview.DayViewFacade; + +/** + * Created by scheng on 3/23/17. + */ + +public class MySelectorDecorator implements DayViewDecorator { + + private final Drawable drawable; + + public MySelectorDecorator(Activity context) { + drawable = context.getResources().getDrawable(R.drawable.my_selector); + } + + @Override + public boolean shouldDecorate(CalendarDay day) { + return true; + } + + @Override + public void decorate(DayViewFacade view) { + view.setSelectionDrawable(drawable); + } +} diff --git a/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/OneDayDecorator.java b/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/OneDayDecorator.java new file mode 100644 index 0000000..064d9f6 --- /dev/null +++ b/app/src/main/java/com/loganfreeman/utahfishing/common/decorators/OneDayDecorator.java @@ -0,0 +1,42 @@ +package com.loganfreeman.utahfishing.common.decorators; + +import android.graphics.Typeface; +import android.text.style.RelativeSizeSpan; +import android.text.style.StyleSpan; + +import com.prolificinteractive.materialcalendarview.CalendarDay; +import com.prolificinteractive.materialcalendarview.DayViewDecorator; +import com.prolificinteractive.materialcalendarview.DayViewFacade; + +import java.util.Date; + +/** + * Created by scheng on 3/23/17. + */ + +public class OneDayDecorator implements DayViewDecorator { + + private CalendarDay date; + + public OneDayDecorator() { + date = CalendarDay.today(); + } + + @Override + public boolean shouldDecorate(CalendarDay day) { + return date != null && day.equals(date); + } + + @Override + public void decorate(DayViewFacade view) { + view.addSpan(new StyleSpan(Typeface.BOLD)); + view.addSpan(new RelativeSizeSpan(1.4f)); + } + + /** + * We're changing the internals, so make sure to call {@linkplain MaterialCalendarView#invalidateDecorators()} + */ + public void setDate(Date date) { + this.date = CalendarDay.from(date); + } +} diff --git a/app/src/main/java/com/loganfreeman/utahfishing/modules/fishing/domain/StockReport.java b/app/src/main/java/com/loganfreeman/utahfishing/modules/fishing/domain/StockReport.java index 8e28aac..d78cc40 100644 --- a/app/src/main/java/com/loganfreeman/utahfishing/modules/fishing/domain/StockReport.java +++ b/app/src/main/java/com/loganfreeman/utahfishing/modules/fishing/domain/StockReport.java @@ -6,6 +6,8 @@ import android.os.Parcelable; import android.util.Pair; +import com.prolificinteractive.materialcalendarview.CalendarDay; + import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; @@ -16,14 +18,17 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; +import java.util.regex.Pattern; import java.util.stream.Collectors; import rx.Observable; import rx.subjects.AsyncSubject; import static android.R.id.list; +import static java.util.Arrays.stream; /** * Created by shanhong on 3/21/17. @@ -37,12 +42,17 @@ public class StockReport implements Parcelable { public static final DateFormat df = new SimpleDateFormat("mm/dd/yyyy"); + public static final Pattern dayMonYear = Pattern.compile("(\\d{2})/(\\d{2})/(\\d{4})"); + public String watername; public String county; public String species; public int quantity; public double length; public Date stockdate; + public int day; + public int month; + public int year; public String getCounty() { return county; @@ -114,6 +124,7 @@ public static List fromWildlife() throws IOException { return reports; } + @TargetApi(Build.VERSION_CODES.N) private static StockReport fromElement(Element element) { StockReport report = new StockReport(); report.watername = element.select("td.watername").first().text(); @@ -121,10 +132,20 @@ private static StockReport fromElement(Element element) { report.species = element.select("td.species").first().text(); report.quantity = Integer.parseInt(element.select("td.quantity").first().text()); report.length = Double.parseDouble(element.select("td.length").first().text()); - report.stockdate = getDate(element.select("td.stockdate").first().text()); + String stockdate = element.select("td.stockdate").first().text(); + report.stockdate = getDate(stockdate); + // parse day, month, year + List parts = Arrays.stream(stockdate.split("/")).map(u -> Integer.parseInt(u)).collect(Collectors.toList()); + report.month = parts.get(0); + report.day = parts.get(1); + report.year = parts.get(2); return report; } + public CalendarDay getCalendarDay() { + return CalendarDay.from(year, month, day); + } + @Override public int describeContents() { return 0; diff --git a/app/src/main/java/com/loganfreeman/utahfishing/modules/main/ui/CalendarFragment.java b/app/src/main/java/com/loganfreeman/utahfishing/modules/main/ui/CalendarFragment.java index 09e8071..e7f6137 100644 --- a/app/src/main/java/com/loganfreeman/utahfishing/modules/main/ui/CalendarFragment.java +++ b/app/src/main/java/com/loganfreeman/utahfishing/modules/main/ui/CalendarFragment.java @@ -1,5 +1,9 @@ package com.loganfreeman.utahfishing.modules.main.ui; +import android.annotation.TargetApi; +import android.graphics.Color; +import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -12,6 +16,11 @@ import com.loganfreeman.utahfishing.R; import com.loganfreeman.utahfishing.base.AbstractBaseFragment; import com.loganfreeman.utahfishing.common.PLog; +import com.loganfreeman.utahfishing.common.decorators.EventDecorator; +import com.loganfreeman.utahfishing.common.decorators.HighlightWeekendsDecorator; +import com.loganfreeman.utahfishing.common.decorators.MySelectorDecorator; +import com.loganfreeman.utahfishing.common.decorators.OneDayDecorator; +import com.loganfreeman.utahfishing.common.utils.StringUtils; import com.loganfreeman.utahfishing.common.utils.ToastUtil; import com.loganfreeman.utahfishing.modules.fishing.domain.StockReport; import com.prolificinteractive.materialcalendarview.CalendarDay; @@ -19,8 +28,14 @@ import com.prolificinteractive.materialcalendarview.OnDateSelectedListener; import com.prolificinteractive.materialcalendarview.OnMonthChangedListener; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.concurrent.Executors; +import java.util.stream.Collectors; import butterknife.Bind; import butterknife.ButterKnife; @@ -34,10 +49,13 @@ public class CalendarFragment extends AbstractBaseFragment implements OnDateSelectedListener, OnMonthChangedListener { + public static final DateFormat df = new SimpleDateFormat("mm/dd/yyyy"); + @Bind(R.id.calendarView) MaterialCalendarView widget; private View view; + @Override protected void lazyLoad() { @@ -69,7 +87,7 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { @Override public void onDateSelected(@NonNull MaterialCalendarView widget, @NonNull CalendarDay date, boolean selected) { - + widget.invalidateDecorators(); } @Override @@ -98,10 +116,25 @@ public void onNext(List stockReports) { }); } + @TargetApi(Build.VERSION_CODES.N) private void initCalendar(List stockReports) { widget.setOnDateChangedListener(this); widget.setOnMonthChangedListener(this); + List calendarDays = stockReports.stream().map( u -> u.getCalendarDay() ).collect(Collectors.toList()); + + //PLog.e(calendarDays.stream().map(Object::toString).collect(Collectors.joining("\n"))); + + //PLog.e(stockReports.stream().map(u -> df.format(u.stockdate)).collect(Collectors.joining("\n"))); + + + + widget.addDecorator(new EventDecorator(CalendarFragment.this.getActivity(), calendarDays)); + + widget.addDecorators( + new HighlightWeekendsDecorator() + ); + } } diff --git a/app/src/main/res/drawable-hdpi/ic_my_selector.png b/app/src/main/res/drawable-hdpi/ic_my_selector.png new file mode 100644 index 0000000000000000000000000000000000000000..46ceaba6a261421e5ad94ef6bf6952fe3198fa5b GIT binary patch literal 1424 zcmV;B1#kL^P)BqR|vYVf27O#+_OQx5)%qEYa+AxJ!^7cnHJv(-H&hdl`^?m+}m zK@SoSUKU}mdr{-TA7UU8l8|IYO$4KkJDu-U_wIJrbXQl+bobb^RZz?f{i@#gUcajM z)74X{m}Z)3rkTc@S9P~~RkqD&B2GDT24{N}cHgTwKht-kktXYLY$(SI`apLJYt>d@ zx$ID;@A+;il=3X3pl4o>vrJ=Y?jW8evIe#-5cHDQ=e{eYwe2eCeh4Wi=+tzBRY62!IcxbCIo-uFSVQN|*^dm%-hhy@GhO%jyEKmwqh5#?a5BGcZ4>AkZJ^r+6&WbNmDD?n7}B z_gIvh(KR0LfYu+A;_-+#F!)%;f;j1=pvXGOlGoB1X=4dY@bMHFzJI1yn>WS;LFI_P zg+_3Uav*7eNeG3qATAotAut?nihHVT zXQGD#=Hi0JKKmU2`7Z|aP?Kw}IOlSVpwEdRL;M~ItSN=NY!uV$EQWc10fyINg2vyx zS@v83>|g;Y#$bdeFmNnla7dV|0|!Wk>=Z(KN6+!)FwY}FWLlTR7yW{{Z)q=}(+EI? z$|GTs(AT*vBooP|8=LV>*m76XlLho!3LcA?{^HHI-;CZx_MpH-^+DKr2@A)RKDH6a zIKX9A*~BritEQCXa;I-`1!wc%sZjP!Q5JL6avnXe)1ag>>a`RS%j~V__pn#viLTa- zhRmutq95z<4OWH0ZJ{i(v3TW7W%C<_%I0lF%Nf*;k^JC}=Q@ov&9|6}1Gj~l4-E)#9uTqEGtf1)(*-t?_rJSGx zgHU-8mFVW994dNujRiTovtC|ZxCgQRtdw)8d%aj2C6J)VbYsrGU) zdl zvw3s6quujC&O@!cPIc{;&j+~+OLacToG>$I6!SRc>iq3T+0KRhPPy_hLF1Gw$1>() zE9jJK{5fg+?brXDG%yx%PTHKb&sIU^T@AT{%-cR`7L@kB*wvZ-zL<75bA!cvJ7fO4qxDjX`S%yo eOf${2aQh#8_7s@qf5>tG0000~9y}R|mA{G|uE{%|XAdOK( z3!{?4%2G%Z4A>+#@VLF5ncvL3H*e;BXxiWzJpKD9y?R6G z;$|_8A2x@TCcksTdq4K>HKohDYW$rMNY`WyO*yR=$OBo%09G#?cwieR-l&o_>Z6sc zv-rO4ap1QqiLnlzQI;h-u=d{pP1HRGZXwq1t8->anWhffYY(l}mYGI8#7i=5nyB}} zfkwBH;vSPC^XbrVZ_W8|^9Lp1Cm4y@+rz-pil3OU%2p_ka~%6^jWT<|UbU+@>5>;Vt z^p0;n9>_p`AqM+P4*9+^69WE+icp)6)1$lv+S`yY*96GOiP1iZT6sTb-kpC5$?UT6&aUh4Rf^WS&iu_2`ftJPX+k zFV{|Di0}A|kNB!in`OJ_<>ihgLs}=c34^hK$=JT42;HzDozW$E##!gQ4~$K{GHHjF zc?9&e9BRNCVL9_{GH|YuEo2jHOR~O+NSoqYtFYmHHpfCX+b&$BBPy*%t((+|mqTD$ zj8(*ZT;TF@V1qCdbj)IlFWd=Ahnk!ZPHS?)iT&~XjCUF^owPa;!ZYtpztK+cP|9ar zAZ2sJ$vh8pcL11n;xI=7M#u_Vlf@J<`PiKkm`u*X3jd$y?f@{`3rIJ4G|7exRk$A< z5RcLuZf66lkRep)N!+_MDu3jXMhjoa3cr*%5R173wVdwlhDQ9#WkXZ^EoJPc9^sW} zQ*Teyecja4kw&49RosIu@yR{dlGA&4u*H1N!4~Vxc(7IUqs77>?xsIpmn%g&UXQro zkjwpl!4Y}IB*yyxiit1z#Jyyfe8LL91^@s6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_my_selector.png b/app/src/main/res/drawable-xhdpi/ic_my_selector.png new file mode 100644 index 0000000000000000000000000000000000000000..4010b7967cabe66b877565af4f0282047b005c59 GIT binary patch literal 2035 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/my_selector.xml b/app/src/main/res/drawable/my_selector.xml new file mode 100644 index 0000000..c73c955 --- /dev/null +++ b/app/src/main/res/drawable/my_selector.xml @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file