Skip to content

Commit

Permalink
Merge pull request #36 from tobiasschuerg/removed_calendar
Browse files Browse the repository at this point in the history
Replaced all usages of Calendar by LocalDate
  • Loading branch information
Shrikanth Ravi committed Nov 11, 2018
2 parents 664e9b3 + df52f68 commit 9fe51ca
Show file tree
Hide file tree
Showing 8 changed files with 148 additions and 270 deletions.
1 change: 1 addition & 0 deletions app/build.gradle
Expand Up @@ -30,6 +30,7 @@ dependencies {
implementation project(':collapsiblecalendarview2')
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
implementation 'com.jakewharton.threetenabp:threetenabp:1.1.1'

testImplementation 'junit:junit:4.12'

Expand Down
Expand Up @@ -3,11 +3,13 @@
import android.graphics.Color;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import com.shrikanthravi.collapsiblecalendarview.widget.CollapsibleCalendar;

import java.util.Calendar;
import org.threeten.bp.LocalDate;

import java.util.GregorianCalendar;


Expand All @@ -21,12 +23,12 @@ protected void onCreate(Bundle savedInstanceState) {
getWindow().setStatusBarColor(getResources().getColor(R.color.google_red));

CollapsibleCalendar collapsibleCalendar = findViewById(R.id.collapsibleCalendarView);
Calendar today=new GregorianCalendar();
collapsibleCalendar.addEventTag(today.get(Calendar.YEAR),today.get(Calendar.MONTH),today.get(Calendar.DAY_OF_MONTH));
today.add(Calendar.DATE,1);
collapsibleCalendar.addEventTag(today.get(Calendar.YEAR),today.get(Calendar.MONTH),today.get(Calendar.DAY_OF_MONTH),Color.BLUE);
LocalDate today = LocalDate.now();
collapsibleCalendar.addEventTag(today);
LocalDate tomorrow = today.plusDays(1);
collapsibleCalendar.addEventTag(tomorrow, Color.BLUE);

System.out.println("Testing date "+collapsibleCalendar.getSelectedDay().getDay()+"/"+collapsibleCalendar.getSelectedDay().getMonth()+"/"+collapsibleCalendar.getSelectedDay().getYear());
Log.d("Testing date ", collapsibleCalendar.getSelectedDay().toString());
collapsibleCalendar.setCalendarListener(new CollapsibleCalendar.CalendarListener() {
@Override
public void onDaySelect() {
Expand Down
1 change: 1 addition & 0 deletions collapsiblecalendarview2/build.gradle
Expand Up @@ -34,6 +34,7 @@ android {
dependencies {
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.jakewharton.threetenabp:threetenabp:1.1.1'

testImplementation 'junit:junit:4.12'

Expand Down
@@ -1,7 +1,6 @@
package com.shrikanthravi.collapsiblecalendarview.data;

import android.content.Context;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.view.LayoutInflater;
import android.view.View;
Expand All @@ -11,27 +10,31 @@
import com.shrikanthravi.collapsiblecalendarview.R;
import com.shrikanthravi.collapsiblecalendarview.widget.UICalendar;

import org.threeten.bp.DayOfWeek;
import org.threeten.bp.LocalDate;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import static org.threeten.bp.Month.DECEMBER;
import static org.threeten.bp.Month.JANUARY;

/**
* Created by shrikanthravi on 06/03/18.
*/

public class CalendarAdapter {
private int mFirstDayOfWeek = 0;
private Calendar mCal;
private DayOfWeek mFirstDayOfWeek = DayOfWeek.MONDAY;
private LocalDate mCal;
private LayoutInflater mInflater;
private int mEventDotSize= UICalendar.EVENT_DOT_BIG;
private int mEventDotSize = UICalendar.EVENT_DOT_BIG;

List<Day> mItemList = new ArrayList<>();
List<View> mViewList = new ArrayList<>();
List<Event> mEventList = new ArrayList<>();
private List<LocalDate> mItemList = new ArrayList<>();
private List<View> mViewList = new ArrayList<>();
private List<Event> mEventList = new ArrayList<>();

public CalendarAdapter(Context context, Calendar cal) {
this.mCal = (Calendar) cal.clone();
this.mCal.set(Calendar.DAY_OF_MONTH, 1);
public CalendarAdapter(Context context) {
this.mCal = LocalDate.now().withDayOfMonth(1);
mInflater = LayoutInflater.from(context);

refresh();
Expand All @@ -42,22 +45,35 @@ public int getCount() {
return mItemList.size();
}

public Day getItem(int position) {
public LocalDate getItem(int position) {
return mItemList.get(position);
}

public View getView(final int position) {
return mViewList.get(position);
}

public void setFirstDayOfWeek(int firstDayOfWeek) {
public void nextMonth() {
mCal = mCal.plusMonths(1);
}

public void previousMonth() {
mCal = mCal.minusMonths(1);
}

public void setDate(LocalDate date) {
mCal = date;
}

public void setFirstDayOfWeek(DayOfWeek firstDayOfWeek) {
mFirstDayOfWeek = firstDayOfWeek;
}

public void setEventDotSize(int eventDotSize) {
mEventDotSize = eventDotSize;
}

public Calendar getCalendar() {
public LocalDate getCalendar() {
return mCal;
}

Expand All @@ -71,71 +87,69 @@ public void refresh() {
mViewList.clear();

// set calendar
int year = mCal.get(Calendar.YEAR);
int month = mCal.get(Calendar.MONTH);
int year = mCal.getYear();
int month = mCal.getMonthValue();

mCal.set(year, month, 1);
mCal = LocalDate.of(year, month, 1);

int lastDayOfMonth = mCal.getActualMaximum(Calendar.DAY_OF_MONTH);
int firstDayOfWeek = mCal.get(Calendar.DAY_OF_WEEK) - 1;
int lastDayOfMonth = mCal.lengthOfMonth();
DayOfWeek firstDayOfWeek = mCal.getDayOfWeek();

// generate day list
int offset = 0 - (firstDayOfWeek - mFirstDayOfWeek) + 1;
int length = (int) Math.ceil((float) (lastDayOfMonth - offset + 1) / 7) * 7;
int offset = 0 - (firstDayOfWeek.getValue() - mFirstDayOfWeek.getValue());
if (offset > 0) offset += -7;
int length = (int) Math.ceil((float) (lastDayOfMonth - offset) / 7) * 7;
for (int i = offset; i < length + offset; i++) {
int numYear;
int numMonth;
int numDay;

Calendar tempCal = Calendar.getInstance();
if (i <= 0) { // prev month
if (month == 0) {
if (month == JANUARY.getValue()) {
numYear = year - 1;
numMonth = 11;
numMonth = DECEMBER.getValue();
} else {
numYear = year;
numMonth = month - 1;
}
tempCal.set(numYear, numMonth, 1);
numDay = tempCal.getActualMaximum(Calendar.DAY_OF_MONTH) + i;
LocalDate tempCal = LocalDate.of(numYear, numMonth, 1);
numDay = tempCal.lengthOfMonth() + i;
} else if (i > lastDayOfMonth) { // next month
if (month == 11) {
if (month == DECEMBER.getValue()) {
numYear = year + 1;
numMonth = 0;
numMonth = JANUARY.getValue();
} else {
numYear = year;
numMonth = month + 1;
numMonth = month;
}
tempCal.set(numYear, numMonth, 1);
numDay = i - lastDayOfMonth;
} else {
numYear = year;
numMonth = month;
numDay = i;
}

Day day = new Day(numYear, numMonth, numDay);
LocalDate day = LocalDate.of(numYear, numMonth, numDay);
View view;
if(mEventDotSize==UICalendar.EVENT_DOT_SMALL)
view = mInflater.inflate(R.layout.day_layout_small, null);
else
if (mEventDotSize == UICalendar.EVENT_DOT_SMALL) {
view = mInflater.inflate(R.layout.day_layout_small, null);
} else {
view = mInflater.inflate(R.layout.day_layout, null);
}

TextView txtDay = (TextView) view.findViewById(R.id.txt_day);
ImageView imgEventTag = (ImageView) view.findViewById(R.id.img_event_tag);
TextView txtDay = view.findViewById(R.id.txt_day);
ImageView imgEventTag = view.findViewById(R.id.img_event_tag);

txtDay.setText(String.valueOf(day.getDay()));
if (day.getMonth() != mCal.get(Calendar.MONTH)) {
txtDay.setText(String.valueOf(day.getDayOfMonth()));
if (day.getMonth() != mCal.getMonth()) {
txtDay.setAlpha(0.3f);
}

for (int j = 0; j < mEventList.size(); j++) {
Event event = mEventList.get(j);
if (day.getYear() == event.getYear()
&& day.getMonth() == event.getMonth()
&& day.getDay() == event.getDay()) {
if (day.equals(event.getDate())) {
imgEventTag.setVisibility(View.VISIBLE);
imgEventTag.setColorFilter(event.getColor(),PorterDuff.Mode.SRC_ATOP);
imgEventTag.setColorFilter(event.getColor(), PorterDuff.Mode.SRC_ATOP);
}
}

Expand Down

This file was deleted.

@@ -1,38 +1,27 @@
package com.shrikanthravi.collapsiblecalendarview.data;

import org.threeten.bp.LocalDate;

/**
* Created by shrikanthravi on 06/03/18.
*/

public class Event {
private int mYear;
private int mMonth;
private int mDay;
private int mColor;

public Event(int year, int month, int day){
this.mYear = year;
this.mMonth = month;
this.mDay = day;
}
private final LocalDate date;

public Event(int year, int month, int day, int color){
this.mYear = year;
this.mMonth = month;
this.mDay = day;
this.mColor=color;
}
private int mColor;

public int getMonth(){
return mMonth;
public Event(LocalDate date) {
this.date = date;
}

public int getYear(){
return mYear;
public Event(LocalDate date, int color) {
this.date = date;
this.mColor = color;
}

public int getDay(){
return mDay;
public LocalDate getDate() {
return date;
}

public int getColor() {
Expand Down

0 comments on commit 9fe51ca

Please sign in to comment.