From f4e22c7f19eb218cf91f7ee813e00c53ec39a96f Mon Sep 17 00:00:00 2001 From: Mehedi Hasan Date: Wed, 26 Dec 2018 17:45:41 +0600 Subject: [PATCH 1/5] you can now set TextAppearance (font, size, style etc.) for day, month and weekday texts. for example: ``` app:dayTextAppearance = "@style/DayTextAppearance" app:monthTextAppearance = "@style/MonthTextAppearance" app:weekDayTextAppearance = "@style/WeekdayTextAppearance" ``` --- build.gradle | 14 ++++-- cosmocalendar/build.gradle | 12 ++--- .../adapter/viewholder/DayHolder.java | 4 ++ .../adapter/viewholder/DayOfWeekHolder.java | 4 ++ .../adapter/viewholder/MonthHolder.java | 4 ++ .../adapter/viewholder/OtherDayHolder.java | 4 ++ .../cosmocalendar/dialog/CalendarDialog.java | 30 ++++++++++++ .../settings/SettingsManager.java | 30 ++++++++++++ .../appearance/AppearanceInterface.java | 10 ++++ .../settings/appearance/AppearanceModel.java | 29 +++++++++++ .../cosmocalendar/view/CalendarView.java | 46 ++++++++++++++++++ cosmocalendar/src/main/res/values/attrs.xml | 4 ++ gradle/wrapper/gradle-wrapper.properties | 4 +- sample/build.gradle | 12 +++-- .../sample/DefaultCalendarActivity.java | 3 ++ sample/src/main/res/font/circularstd_bold.otf | Bin 0 -> 74368 bytes sample/src/main/res/font/circularstd_book.otf | Bin 0 -> 68940 bytes .../main/res/font/circularstd_book_italic.otf | Bin 0 -> 67284 bytes .../src/main/res/font/circularstd_family.xml | 44 +++++++++++++++++ .../src/main/res/font/circularstd_medium.otf | Bin 0 -> 74116 bytes .../res/layout/activity_default_calendar.xml | 4 ++ sample/src/main/res/values/styles.xml | 23 +++++++++ 22 files changed, 265 insertions(+), 16 deletions(-) create mode 100755 sample/src/main/res/font/circularstd_bold.otf create mode 100755 sample/src/main/res/font/circularstd_book.otf create mode 100755 sample/src/main/res/font/circularstd_book_italic.otf create mode 100644 sample/src/main/res/font/circularstd_family.xml create mode 100755 sample/src/main/res/font/circularstd_medium.otf diff --git a/build.gradle b/build.gradle index c1941f5..c62e35e 100644 --- a/build.gradle +++ b/build.gradle @@ -2,11 +2,15 @@ buildscript { repositories { jcenter() mavenCentral() + maven { + url 'https://maven.google.com/' + name 'Google' + } } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4' - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' + classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4' + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' } } @@ -14,6 +18,10 @@ allprojects { repositories { jcenter() mavenCentral() + maven { + url 'https://maven.google.com/' + name 'Google' + } } tasks.withType(Javadoc).all { diff --git a/cosmocalendar/build.gradle b/cosmocalendar/build.gradle index f5fdb9c..9efab0f 100644 --- a/cosmocalendar/build.gradle +++ b/cosmocalendar/build.gradle @@ -25,12 +25,12 @@ ext { } android { - compileSdkVersion 25 - buildToolsVersion "25.0.3" + compileSdkVersion 28 + buildToolsVersion '28.0.3' defaultConfig { minSdkVersion 17 - targetSdkVersion 25 + targetSdkVersion 28 versionCode 5 versionName "1.0.4" } @@ -43,9 +43,9 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:25.3.1' - compile "com.android.support:recyclerview-v7:25.3.1" + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation "com.android.support:recyclerview-v7:28.0.0" } // Place it at the end of the file diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayHolder.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayHolder.java index 4b5399d..dafcdca 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayHolder.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayHolder.java @@ -21,6 +21,10 @@ public class DayHolder extends BaseDayHolder { public DayHolder(View itemView, CalendarView calendarView) { super(itemView, calendarView); ctvDay = (CircleAnimationTextView) itemView.findViewById(R.id.tv_day_number); + + if(calendarView.getDayTextAppearance() != -1) { + ctvDay.setTextAppearance(calendarView.getContext(), calendarView.getDayTextAppearance()); + } } public void bind(Day day, BaseSelectionManager selectionManager) { diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayOfWeekHolder.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayOfWeekHolder.java index 6d63934..2676825 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayOfWeekHolder.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayOfWeekHolder.java @@ -19,6 +19,10 @@ public DayOfWeekHolder(View itemView, CalendarView calendarView) { super(itemView, calendarView); tvDay = (TextView) itemView.findViewById(R.id.tv_day_name); mDayOfWeekFormatter = new SimpleDateFormat(Constants.DAY_NAME_FORMAT, Locale.getDefault()); + + if(calendarView.getWeekDayTextAppearance() != -1) { + tvDay.setTextAppearance(calendarView.getContext(), calendarView.getWeekDayTextAppearance()); + } } public void bind(Day day) { diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java index 0a4074c..96063db 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java @@ -29,6 +29,10 @@ public MonthHolder(View itemView, SettingsManager appearanceModel) { viewLeftLine = itemView.findViewById(R.id.view_left_line); viewRightLine = itemView.findViewById(R.id.view_right_line); this.appearanceModel = appearanceModel; + + if(appearanceModel.getMonthTextAppearance() != -1) { + tvMonthName.setTextAppearance(tvMonthName.getContext(), appearanceModel.getMonthTextAppearance()); + } } public void setDayAdapter(DaysAdapter adapter) { diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/OtherDayHolder.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/OtherDayHolder.java index 9eebf85..e603c6c 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/OtherDayHolder.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/OtherDayHolder.java @@ -12,6 +12,10 @@ public class OtherDayHolder extends BaseDayHolder { public OtherDayHolder(View itemView, CalendarView calendarView) { super(itemView, calendarView); tvDay = (TextView) itemView.findViewById(R.id.tv_day_number); + + if(calendarView.getDayTextAppearance() != -1) { + tvDay.setTextAppearance(calendarView.getContext(), calendarView.getDayTextAppearance()); + } } public void bind(Day day) { diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java index 440f7f1..0115344 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java @@ -343,6 +343,36 @@ public void setShowDaysOfWeekTitle(boolean showDaysOfWeekTitle) { calendarView.setShowDaysOfWeekTitle(showDaysOfWeekTitle); } + @Override + public int getMonthTextAppearance() { + return calendarView.getMonthTextAppearance(); + } + + @Override + public void setMonthTextAppearance(int monthTextAppearance) { + calendarView.setMonthTextAppearance(monthTextAppearance); + } + + @Override + public int getWeekDayTextAppearance() { + return calendarView.getWeekDayTextAppearance(); + } + + @Override + public void setWeekDayTextAppearance(int weekDayTextAppearance) { + calendarView.setWeekDayTextAppearance(weekDayTextAppearance); + } + + @Override + public int getDayTextAppearance() { + return calendarView.getDayTextAppearance(); + } + + @Override + public void setDayTextAppearance(int dayTextAppearance) { + calendarView.setDayTextAppearance(dayTextAppearance); + } + @Override public Set getDisabledDays() { return calendarView.getDisabledDays(); diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java index b8b016c..5d35717 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java @@ -282,6 +282,36 @@ public void setShowDaysOfWeekTitle(boolean showDaysOfWeekTitle) { appearanceModel.setShowDaysOfWeekTitle(showDaysOfWeekTitle); } + @Override + public int getMonthTextAppearance() { + return appearanceModel.getMonthTextAppearance(); + } + + @Override + public void setMonthTextAppearance(int monthTextAppearance) { + appearanceModel.setMonthTextAppearance(monthTextAppearance); + } + + @Override + public int getWeekDayTextAppearance() { + return appearanceModel.getWeekDayTextAppearance(); + } + + @Override + public void setWeekDayTextAppearance(int weekDayTextAppearance) { + appearanceModel.setWeekDayTextAppearance(weekDayTextAppearance); + } + + @Override + public int getDayTextAppearance() { + return appearanceModel.getDayTextAppearance(); + } + + @Override + public void setDayTextAppearance(int dayTextAppearance) { + appearanceModel.setDayTextAppearance(dayTextAppearance); + } + @Override public Set getDisabledDays() { return calendarListsModel.getDisabledDays(); diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java index 90574df..9224534 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java @@ -93,4 +93,14 @@ public interface AppearanceInterface { void setShowDaysOfWeek(boolean showDaysOfWeek); void setShowDaysOfWeekTitle(boolean showDaysOfWeekTitle); + + int getMonthTextAppearance(); + + void setMonthTextAppearance(int monthTextAppearance); + int getWeekDayTextAppearance(); + void setWeekDayTextAppearance(int weekDayTextAppearance); + + int getDayTextAppearance(); + + void setDayTextAppearance(int dayTextAppearance); } diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java index 18b1415..1251220 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java @@ -1,5 +1,7 @@ package com.applikeysolutions.cosmocalendar.settings.appearance; +import android.support.annotation.StyleRes; + public class AppearanceModel implements AppearanceInterface { //Background color of whole calendar @@ -62,6 +64,10 @@ public class AppearanceModel implements AppearanceInterface { //Icon resource of next month navigation button private int nextMonthIconRes; + private @StyleRes int monthTextAppearance; + private @StyleRes int weekDayTextAppearance; + private @StyleRes int dayTextAppearance; + /** * Orientation of calendar * possible values: @@ -76,6 +82,29 @@ public class AppearanceModel implements AppearanceInterface { //Defines if we need to display week day title for whole calendar private boolean showDaysOfWeekTitle; + public int getMonthTextAppearance() { + return monthTextAppearance; + } + + public void setMonthTextAppearance(int monthTextAppearance) { + this.monthTextAppearance = monthTextAppearance; + } + + public int getWeekDayTextAppearance() { + return weekDayTextAppearance; + } + + public void setWeekDayTextAppearance(int weekDayTextAppearance) { + this.weekDayTextAppearance = weekDayTextAppearance; + } + + public int getDayTextAppearance() { + return dayTextAppearance; + } + + public void setDayTextAppearance(int dayTextAppearance) { + this.dayTextAppearance = dayTextAppearance; + } @Override public int getCalendarBackgroundColor() { diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java index 8d224b7..60b1484 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java @@ -174,6 +174,10 @@ private void handleAttributes(TypedArray typedArray) { int previousMonthIconRes = typedArray.getResourceId(R.styleable.CalendarView_previousMonthIconRes, R.drawable.ic_chevron_left_gray); int nextMonthIconRes = typedArray.getResourceId(R.styleable.CalendarView_nextMonthIconRes, R.drawable.ic_chevron_right_gray); + int monthTextAppearance = typedArray.getResourceId(R.styleable.CalendarView_monthTextAppearance, -1); + int weekDayTextAppearance = typedArray.getResourceId(R.styleable.CalendarView_weekDayTextAppearance, -1); + int dayTextAppearance = typedArray.getResourceId(R.styleable.CalendarView_dayTextAppearance, -1); + setBackgroundColor(calendarBackgroundColor); settingsManager.setCalendarBackgroundColor(calendarBackgroundColor); settingsManager.setMonthTextColor(monthTextColor); @@ -200,6 +204,10 @@ private void handleAttributes(TypedArray typedArray) { settingsManager.setSelectionType(selectionType); settingsManager.setPreviousMonthIconRes(previousMonthIconRes); settingsManager.setNextMonthIconRes(nextMonthIconRes); + + settingsManager.setMonthTextAppearance(monthTextAppearance); + settingsManager.setWeekDayTextAppearance(weekDayTextAppearance); + settingsManager.setDayTextAppearance(dayTextAppearance); } private void handleWeekendDaysAttributes(TypedArray typedArray) { @@ -281,6 +289,9 @@ private void createDaysOfWeekTitle() { for (String title : CalendarUtils.createWeekDayTitles(settingsManager.getFirstDayOfWeek())) { SquareTextView tvDayTitle = new SquareTextView(getContext()); tvDayTitle.setText(title); + if(getWeekDayTextAppearance() != -1) { + tvDayTitle.setTextAppearance(getContext(), getWeekDayTextAppearance()); + } tvDayTitle.setLayoutParams(textViewParam); tvDayTitle.setGravity(Gravity.CENTER); llDaysOfWeekTitles.addView(tvDayTitle); @@ -679,11 +690,13 @@ private void displaySelectedDaysRange() { CircleAnimationTextView catvStart = (CircleAnimationTextView) llRangeSelection.findViewById(R.id.catv_start); catvStart.setText(String.valueOf(days.first.getDayNumber())); + catvStart.setTextAppearance(getContext(), getDayTextAppearance()); catvStart.setTextColor(getSelectedDayTextColor()); catvStart.showAsStartCircle(this, true); CircleAnimationTextView catvEnd = (CircleAnimationTextView) llRangeSelection.findViewById(R.id.catv_end); catvEnd.setText(String.valueOf(days.second.getDayNumber())); + catvEnd.setTextAppearance(getContext(), getDayTextAppearance()); catvEnd.setTextColor(getSelectedDayTextColor()); catvEnd.showAsEndCircle(this, true); @@ -1024,6 +1037,39 @@ public void setShowDaysOfWeekTitle(boolean showDaysOfWeekTitle) { } } + @Override + public int getMonthTextAppearance() { + return settingsManager.getMonthTextAppearance(); + } + + @Override + public void setMonthTextAppearance(int monthTextAppearance) { + settingsManager.setMonthTextAppearance(monthTextAppearance); + update(); + } + + @Override + public int getWeekDayTextAppearance() { + return settingsManager.getWeekDayTextAppearance(); + } + + @Override + public void setWeekDayTextAppearance(int weekDayTextAppearance) { + settingsManager.setWeekDayTextAppearance(weekDayTextAppearance); + update(); + } + + @Override + public int getDayTextAppearance() { + return settingsManager.getDayTextAppearance(); + } + + @Override + public void setDayTextAppearance(int dayTextAppearance) { + settingsManager.setDayTextAppearance(dayTextAppearance); + update(); + } + @Override public int getFirstDayOfWeek() { return settingsManager.getFirstDayOfWeek(); diff --git a/cosmocalendar/src/main/res/values/attrs.xml b/cosmocalendar/src/main/res/values/attrs.xml index cdfd40d..44555fb 100644 --- a/cosmocalendar/src/main/res/values/attrs.xml +++ b/cosmocalendar/src/main/res/values/attrs.xml @@ -64,5 +64,9 @@ + + + + \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a91a603..766dce8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Mar 15 15:07:26 EET 2017 +#Wed Dec 26 12:40:06 BDT 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/sample/build.gradle b/sample/build.gradle index 203182b..4a5c3e6 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion "25.0.3" + compileSdkVersion 28 + buildToolsVersion "28.0.3" defaultConfig { applicationId "com.applikeysolutions.cosmocalendar" minSdkVersion 17 - targetSdkVersion 25 + targetSdkVersion 28 versionCode 1 versionName "1.0" } @@ -19,6 +19,8 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile project(path: ':cosmocalendar') + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation project(path: ':cosmocalendar') + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation "com.android.support:recyclerview-v7:28.0.0" } diff --git a/sample/src/main/java/com/applikeysolutions/cosmocalendar/sample/DefaultCalendarActivity.java b/sample/src/main/java/com/applikeysolutions/cosmocalendar/sample/DefaultCalendarActivity.java index 27cc675..f32a9a4 100644 --- a/sample/src/main/java/com/applikeysolutions/cosmocalendar/sample/DefaultCalendarActivity.java +++ b/sample/src/main/java/com/applikeysolutions/cosmocalendar/sample/DefaultCalendarActivity.java @@ -53,6 +53,9 @@ private void initViews() { calendarView = (CalendarView) findViewById(R.id.calendar_view); ((RadioGroup) findViewById(R.id.rg_orientation)).setOnCheckedChangeListener(this); ((RadioGroup) findViewById(R.id.rg_selection_type)).setOnCheckedChangeListener(this); + + //calendarView.setShowDaysOfWeekTitle(false); + //calendarView.setShowDaysOfWeek(true); } private void createCriterias() { diff --git a/sample/src/main/res/font/circularstd_bold.otf b/sample/src/main/res/font/circularstd_bold.otf new file mode 100755 index 0000000000000000000000000000000000000000..9b6139592c32620beff3dc27b03a08b9220d64b6 GIT binary patch literal 74368 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

I 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 ZtC$GhC-)gIbMG~qTe+y&L2gSJ<(M9vK8%%3 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 literal 0 HcmV?d00001 diff --git a/sample/src/main/res/font/circularstd_book.otf b/sample/src/main/res/font/circularstd_book.otf new file mode 100755 index 0000000000000000000000000000000000000000..3a1f1ad82ef9ee891d7977cd5f6736404cb3afa1 GIT binary patch literal 68940 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 bm)u+K19{O;?hmegZf|)^1FfGBrz`&-FR{+x literal 0 HcmV?d00001 diff --git a/sample/src/main/res/font/circularstd_book_italic.otf b/sample/src/main/res/font/circularstd_book_italic.otf new file mode 100755 index 0000000000000000000000000000000000000000..facc6d21f732c9e16ed974513335d200dcf05f69 GIT binary patch literal 67284 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 W>i-{hzp&8qd%gtOH|gcCN&f*}AJcCD literal 0 HcmV?d00001 diff --git a/sample/src/main/res/font/circularstd_family.xml b/sample/src/main/res/font/circularstd_family.xml new file mode 100644 index 0000000..7d0d51c --- /dev/null +++ b/sample/src/main/res/font/circularstd_family.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sample/src/main/res/font/circularstd_medium.otf b/sample/src/main/res/font/circularstd_medium.otf new file mode 100755 index 0000000000000000000000000000000000000000..7541a5a1f23f3ee694de23108eaa4b0037efd1ac GIT binary patch literal 74116 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

f2InK+u7PL%4ZrMyU$(+8yR2J-TcJup@=Asl zhODo62dtEI%fHB%YFwaH9x$&)4G8zNhjJbH{|t<_gG)BE->1Ka<|6CEgT&8Ay8LjM zXf=k;Bcs}GUV3eYsZqhn00uvn+*s3?@ePJ+A z{T4K<4Ms*Uo&pZiQVqFVTB^t)(s#ip$RIZO_M9Q7@{ZAx{wP4J^}?H8_%8+iI|=`t zg#S*$e>>s71Mpu8^>PaSOQBv;RDUD&A-$~!3`M>O$>(_$hN{H@y*8=p5eLeERkYc{ zZlMi0z$_ZBxdmou29$CV|DW(I^gGY>6Zf}7I-=KV!?lAFXIFJrA5NajHIHjP*8;AE zT#L9Cb4AvvopC)coGh9ibXR!frj}C4tr}&o&h;6gNDSa0`f37WsG*Zx5SfCwd(>M) zLa0XHpyUa#6FSe~Uu1Zt#S-@tPhlOA_o8`<2IEoh1RDq35Yj#2Ca@FAL7AHKQaxwH@k$kKsyu4tWpt$oCc%1^{o4h&6C@49_f!PJ%T>+A4;5U`j zWN;%=04<|E+Qb~f;bxN?^Qzor6wMC5yoJ@`9XKr+Xa;XOu$a9Cc5lO-?@+gy-*|YF zpEo%&ybwnFd|_ z&^~*(UOWtE}V7f%bN1s zg|}U~7ma@vbX$$(bT3d&k>)fOt26xnh+QKJ`Je}5MsIRMXTc)mu=WSj!r@$`JVs6; z*^AawmVEM)lY^XWNc@tUgWMeCCK6B;a(l$gtrWQxCbv@LRv60WB}a$SWF*&~T)kB8 zIaKb9A|VWD>mrqf%9@Ua6D+*EDQ;qs8!Q}3?=Y~)&1a^BYbt?BB`|r&#H28o6bF;S zU{YLq7%(w(DgzToCQKX=nB=CM!cC{(n$uioxPIi4x|yeb=O}BJ^!U=w3>#K8VpQi@ zYTf8XQm_#BMG36XITM-^tMAA+Lj~o0O`o@0fbPhVDK&QjdX&ZFsme zI;B9T-L&-maE$P-Q?;0M-gUyePOHJYPFjx>i>lK)h-)y{5U!zI!?>_XS+Pl3M{+4i zhE^z&St&3r45ng{`?m@aT8Zu?)ZGld9)~JO8I-3z+}{z--A)fC!?Z19 zw3KlYn<&z&luc~OSURa8vAf7vr$#&|Aor>At0<5iykz_^?95_Ql`-_3X-`n0#LEw7 zDeE(|_7M9%FcJIoVbblP)t)5AEMn{?eJU{y5aR%FCWBpGLfpg`X^yvq9s;Ah)PtK^ z%SV4$0A5P4JOQ>&uodg1VapIZ2GFFozzCV0oTWr^XN>f6ClD`@M*8h$q&E0LEVP9v z#jn&?Gh#PK@@>g~Ypy4_+HgIIq+=sSO)I^ywFTD`Ty208MQBxPD=?1cE`ijy2^U#J zo?7tK5)DRTl~(a3Jki?HOdYFQ*spL#v)~PDb3$7M&ye$Naz+xP7k>&^l5+uto8V>O zbX#E@ZDQ;w-d3R2H(!$E29&T$wTrq^1B_z#BV}O z$EFK8X18`HZcnaWT)nyaat-Ag&L#HJ(OhUe*0EgAkitgjO+o_^p#f|ZVt4IHJ!4Y? zPAc|SfrWMhXAI?E?63+R7>(gVLP48zTBYC5rm&E=l9S{TYvPp-PhdsD8KemuO?B*NX;L zsDxsdh^B;$g;~L|#F?eN365gDzG>nZvS8l?M}Zp+j?pIN9Ex&`?vy?2(itholG4Bi zd-ETrNUtf$FO(8J+N4Q(z4W1Mk##dtQ8e1DYn2in28Q$))U}%{A6I_rM#e!qPttdZ z28oQ1Jm=w!^j#v=(<`a?5<_OTQqhb=SIBR~;$3KVOXhYCD*Yps_E{g8bGhbm&F2z% z3F|oDzl`R~nbPwL4g#kd|6-SwUR5M?8BwGMM^_*mNrav&KrbSCf>?8`N;=79&eVym zHdXbS$_7l^miaCzK{fj9>fmgQqQ;_$ET!zNymy0L zK4hr;^a2H-l+vld_CCf3nR~*Pj?^G_Jmd^;tcMQMjhsav9?Y}MqzK(75%(NnA#GFU zZ7fQ^J!vgsDQqnTzm+DeJY`+TCG!+Jpt4b4`N37_ZdjP1MA^lReU@_bA9xLU?S9rJ zT&CV~Td>ZNUo;em=8pSdDtX$1w~ae_;`x7ekoR9Wf`@`ru)P(gj5cWgUGNmx1%j8r z61g{c0;#|mycYa7WxEJiN<}$D^TCcpoSX6_C53O$sGv^x2!0Xlk7Q*b1$tHR0?_E8 zg6Bw;s`7c3r%Q~57HZPCEDBnHG&cz&6xe?9-^~@E?wtm3;0b-f2p)}6VT^Ue6{_+a zydrogSP~L#rn&-0age)&N}e2wqb-!(csdz;J?IDS6-w`i>m^=p<*p;nsMYt2XSJ*19K<~^`OQX{$mtmhoUsL=isW~0pOpeB#gm?UZPY2(GomM zUEBt@9E2Vqt)dDqgd!p{2*iLYsYK7>KwkcDj_BZK%C$^Ds2aHg7FY@=$a|d<{VBet zJbd~Wik;&Uj*U1n<^nva31p3|APe0yri%c0@7oa1+&f0Z8|s}849gL&Wm)}n=b>tc z8oJxNJ7WvHOUUw;AafFMns9yO5$07hP@ozViHsFddZ~}l5u6oljbscz3tZq!%MgC& zP`oey!n4teuOgsGjI0jYzzVqbCtw~H?lqy11TKK*B`usSy@AYj!nM-U?+Gz;DeoB( zIQz4Bne{7&&>^@7O0Sg?huajXD2Lg0!Tt)Zke-1uo@1=K*CA~%BfrxRP~NP{BG&AC z9qIg%ekc9MIr3rVM*8G?CH*_$K$KQvUVjI|ooPZeRByym`uC}k4m^UM)C%iif@}F_ z#wGA)<-Jgf>UvS<31fM?x^zY*geb1<#S4Nu<{Y|dS(29#A^U0w`Sap~FWAuaa zEKp21s>Mj(C{RO?jrZx#5<4r%=`lkoNno@NB&Catm-p^zq|J&3u3%&pPmuWQ2eRe= z==k%z`ezXM`@C@{bQzfyRn;rnXPElNI3U64@6*#~4kM*VN^stvkZXh+;kwAtE*)~_ zJL&5purhmkBi7yMnjTl;WPA$2HbUi>a%`qI+NI(~z)sIo#=eO78TxU;3x{AD|3*wR z3{K7PoH1&qr}VOzX+kY5Q@pGn|4H7+m{X(-mvzlajb%(5`9urfBhPAVJjIB9h?(Y6 zruGsUk=}`#5$z>(ltR`jt{(mdZLmrHS4ZYD3I2CI4BSi%B~`kt@@Kf=AFDyM^N#=+5?w)4 z4zn?u%E%w?LFbHsvVIC{PWS9tBhs7w(;51* zGbRlp-bUPpMvBmX#H+t|`+r1@|AsfRELi$zlx4KP^YR~~v1I;_(m4Y)u|KBECt`s# z4p~KD+ER>wh*$(J>B*s5wf4&Qddj@5lbLM2&5k<-si~SyWj4$dqxk(cag{a)&181zB&lTe)gK(>mQj!SgZNp!{`+*!3TozetbF+k z2Q-kw7$N>by8k}v-={`;jildYjZc;{2w5g&O_3$|b*PmEUoowgq>1d2fPV=N41{Gt z+20wq%^2KzuWaC3bJWga#^7Fw|3r8MR*|tqDvt`|tKLM$6r8b^4`OAP?5L5^YPwiX z%r&LbsCMED}19*Zu*{DS|DjL?_6i?~r$yAn!(=$>IoeozVHO;k+@l z#^>(f;mSXcb3_d*YD~U6Oe2)B!DuNFwuHOI&rFR_9Ju5f_u?CagSCJ+4ats&JM2-! z6&pk7$f3$4I#g~II~0D;|IGcyJtO|*7ylGwBzfVe90p$rHJ}Ogfh{D19b1Lnl689F zL#*`%C7{TkX{G-Z&S4C~H~%}x;ViiMGi8j7pY{FU#@VWNQ)Od)wXAQB#j}L?^~ro}zZSdLD!`jo@3$IOmtbK7H-QPL@-%W$? z+%&{G)H=*M9Pdpdt)p-(J=!|PI@bD(bsV0YKE#95LhCYoH?6XMYTa(#fd(hL1ERq{ z8)p${U}tT#SbDwCBF54PddTVGdW#nuEeezh^L8H7-z|GkOTII8Jf?oNdP65sm z(5;}QEwoFpJjqTM5A^eKR_0$QDQ7wIEW$pQqMSKNR~n2S$Fzvxvl-lSCF17^;jTAMw0ZkD8l=|E=kq)u_SQtOcIKS(cjogcatyIjc~k z2ieVcjx&LpJx^JG;><@4UtqVEcy;JOOQgW!nY@e79YN6Qd6Bh4}t?zn~DuiKo%EkVu^;=GRi15s9dRKPLC zEmh%~5|%_brvBEV5z7)hgE_D2U#A33kO>s zh7*Ta9)TN&T57?O!z_=&mBTGf;mi@1mT>1t%M)?5N~9~lsB>#aQ3I{QQ6LpusS$Z z-(hJDPYtBjY_wZhU0obb%Lymt;`H$^XFO+q#jpACg5l*X#%U$4wDl5-mrE-CEQ7bE zg4BLFp6=(2#_wB2?kjN?RJ>bS@oqu(nm$B$70$AFgnJlnuFC0QH|!(eQiIcu@3)$8 zb{)?9;Jx~^xW_n)u}`-VIEwE$7yR=$_f0s9u`8^pYA@1an&S_y7~bGo(H>iK=48*= z6Woh`xtz4PC%J!$GoCis7OdN;_S%7V;HI5+f;*q)ET!7aeel}=$~1^GJ3KZ7$_(W! zXPLlR2%m@lf*P-IMp<6vENFR+9o?lZQ#cD)-sLQ9nTlV;g7`(8K^yqc@-Zcy#c5Y< zrZjs@7E?MrGk{w%`$LN0y>1QnYdPaA>nxkN-^`iIvc>W#y~=jZe3l)Y#Vk8H^I3Lr z7E!(y3tGP5%&9ysmSsopUdp(S(~j@O{m}COXDQ2fmhUOWDbA9X)0}xMKX8^{*Y6oZ ze&oz!Im=lBPkBGX0~a~7TYljzWUXMWU@2#K#yg2O-Qy!cmtkWwALH#;&BajC+E~ z;suZtWa^Dw3Q%`R2+PQS;TfSg+TTfH-BYha-`NdbVeOsrpHtfF8PQ`o@@A#SW`Sn- z74XI5n5^vI#qSx`{NL*kd|%3%GL!}z2JwW04GJ6ksAN@-(K6H?3wirTb#-?%NaZxz zJ{AfzG{aUv+#E9Rpbu)i;B7=Q4V9mqla)&g%y@EgW2?4ydl z7i2du@9+b~ID#EX>Ht`3UQpq#_$U)}MMF|uz?+nDwj=DY=qq*in0l8di45jQOc2@XLIJu?Xi) z?kUh;cH;_E@e*1QZODlt~(St<)s)bMN0q7z_&_O0BNgiK2NbhHm+Rq}bU$p#! zj9$h1u(c}kc@1k#Yb|SSYaMG{Yd!0uNa>65QoRDH9Eluxd>!>$L}`F7r2)FgEhl%P z0cImtS>YxcU`}$sk6*zcT4_X4N+Yr>jVPPah@zB66r*s;rnHM3V0IeGUbKtsO1sFR zw2L^UU1V3Sg_aeAwkK8_@fzSHJUb^|5IM7}lDASNuc=Dj3N0uP zdY+WOp|a;Vf$Anq>^X68d48aZJqQ1IoDG4RK${SIPPC#|Ec#){o>LS$7a^`_&y|$+ z+)QcDmC?9LW9Jd=xw6upn&i{ zRXVg-->O3i(WDN-lRZmG2DI!dc+G1>;_81Zmu-!21>(j zfj5WG;0&>A#Vc*QveLHeC~don(zfdc-ArfL;WsaDZewTdTI zt9VMaingj%JgHhmD`g)mtL$JEl#Q#RvR{?w<9NleN{JOKMp>~6Df?A%Wxu*l*{@0} z`&9{LzbdA*^IFO}R7BZ@N~;$2gwoVoD^0z%vJvH1ZRrW6mseJLc@3qPw^UXmeDYy6 za#^BE&xYGAWwMn$1NXi`pY;X3{C=g+oTA^F#dva<8A#C_L_XTjDSi=B`4>$Zue3_m zaS$r=>8xuZ)qcYFqZ`Z$&PC#sa9PbMtI;k6Hz09(2%D~CyS&7kNxX&hwO;1nW-^}1 zIg|4wunz!NypH{agPzzy8j*vx(~lp+ccqO{LiSI~DsEDB~b;)BPRX1w-OE?h;IpU=w;Ha)j{|l9j*@JxFkqIGH6zBh*L@ z9of4NRn^F*q!L#Asd4(Q)&ey?ir#|MC^ij#FLMtr{HF32&k*t)yg|6=1K3G84U0)C z()vC^&?pHpkSM}WN?PLiLWG=5yih(8q;y0T9%@H~ z8TuNniTjWy62Yw!E(iRoG@2X@`ND>)av0w+!BVk`7}>M)fnHwib#OimhkDEc{+tc=#cF6VWEa zVRzmL-`@RD{kQBKR{mq|mP6)rih>b=>HUV-TOwX4Nj>s8bT9n@^g68aW`(-aR2}r* z;@jjfZEU;tTJKd{#hWa@SU9&aI!g+H zvRmpxomguWYKA_gZq1+c_9OGE=|>*Qd~kBz zXf63(0>2aFCa?sy@#QL`$M^}azG5v45E`-;rYHy@ehc?6P)CJ{XC;YY9ztn@+IV#e z1p-rSu12`(Pvi|Wld(}*!MPVJnv4`8=TI~02lSys0MdAt;qOTitWbR(otua=r-h);FSBLwTGf))IMymHSdlz_2Fvu|e7}nM>mS*XU zGD>KMH5=h*>P2cHVjJ^|3 zTz;Whdj4kZm~xZE&p5KcZ3|U?5%Q$jcguW`*p3|Hb4so3k(Ooj=~jqWP!uPb7y)vTz#XLH$b05i5*E^)DvBDy|awncji74g=$eR5CV)tsv0u zCcGju1d3bWHvF^kE7F|Mn7+)+3twN9)aWI|Q>p56LU7?8d86Kj!=wjQWi~^?HDu5S zuUbleNvBrmj&xy4gu)Ey1|;LH0XstuypC*1wE1wJyfJAaTrH)Je5c?#q{PINa^GgO zHfjXAs1T8p<&DG;Ym+Lkdb&;jEPeh>`h4geh9NbQ7n_4>$^7!o9OX%@FfALN5~~?d z@-vDY;*MTI^~PZjVrD6&mo<8j(3)_gPs~9oMm18)`em_?<=~4KV%76-G3JrC>~J=o z^D+X6WkSvz*x7T?>r7L6(@dpDi3TO78Y4&}d6~4M|G}>t&v~JltZQ)umr0&dUPhu_ zKzbef=Vt!51?S)?-Gk=`Rti9o#f0o+L>di-QRKH-^?HgYl)S5ISz4m>OEJKPr< z)Fnho!J*b-(#7O=@KW_7|8h`6(mLhNpj!CO3^iJ*L@#_D+pK-FeUVoBC;a@$$$K@j@NeLE7Rqu*e(5rl;31qU?eCK4 zYGjxf41_L*M2c-y_4Lrr=yAer*MKTLk-9Vc|4=EV#uY`OslMCLEDqXfbeo0prD^e zW1J85qrxw8ADUqe$EUsxd$HKdjhw^p?zjob4(1E$`5Lzd52>7_epGp6wYm+8m}4+h zHA<~g@+4mwxW@thN-qPFtl&shk}1%kpxG|DmwK1HLL4M-WIiVpF8ubr`E1mq@oSE3 z)V|^*Vg%?3rOw5#z2YNPN6ObE`HQroV%`JUKNT$fgrZ7%e_^KM%dSQ_WUtC?k#r1i zn0E&oDjjJAqRgn=^#WC71Uj1?-YSS2$BTd zyG|k!z$?^{!Jm=T7Kuhiq?_cWq(pM`r>_@^q@)2Yy&b8%@1%>_I~XbNOm9LFJuEyr znbNXo>k?+rMYU#w?y3$A+`m`3nshW_MNlmSNyRdJzZj9S{LQl8xXHLAV~EUPN*`$U z5t#rM=2^T-2bf#3sa3lw0?)F7_W?pJ{7b(k-#3xF;_5%Y`6T;4CA={2Gsy3PV7gB}Rl~j`%-(&Rm+z&-cpOq^CHj9G6hZ6Epfcp0$!mxi_m0#V(x^yA>rk?VXb;Q>NU+)8iDVe+ z6GQYUYr>XTqPH8GVkl6>f|HR&R8YE&LA7O5zmR?^;t1!F9%jhKpx>v}q|Ne0D1H?k=&ht|(o=F|9HSLoGEgg1JIdIGB4kU0qIc3&@{mJlVce-FnTwFn zh_Ljx|I54dUe3tnUKnHy&-f%M!@ZR1t8_0H6!B$bh0Mk*RPtC%u(8_^e=v6bFz zjMGM3!{1{>I%Av;X>92){_rkiewm}gui;T3@|`M)TIEBzvykh6ZupywR#unPbUz-v zk&z1CQY{UtnITFaQ1_w-sEel*^jgEJ1{y|dA=L28e^|v5i&rYzoBSI0a%Y^^h$+@~ z^Ep%!@-)`_r~pRUh&HRV|4_tC{|Z)QErq#OM0={kw(-AuF9cSrG*n^ag(u3k=R0c zk&8syyd9p073}V?2&q0#>Y={cQZxib+7{mY}oO78{bPW8%^-sqX+ zJ0XV6MQMuMt0SCCNV`H7MnC0*fy#7@=XPA-U3!HKms^C}u`W z|1;aOfsL#)lOu=X6~o42^fg9rY>ZXui6iNv#y@BwBm0Ac@hiG%y5L_X9&FGAritJFT(+Xr|3f=eB}l3&H9&> zAjTSh;SYnmEvkQWvSKh|z9GG?q&`Ac;czaQZth)YaC*3PWQ=9>y9OX731))%Pd~yJ z>0`9?D(1)(;v?zHv*ZAUkm7!+uW0nk$eB8M>$MaQaggy(juCaM!qV%-Mhf*-SOBmKm{8F3GaTtKR8LF^PNGS(PMUH3FcxO{y2de+10s5b3^2?G(%w*gh|#C# zP9N(C=Udhaj-fl7aVIERl&Nlyhv(#7a^_aI})*Lap-m*2_#AxWe7!0bcAz%t!1k9ZNzm2V;`EhU1B zFEWelG$mK3;^}a{tN~QEm~>zvE;DL_uQ5d)cf%ng9U^1PeK;rcF8$fyB$Hm5l4b7k z(o;o7G<2jK5qU(u4c$j)D4{d`$!uK)Z1HUxF)FLX1{P7QuayZ6 z#c)+dG1*<4n-#$|S;1UCyyLYr>v5kZ-t+8HEyrrwS(ZmxHM@zmz?)g^+Ld*#2Q2;7 zD$-%B4c%r*BIg!r<+7EP%O#oJEX5h6)-Ok^^~*N3emMv0m&>z0S}aqJ|5wLG5CV#TH~0u%kP8Y14M7D(^JtSMC1can z#7VSiCexXw&uKfIHtmo0Pk!`A+UayU{gauH^f`TJy1uo&fXcM&;k)~sd(J**@BKaY zxwF1?T$!-!mI)jcetE9&%NfEi$An+@_cvddx;=!Yt<#v%HI_Y|8;&B((Bkp_L1TR$eN!a*=S# zcLhgF6Mp`PR!d{T&wqx!E?^6m zIncwb<0bqx$58PLxr$!OZwwV*E|!Bi(%e(R#+&|@kQ2bL@q`<*#HCwKy0uT(cqeRp zT-bOgY1H7+Ur8^Cf9HjkAC=|}2rWM-wETedZ&3O-ApJWl{d+?C zH!QULMrq-bLd!oQT^x}vp5r~Xa@38_VK*(ajrVDM4(a53=-?e1t3xiwX+P`6BZ;Sl#&7JD~)&_!#tT=qVmo#1}UXg{L-4f{-Tk1;>26Z6AbTKh5XG5&{7i~r$n zvP2x`9%F&{lvp5EDC^^>JL!hG-xwk85qkfWEa$Y)`*ET7oouEXa3ol@%S56+I>^IwuVOR`(0{Yu=S*&mR$z|AhN3%Sj>mhlJ!m zAte7vA^C^IdXX*Gi(AEdktuBdn6Uj$c`tp+dpYVpbRV&0W5akrY#8gshVh`-Fe;S= zut97XRbs<>XE%kS?-6*jVNS^i0EMIGzgv7M|GJNOn|Cw`1JG@zYz zW621KC4=uQN8DwJCF2&cWGoO%#%*HB$P-J(?PAGTES8KVV#z2JOU6>MWZWT^jAdfU zC=p9WsaP^riX~%}STfd#CF4G^WZW;7j7?(6s1{2`jaV`^izQqld&2lJ zwkZ#ySD8igl?`!5`9<@T6LCg45qp(u)Q`9D7SA;%gJWXSs8y~+ukw!im3MSZo-{5` zdRU%xKzS1p@$2!tdGWjTC``S&$6WxcA?PX_g`#$7)*>!M#JJxuauyfa4ll_N#QJIkJ?u{o< z?Pb!Asl6r-COT1{^fFnt63xk!EJqvbUfzRF*1cSXF4nzVjb7HhT!R7Dy}TDESvT3= zk;Lhg>`7ug*>AFsw}ofD)Yx(w`3a7)$y`Z`Z}T{MbLstKtj%X6vy8iJj-xRh*^#$N z+Ak*HNSju2N8IZ63<{3D$wJAck|9Z(J8+gwF5-M{#v8$S@Ls5jWoM`_ zbSd<9czL)o+!`JVUkrag{JTgrQWj~BT!_3A`7o_8?U(7x)89?+;{W^6v}j)Ru4rYn zG5Q)?vlgT5-J4{PIf0XSf?8)Vm|2JRKjciF* zX(4ao^LP%=;|q9!Hu54Z6Bd`a1cFDu`05?{tE zypONo5?-ZEf^l)0U&?eoHTt$<@XS)Bj42h2%MUT~ZsOXnhEaD5qwO|DS>t)JwH6 zwG+GDA92?G3lDH>7xuV6;hg(7)^n?#@9h3F#@&DLAh#N@*Zl?O-6yEzRwLTnUvYsv zSsQpq9e9T_$@RPW7ytW(t;?WwO@`JZF==E#JFpy2gev&$o!34c{f=cZEDn`&Z|+ph z_8YxY3;(U%4vnGLZyTvN|BX2;hu11*Ypb}jsN&4k7<*`Mx{tAMA^No#du2J6F}4rdZA$YIj4}eJwt`@Qz4@4H72_M5 z$tN~-1l!2qOmE{1)o~tnaJ+YMTpRf2_JHkV^Lw)?Z&wJGqe`O`p@%49Z>p$k-lnTu zD98@%$;zH1LwYk#ci?bf}Blh&Y>&nqtk9&#Qb@hf)JL{1>)P>=jig8(` zw0LsHNZNdWUdQIfF@oBJPO>;WOv_4nZyR&X7i|XAaNm}Vo`34Gc{RHMHLQ{COwW{W zzv#O5bq;Oyao(x5QAHo-ukXEjlUu>L^M2ht`UppX*7{_^BnBn24ee{de zh>0n0{IdDr86J2A@6r2U^S-uzxRK${=bn3SY%G4>pC;%@C#F2-2kflnp?Ys=BjNA5 zgzG?yL6&=dg=;K}9$#a`uxOFWLN`0G=$j=!@BOyrxSOB0^|txrX|J+IEk}5~`IREK z96wT3#LW zOfc)AM*_VO=!rlt1bQIQ`+%MYC}W$3g*NYCtbB9WdaC6#`e3`7dCJrn5HroS;f%#y@w?W4Dtaqf2Q>zUdYP%AUJI-lLgO-QG~SvM~; v+q}2P_oS{6Fya=|0-Ep$n$d#Y*h7D@7j4wq|F@2~iFZ+B;O)dTeeQn&-=Vf+ literal 0 HcmV?d00001 diff --git a/sample/src/main/res/layout/activity_default_calendar.xml b/sample/src/main/res/layout/activity_default_calendar.xml index 9ae1908..e3521c7 100644 --- a/sample/src/main/res/layout/activity_default_calendar.xml +++ b/sample/src/main/res/layout/activity_default_calendar.xml @@ -2,6 +2,7 @@ diff --git a/sample/src/main/res/values/styles.xml b/sample/src/main/res/values/styles.xml index 4e88d0a..13df88f 100644 --- a/sample/src/main/res/values/styles.xml +++ b/sample/src/main/res/values/styles.xml @@ -4,4 +4,27 @@ @color/colorPrimaryDark @color/colorAccent + + + + + + + + From b05b618e9c3eba52b4b531b40ef309c8769a9ff9 Mon Sep 17 00:00:00 2001 From: Mehedi Date: Wed, 26 Dec 2018 19:20:32 +0600 Subject: [PATCH 2/5] can show a horizontal divider under the name of the month by setting `monthTitleBottomDivVisible` to true. can hide the lines on both side of name of the month by setting `monthHorizontalLinesVisible` to false. can change the day of week name format to be `EEE` i.e `Mon` by choosing the `medium` format in attribute `weekdayFormat` --- .../adapter/viewholder/DayOfWeekHolder.java | 4 ++ .../adapter/viewholder/MonthHolder.java | 11 ++++- .../cosmocalendar/dialog/CalendarDialog.java | 30 ++++++++++++ .../cosmocalendar/model/DayOfWeek.java | 18 +++++++ .../settings/SettingsManager.java | 30 ++++++++++++ .../appearance/AppearanceInterface.java | 10 ++++ .../settings/appearance/AppearanceModel.java | 29 ++++++++++++ .../cosmocalendar/view/CalendarView.java | 47 +++++++++++++++++++ .../src/main/res/layout/view_month.xml | 20 ++++++-- cosmocalendar/src/main/res/values/attrs.xml | 8 ++++ .../sample/DefaultCalendarActivity.java | 4 +- .../res/layout/activity_default_calendar.xml | 3 ++ 12 files changed, 207 insertions(+), 7 deletions(-) diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayOfWeekHolder.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayOfWeekHolder.java index 2676825..16f53bf 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayOfWeekHolder.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/DayOfWeekHolder.java @@ -26,6 +26,10 @@ public DayOfWeekHolder(View itemView, CalendarView calendarView) { } public void bind(Day day) { + if(calendarView.getWeekDayFormat() != null) { + mDayOfWeekFormatter = new SimpleDateFormat(calendarView.getWeekDayFormat(), Locale.getDefault()); + } + tvDay.setText(mDayOfWeekFormatter.format(day.getCalendar().getTime())); tvDay.setTextColor(calendarView.getWeekDayTitleTextColor()); } diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java index 96063db..5850b64 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java @@ -18,6 +18,7 @@ public class MonthHolder extends RecyclerView.ViewHolder { private TextView tvMonthName; private View viewLeftLine; private View viewRightLine; + private View viewHorizontalDivLine; private MonthView monthView; private SettingsManager appearanceModel; @@ -28,6 +29,7 @@ public MonthHolder(View itemView, SettingsManager appearanceModel) { tvMonthName = (TextView) itemView.findViewById(R.id.tv_month_name); viewLeftLine = itemView.findViewById(R.id.view_left_line); viewRightLine = itemView.findViewById(R.id.view_right_line); + viewHorizontalDivLine = itemView.findViewById(R.id.view_div_line); this.appearanceModel = appearanceModel; if(appearanceModel.getMonthTextAppearance() != -1) { @@ -43,8 +45,13 @@ public void bind(Month month) { tvMonthName.setText(month.getMonthName()); tvMonthName.setTextColor(appearanceModel.getMonthTextColor()); - viewLeftLine.setVisibility(appearanceModel.getCalendarOrientation() == OrientationHelper.HORIZONTAL ? View.INVISIBLE : View.VISIBLE); - viewRightLine.setVisibility(appearanceModel.getCalendarOrientation() == OrientationHelper.HORIZONTAL ? View.INVISIBLE : View.VISIBLE); + boolean isLineVisible = appearanceModel.getCalendarOrientation() == OrientationHelper.VERTICAL && appearanceModel.isMonthHorizontalLinesVisible(); + boolean isTitleDivVisible = appearanceModel.isMonthTitleBottomDivVisible(); + + viewLeftLine.setVisibility(isLineVisible ? View.VISIBLE : View.INVISIBLE); + viewRightLine.setVisibility(isLineVisible ? View.VISIBLE : View.INVISIBLE); + viewHorizontalDivLine.setVisibility(isTitleDivVisible ? View.VISIBLE : View.GONE); + llMonthHeader.setBackgroundResource(appearanceModel.getCalendarOrientation() == OrientationHelper.HORIZONTAL ? R.drawable.border_top_bottom : 0); monthView.initAdapter(month); diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java index 0115344..bc837d6 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java @@ -373,6 +373,36 @@ public void setDayTextAppearance(int dayTextAppearance) { calendarView.setDayTextAppearance(dayTextAppearance); } + @Override + public boolean isMonthHorizontalLinesVisible() { + return calendarView.isMonthHorizontalLinesVisible(); + } + + @Override + public void setMonthHorizontalLinesVisible(boolean monthHorizontalLinesVisible) { + calendarView.setMonthHorizontalLinesVisible(monthHorizontalLinesVisible); + } + + @Override + public boolean isMonthTitleBottomDivVisible() { + return calendarView.isMonthTitleBottomDivVisible(); + } + + @Override + public void setMonthTitleBottomDivVisible(boolean monthTitleBottomDivVisible) { + calendarView.setMonthTitleBottomDivVisible(monthTitleBottomDivVisible); + } + + @Override + public String getWeekDayFormat() { + return calendarView.getWeekDayFormat(); + } + + @Override + public void setWeekDayFormat(String weekDayFormat) { + calendarView.setWeekDayFormat(weekDayFormat); + } + @Override public Set getDisabledDays() { return calendarView.getDisabledDays(); diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/model/DayOfWeek.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/model/DayOfWeek.java index 2366193..6ffc6c8 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/model/DayOfWeek.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/model/DayOfWeek.java @@ -1,8 +1,26 @@ package com.applikeysolutions.cosmocalendar.model; +import com.applikeysolutions.cosmocalendar.utils.Constants; + import java.util.Date; public class DayOfWeek extends Day { + public enum WeekdayFormat { + SHORT, + MEDIUM; + + public String getFormat() { + switch (this) { + case SHORT: + return "E"; + + case MEDIUM: + return "EEE"; + } + + return Constants.DAY_NAME_FORMAT; + } + } public DayOfWeek(Date date) { super(date); diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java index 5d35717..ec6ce36 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java @@ -312,6 +312,36 @@ public void setDayTextAppearance(int dayTextAppearance) { appearanceModel.setDayTextAppearance(dayTextAppearance); } + @Override + public boolean isMonthHorizontalLinesVisible() { + return appearanceModel.isMonthHorizontalLinesVisible(); + } + + @Override + public void setMonthHorizontalLinesVisible(boolean monthHorizontalLinesVisible) { + appearanceModel.setMonthHorizontalLinesVisible(monthHorizontalLinesVisible); + } + + @Override + public boolean isMonthTitleBottomDivVisible() { + return appearanceModel.isMonthTitleBottomDivVisible(); + } + + @Override + public void setMonthTitleBottomDivVisible(boolean monthTitleBottomDivVisible) { + appearanceModel.setMonthTitleBottomDivVisible(monthTitleBottomDivVisible); + } + + @Override + public String getWeekDayFormat() { + return appearanceModel.getWeekDayFormat(); + } + + @Override + public void setWeekDayFormat(String weekDayFormat) { + appearanceModel.setWeekDayFormat(weekDayFormat); + } + @Override public Set getDisabledDays() { return calendarListsModel.getDisabledDays(); diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java index 9224534..cf030c8 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java @@ -103,4 +103,14 @@ public interface AppearanceInterface { int getDayTextAppearance(); void setDayTextAppearance(int dayTextAppearance); + + boolean isMonthHorizontalLinesVisible(); + void setMonthHorizontalLinesVisible(boolean monthHorizontalLinesVisible); + + boolean isMonthTitleBottomDivVisible(); + + void setMonthTitleBottomDivVisible(boolean monthTitleBottomDivVisible); + + String getWeekDayFormat(); + void setWeekDayFormat(String weekDayFormat); } diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java index 1251220..0945ffc 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java @@ -68,6 +68,11 @@ public class AppearanceModel implements AppearanceInterface { private @StyleRes int weekDayTextAppearance; private @StyleRes int dayTextAppearance; + private boolean monthHorizontalLinesVisible; + private boolean monthTitleBottomDivVisible; + + private String weekDayFormat; + /** * Orientation of calendar * possible values: @@ -106,6 +111,14 @@ public void setDayTextAppearance(int dayTextAppearance) { this.dayTextAppearance = dayTextAppearance; } + public boolean isMonthHorizontalLinesVisible() { + return monthHorizontalLinesVisible; + } + + public void setMonthHorizontalLinesVisible(boolean monthHorizontalLinesVisible) { + this.monthHorizontalLinesVisible = monthHorizontalLinesVisible; + } + @Override public int getCalendarBackgroundColor() { return calendarBackgroundColor; @@ -335,4 +348,20 @@ public void setShowDaysOfWeek(boolean showDaysOfWeek) { public void setShowDaysOfWeekTitle(boolean showDaysOfWeekTitle) { this.showDaysOfWeekTitle = showDaysOfWeekTitle; } + + public boolean isMonthTitleBottomDivVisible() { + return monthTitleBottomDivVisible; + } + + public void setMonthTitleBottomDivVisible(boolean monthTitleBottomDivVisible) { + this.monthTitleBottomDivVisible = monthTitleBottomDivVisible; + } + + public String getWeekDayFormat() { + return weekDayFormat; + } + + public void setWeekDayFormat(String weekDayFormat) { + this.weekDayFormat = weekDayFormat; + } } diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java index 60b1484..19f7f9e 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java @@ -27,6 +27,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; +import com.applikeysolutions.cosmocalendar.model.DayOfWeek; import com.applikeysolutions.cosmocalendar.selection.NoneSelectionManager; import com.applikeysolutions.cosmocalendar.FetchMonthsAsyncTask; import com.applikeysolutions.cosmocalendar.adapter.MonthAdapter; @@ -178,6 +179,11 @@ private void handleAttributes(TypedArray typedArray) { int weekDayTextAppearance = typedArray.getResourceId(R.styleable.CalendarView_weekDayTextAppearance, -1); int dayTextAppearance = typedArray.getResourceId(R.styleable.CalendarView_dayTextAppearance, -1); + boolean horizontalLinesVisible = typedArray.getBoolean(R.styleable.CalendarView_monthHorizontalLinesVisible, true); + boolean monthDivVisible = typedArray.getBoolean(R.styleable.CalendarView_monthTitleBottomDivVisible, false); + + int weekdayFormat = typedArray.getInt(R.styleable.CalendarView_weekdayFormat, -1); + setBackgroundColor(calendarBackgroundColor); settingsManager.setCalendarBackgroundColor(calendarBackgroundColor); settingsManager.setMonthTextColor(monthTextColor); @@ -208,6 +214,14 @@ private void handleAttributes(TypedArray typedArray) { settingsManager.setMonthTextAppearance(monthTextAppearance); settingsManager.setWeekDayTextAppearance(weekDayTextAppearance); settingsManager.setDayTextAppearance(dayTextAppearance); + + settingsManager.setMonthHorizontalLinesVisible(horizontalLinesVisible); + settingsManager.setMonthTitleBottomDivVisible(monthDivVisible); + + if(weekdayFormat != -1) { + DayOfWeek.WeekdayFormat format = DayOfWeek.WeekdayFormat.values()[weekdayFormat]; + settingsManager.setWeekDayFormat(format.getFormat()); + } } private void handleWeekendDaysAttributes(TypedArray typedArray) { @@ -1070,6 +1084,39 @@ public void setDayTextAppearance(int dayTextAppearance) { update(); } + @Override + public boolean isMonthHorizontalLinesVisible() { + return settingsManager.isMonthHorizontalLinesVisible(); + } + + @Override + public void setMonthHorizontalLinesVisible(boolean monthHorizontalLinesVisible) { + settingsManager.isMonthHorizontalLinesVisible(); + update(); + } + + @Override + public boolean isMonthTitleBottomDivVisible() { + return settingsManager.isMonthTitleBottomDivVisible(); + } + + @Override + public void setMonthTitleBottomDivVisible(boolean monthTitleBottomDivVisible) { + settingsManager.setMonthTitleBottomDivVisible(monthTitleBottomDivVisible); + update(); + } + + @Override + public String getWeekDayFormat() { + return settingsManager.getWeekDayFormat(); + } + + @Override + public void setWeekDayFormat(String weekDayFormat) { + settingsManager.setWeekDayFormat(weekDayFormat); + update(); + } + @Override public int getFirstDayOfWeek() { return settingsManager.getFirstDayOfWeek(); diff --git a/cosmocalendar/src/main/res/layout/view_month.xml b/cosmocalendar/src/main/res/layout/view_month.xml index 5cdc203..13e395a 100644 --- a/cosmocalendar/src/main/res/layout/view_month.xml +++ b/cosmocalendar/src/main/res/layout/view_month.xml @@ -3,12 +3,14 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical"> + android:orientation="vertical" + android:paddingBottom="@dimen/space_1x" + android:paddingTop="@dimen/space_1x"> + + + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/space_1x"/> diff --git a/cosmocalendar/src/main/res/values/attrs.xml b/cosmocalendar/src/main/res/values/attrs.xml index 44555fb..c79bc9f 100644 --- a/cosmocalendar/src/main/res/values/attrs.xml +++ b/cosmocalendar/src/main/res/values/attrs.xml @@ -68,5 +68,13 @@ + + + + + + + + \ No newline at end of file diff --git a/sample/src/main/java/com/applikeysolutions/cosmocalendar/sample/DefaultCalendarActivity.java b/sample/src/main/java/com/applikeysolutions/cosmocalendar/sample/DefaultCalendarActivity.java index f32a9a4..944cfa4 100644 --- a/sample/src/main/java/com/applikeysolutions/cosmocalendar/sample/DefaultCalendarActivity.java +++ b/sample/src/main/java/com/applikeysolutions/cosmocalendar/sample/DefaultCalendarActivity.java @@ -54,8 +54,8 @@ private void initViews() { ((RadioGroup) findViewById(R.id.rg_orientation)).setOnCheckedChangeListener(this); ((RadioGroup) findViewById(R.id.rg_selection_type)).setOnCheckedChangeListener(this); - //calendarView.setShowDaysOfWeekTitle(false); - //calendarView.setShowDaysOfWeek(true); + calendarView.setShowDaysOfWeekTitle(false); + calendarView.setShowDaysOfWeek(true); } private void createCriterias() { diff --git a/sample/src/main/res/layout/activity_default_calendar.xml b/sample/src/main/res/layout/activity_default_calendar.xml index e3521c7..b8de3e9 100644 --- a/sample/src/main/res/layout/activity_default_calendar.xml +++ b/sample/src/main/res/layout/activity_default_calendar.xml @@ -18,6 +18,9 @@ app:dayTextAppearance = "@style/DayTextAppearance" app:monthTextAppearance = "@style/MonthTextAppearance" app:weekDayTextAppearance = "@style/WeekdayTextAppearance" + app:monthHorizontalLinesVisible="false" + app:monthTitleBottomDivVisible="true" + app:weekdayFormat="medium" android:layout_above="@+id/ll_settings" android:layout_below="@id/toolbar"/> From 21a9b3617c451be6740004c2a62e5bf94ce8c032 Mon Sep 17 00:00:00 2001 From: Mehedi Date: Wed, 26 Dec 2018 19:37:40 +0600 Subject: [PATCH 3/5] fix for #30 --- .../cosmocalendar/utils/CalendarUtils.java | 6 ++++- .../customviews/CircleAnimationTextView.java | 25 +++++++++++++++---- .../res/layout/activity_default_calendar.xml | 1 + 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/utils/CalendarUtils.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/utils/CalendarUtils.java index 0cc63c3..415b342 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/utils/CalendarUtils.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/utils/CalendarUtils.java @@ -141,7 +141,11 @@ public static String getYearNameTitle(Day day) { * * @return */ - public static int getCircleWidth(Context context) { + public static int getCircleWidth(Context context, Integer parentWidth) { + if(parentWidth != null) { + return parentWidth / Constants.DAYS_IN_WEEK; + } + return getDisplayWidth(context) / Constants.DAYS_IN_WEEK; } diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/customviews/CircleAnimationTextView.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/customviews/CircleAnimationTextView.java index 92f4106..6f67b5a 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/customviews/CircleAnimationTextView.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/customviews/CircleAnimationTextView.java @@ -59,12 +59,21 @@ public CircleAnimationTextView(Context context, AttributeSet attrs, int defStyle super(context, attrs, defStyleAttr); } + public Integer getCalendarWidth() { + if(calendarView != null) { + return calendarView.getWidth() - calendarView.getPaddingStart() - calendarView.getPaddingEnd(); + } + + return null; + } + //Square view @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (MeasureSpec.getMode(widthMeasureSpec) == MeasureSpec.EXACTLY) { //For making all day views same height (ex. screen width 1080 and we have days with width 154/154/155/154/154/155/154) - super.onMeasure(widthMeasureSpec, CalendarUtils.getCircleWidth(getContext()) + MeasureSpec.EXACTLY); + int circleWidth = CalendarUtils.getCircleWidth(getContext(), getCalendarWidth()); + super.onMeasure(widthMeasureSpec, circleWidth + MeasureSpec.EXACTLY); } else { super.onMeasure(widthMeasureSpec, widthMeasureSpec); } @@ -301,8 +310,11 @@ private void clearVariables() { public void showAsCircle(int circleColor) { this.circleColor = circleColor; animationProgress = 100; - setWidth(CalendarUtils.getCircleWidth(getContext())); - setHeight(CalendarUtils.getCircleWidth(getContext())); + + int circleWidth = CalendarUtils.getCircleWidth(getContext(), getCalendarWidth()); + + setWidth(circleWidth); + setHeight(circleWidth); requestLayout(); } @@ -343,8 +355,11 @@ public void showAsRange(CalendarView calendarView) { clearVariables(); this.calendarView = calendarView; selectionState = SelectionState.RANGE_DAY; - setWidth(CalendarUtils.getCircleWidth(getContext()) / 2); - setHeight(CalendarUtils.getCircleWidth(getContext())); + + int circleWidth = CalendarUtils.getCircleWidth(getContext(), getCalendarWidth()); + + setWidth(circleWidth / 2); + setHeight(circleWidth); requestLayout(); } diff --git a/sample/src/main/res/layout/activity_default_calendar.xml b/sample/src/main/res/layout/activity_default_calendar.xml index b8de3e9..7aa1812 100644 --- a/sample/src/main/res/layout/activity_default_calendar.xml +++ b/sample/src/main/res/layout/activity_default_calendar.xml @@ -15,6 +15,7 @@ android:id="@+id/calendar_view" android:layout_width="match_parent" android:layout_height="wrap_content" + android:padding="@dimen/space_2x" app:dayTextAppearance = "@style/DayTextAppearance" app:monthTextAppearance = "@style/MonthTextAppearance" app:weekDayTextAppearance = "@style/WeekdayTextAppearance" From a6acdcf2a8e03fc447fd12089a7cb3f845e26913 Mon Sep 17 00:00:00 2001 From: Mehedi Date: Wed, 26 Dec 2018 21:59:39 +0600 Subject: [PATCH 4/5] added attribute `borderColor` to change divider line and border colors. For example: `app:borderColor="@color/colorAccent"` --- .../adapter/viewholder/MonthHolder.java | 4 ++++ .../cosmocalendar/dialog/CalendarDialog.java | 10 +++++++++ .../settings/SettingsManager.java | 10 +++++++++ .../appearance/AppearanceInterface.java | 3 +++ .../settings/appearance/AppearanceModel.java | 10 +++++++++ .../cosmocalendar/view/CalendarView.java | 22 +++++++++++++++++++ cosmocalendar/src/main/res/values/attrs.xml | 2 ++ 7 files changed, 61 insertions(+) diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java index 5850b64..b976581 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/adapter/viewholder/MonthHolder.java @@ -45,6 +45,10 @@ public void bind(Month month) { tvMonthName.setText(month.getMonthName()); tvMonthName.setTextColor(appearanceModel.getMonthTextColor()); + viewLeftLine.setBackgroundColor(appearanceModel.getBorderColor()); + viewRightLine.setBackgroundColor(appearanceModel.getBorderColor()); + viewHorizontalDivLine.setBackgroundColor(appearanceModel.getBorderColor()); + boolean isLineVisible = appearanceModel.getCalendarOrientation() == OrientationHelper.VERTICAL && appearanceModel.isMonthHorizontalLinesVisible(); boolean isTitleDivVisible = appearanceModel.isMonthTitleBottomDivVisible(); diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java index bc837d6..5e435b4 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/dialog/CalendarDialog.java @@ -403,6 +403,16 @@ public void setWeekDayFormat(String weekDayFormat) { calendarView.setWeekDayFormat(weekDayFormat); } + @Override + public int getBorderColor() { + return calendarView.getBorderColor(); + } + + @Override + public void setBorderColor(int borderColor) { + calendarView.setBorderColor(borderColor); + } + @Override public Set getDisabledDays() { return calendarView.getDisabledDays(); diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java index ec6ce36..04e4519 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/SettingsManager.java @@ -342,6 +342,16 @@ public void setWeekDayFormat(String weekDayFormat) { appearanceModel.setWeekDayFormat(weekDayFormat); } + @Override + public int getBorderColor() { + return appearanceModel.getBorderColor(); + } + + @Override + public void setBorderColor(int borderColor) { + appearanceModel.setBorderColor(borderColor); + } + @Override public Set getDisabledDays() { return calendarListsModel.getDisabledDays(); diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java index cf030c8..24ad609 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceInterface.java @@ -113,4 +113,7 @@ public interface AppearanceInterface { String getWeekDayFormat(); void setWeekDayFormat(String weekDayFormat); + + int getBorderColor(); + void setBorderColor(int borderColor); } diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java index 0945ffc..70276a7 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/settings/appearance/AppearanceModel.java @@ -73,6 +73,8 @@ public class AppearanceModel implements AppearanceInterface { private String weekDayFormat; + private int borderColor; + /** * Orientation of calendar * possible values: @@ -364,4 +366,12 @@ public String getWeekDayFormat() { public void setWeekDayFormat(String weekDayFormat) { this.weekDayFormat = weekDayFormat; } + + public int getBorderColor() { + return borderColor; + } + + public void setBorderColor(int borderColor) { + this.borderColor = borderColor; + } } diff --git a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java index 19f7f9e..bad031b 100644 --- a/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java +++ b/cosmocalendar/src/main/java/com/applikeysolutions/cosmocalendar/view/CalendarView.java @@ -2,7 +2,10 @@ import android.annotation.TargetApi; import android.content.Context; +import android.content.res.Resources; import android.content.res.TypedArray; +import android.graphics.drawable.GradientDrawable; +import android.graphics.drawable.LayerDrawable; import android.os.AsyncTask; import android.os.Build; import android.support.annotation.AttrRes; @@ -17,6 +20,7 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.SimpleItemAnimator; import android.util.AttributeSet; +import android.util.TypedValue; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -184,6 +188,8 @@ private void handleAttributes(TypedArray typedArray) { int weekdayFormat = typedArray.getInt(R.styleable.CalendarView_weekdayFormat, -1); + int borderColor = typedArray.getColor(R.styleable.CalendarView_borderColor, getResources().getColor(R.color.default_border_color)); + setBackgroundColor(calendarBackgroundColor); settingsManager.setCalendarBackgroundColor(calendarBackgroundColor); settingsManager.setMonthTextColor(monthTextColor); @@ -218,6 +224,8 @@ private void handleAttributes(TypedArray typedArray) { settingsManager.setMonthHorizontalLinesVisible(horizontalLinesVisible); settingsManager.setMonthTitleBottomDivVisible(monthDivVisible); + settingsManager.setBorderColor(borderColor); + if(weekdayFormat != -1) { DayOfWeek.WeekdayFormat format = DayOfWeek.WeekdayFormat.values()[weekdayFormat]; settingsManager.setWeekDayFormat(format.getFormat()); @@ -314,6 +322,9 @@ private void createDaysOfWeekTitle() { //adding borders llDaysOfWeekTitles.setBackgroundResource(R.drawable.border_top_bottom); + LayerDrawable background = (LayerDrawable) llDaysOfWeekTitles.getBackground().mutate(); + ((GradientDrawable)background.getDrawable(0)).setStroke((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, getResources().getDisplayMetrics()), settingsManager.getBorderColor()); + if (!isTitleAlreadyAdded) { addView(llDaysOfWeekTitles); } @@ -1117,6 +1128,17 @@ public void setWeekDayFormat(String weekDayFormat) { update(); } + @Override + public int getBorderColor() { + return settingsManager.getBorderColor(); + } + + @Override + public void setBorderColor(int borderColor) { + settingsManager.setBorderColor(borderColor); + update(); + } + @Override public int getFirstDayOfWeek() { return settingsManager.getFirstDayOfWeek(); diff --git a/cosmocalendar/src/main/res/values/attrs.xml b/cosmocalendar/src/main/res/values/attrs.xml index c79bc9f..060a607 100644 --- a/cosmocalendar/src/main/res/values/attrs.xml +++ b/cosmocalendar/src/main/res/values/attrs.xml @@ -76,5 +76,7 @@ + + \ No newline at end of file From f6747f6a2bdf6a58680265d3442c596174b96663 Mon Sep 17 00:00:00 2001 From: Mehedi Date: Wed, 2 Jan 2019 13:45:40 +0600 Subject: [PATCH 5/5] removed hardcoded `textAllCaps` from month title, use `capitalise` in textappearance. --- cosmocalendar/src/main/res/layout/view_month.xml | 1 - sample/src/main/res/values/styles.xml | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cosmocalendar/src/main/res/layout/view_month.xml b/cosmocalendar/src/main/res/layout/view_month.xml index 13e395a..37301e5 100644 --- a/cosmocalendar/src/main/res/layout/view_month.xml +++ b/cosmocalendar/src/main/res/layout/view_month.xml @@ -29,7 +29,6 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:letterSpacing="0.1" - android:textAllCaps="true" android:textSize="@dimen/text_big" tools:text="April 2015" /> diff --git a/sample/src/main/res/values/styles.xml b/sample/src/main/res/values/styles.xml index 13df88f..a81609c 100644 --- a/sample/src/main/res/values/styles.xml +++ b/sample/src/main/res/values/styles.xml @@ -23,6 +23,8 @@ @font/circularstd_family 20sp bold + true + characters 1.20