Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'com.android.tools.build:gradle:2.1.3'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand Down
4 changes: 2 additions & 2 deletions calendar/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ android {
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
versionCode 2
versionName "1.1"
}
buildTypes {
release {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import com.riontech.calendar.dao.EventData;
import com.riontech.calendar.fragment.CalendarFragment;
import com.riontech.calendar.utils.CalendarUtils;
import com.riontech.calendar.R;

import java.text.ParseException;
import java.text.SimpleDateFormat;
Expand Down Expand Up @@ -52,6 +51,7 @@ public class CustomCalendar extends LinearLayout {
private ImageView mImgFailed;
private ArrayList<Event> mEventList;
private boolean isValidAttr = true;
private Calendar mCalendar;

private Context mContext;
private AttributeSet mAttributeSet = null;
Expand Down Expand Up @@ -311,4 +311,11 @@ protected void onConfigurationChanged(Configuration newConfig) {
Log.d(TAG, "screenOrientation: portrait");
}
}

public void refreshCalendar(){
mCalendar = Calendar.getInstance();
((CalendarFragment) mAdapter.getRegisteredFragment(mViewPager.getCurrentItem())).refreshCalendar();
((CalendarFragment) mAdapter.getRegisteredFragment(mViewPager.getCurrentItem()))
.fetchEvents(CalendarUtils.getCalendarDBFormat().format(mCalendar.getTime()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,15 @@
import android.widget.TextView;

import com.riontech.calendar.CustomCalendar;
import com.riontech.calendar.R;
import com.riontech.calendar.Singleton;
import com.riontech.calendar.adapter.CalendarGridviewAdapter;
import com.riontech.calendar.dao.CalendarDecoratorDao;
import com.riontech.calendar.dao.CalendarResponse;
import com.riontech.calendar.dao.Event;
import com.riontech.calendar.dao.EventData;
import com.riontech.calendar.utils.CalendarUtils;
import com.riontech.calendar.R;
import com.riontech.calendar.utils.EventUtils;

import java.text.DateFormat;
import java.util.ArrayList;
Expand Down Expand Up @@ -212,32 +213,36 @@ private void setData(CalendarResponse calendarResponse) {
mRlHeader.setVisibility(View.VISIBLE);
mGridview.setVisibility(View.VISIBLE);

if (calendarResponse.getMonthdata() != null) {

ArrayList<Event> monthDataList = calendarResponse.getMonthdata();
int m = 0;
if (EventUtils.getEventMap() == null || EventUtils.getEventMap().size() == 0)
EventUtils.generateMonthsEvents(calendarResponse.getMonthdata(), month.get(Calendar.YEAR));

if (calendarResponse.getMonthdata() != null) {
ArrayList<Event> monthDataList;
if (EventUtils.getMonthEvent(EventUtils.getMonthYearString(month.getTime())) == null) {
monthDataList = calendarResponse.getMonthdata();
} else {
monthDataList = EventUtils.getMonthEvent(EventUtils.getMonthYearString(month.getTime()));
}
// n = 0; n < 35; n++
for (int n = 0; n < mMonthLength; n++) {
String mItemValue = mDateFormat.format(mPMonthMaxSet.getTime());
mPMonthMaxSet.add(GregorianCalendar.DATE, 1);

if (m < monthDataList.size()) {
if (mItemValue.equalsIgnoreCase(monthDataList.get(m).getDate())) {
boolean isAdded = false;
for (Event event : monthDataList) {
if (mItemValue.equalsIgnoreCase(event.getDate())) {
CalendarDecoratorDao eventDao = new CalendarDecoratorDao(
monthDataList.get(m).getDate(),
Integer.parseInt(monthDataList.get(m).getCount()));
mEventList.add(eventDao);
m++;
} else {
CalendarDecoratorDao eventDao = new CalendarDecoratorDao(mItemValue, 0);
event.getDate(),
Integer.parseInt(event.getCount()));
mEventList.add(eventDao);
isAdded = true;
}
} else {
}

if (!isAdded) {
CalendarDecoratorDao eventDao = new CalendarDecoratorDao(mItemValue, 0);
mEventList.add(eventDao);
}
}

mCalendarGridviewAdapter.notifyDataSetChanged();

if (!flagMaxMin) {
Expand Down
101 changes: 101 additions & 0 deletions calendar/src/main/java/com/riontech/calendar/utils/EventUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package com.riontech.calendar.utils;

import com.google.gson.Gson;
import com.riontech.calendar.dao.Event;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;

/**
* Created by Dhaval Riontech on 18/8/16.
*/
public class EventUtils {
private static HashMap<String, ArrayList<Event>> eventMap;
private static String[] monthYearArray;
private static int currentYear;

private static void generateMonthYearArray(int year) {
if (monthYearArray == null || currentYear != year) {
monthYearArray = new String[12];
currentYear = year;
for (int i = 0; i < monthYearArray.length; i++) {
monthYearArray[i] = (i + 1) + "-" + year;
}
}
}

public static void generateMonthsEvents(ArrayList<Event> events, int cYear) {
// if (eventMap == null || currentYear != cYear) {
currentYear = cYear;
eventMap = new HashMap<>();
generateMonthYearArray(currentYear);
System.out.println("Event List=>"+new Gson().toJson(events));
for (int i = 0; i < monthYearArray.length; i++) {
System.out.println("month-year " + monthYearArray[i]);
ArrayList<Event> monthEvents = new ArrayList<>();
for (Event event : events) {
System.out.println("event date " + event.getDate());
String monthYear = getMonthYearString(getDateFromString(event.getDate()));
System.out.println("event month-year" + monthYear);
if (monthYear.equalsIgnoreCase(monthYearArray[i])) {
System.out.println("month-year " + monthYear + " matched");
monthEvents.add(event);
putEvent(monthYear, monthEvents);
}
}
}
// }

System.out.println(new Gson().toJson(eventMap));
}

public static String getMonthYearString(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return (cal.get(Calendar.MONTH) + 1)+ "-" + cal.get(Calendar.YEAR);
}

public static Date getDateFromString(String date) {
try {
return CalendarUtils.getCalendarDBFormat().parse(date);
} catch (ParseException e) {
e.printStackTrace();
return new Date();
}
}

public static boolean hasMonth(String monthYear) {
return eventMap.containsKey(monthYear);
}

public static ArrayList<Event> getMonthEvent(String key) {
if (hasMonth(key)) {
return eventMap.get(key);
}
return null;
}

public static void putEvent(String key, ArrayList<Event> events) {
eventMap.put(key, events);
}

// public static int getDateDecoretorCount(String date){
// Date currentDate = getDateFromString(date);
// String monthYear = getMonthYearString(currentDate);
// ArrayList<Event> events = getMonthEvent(monthYear);
// int counter = 0;
// if(events != null){
// for (Event event : events) {
// if(date.equalsIgnoreCase(event.getDate()))
// }
// }
// return counter;
// }

public static HashMap<String, ArrayList<Event>> getEventMap(){
return eventMap;
}
}
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Mon Dec 28 10:00:20 PST 2015
#Mon Aug 22 11:12:55 IST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
10 changes: 5 additions & 5 deletions sample/src/main/java/com/riontech/sample/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.riontech.sample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.riontech.calendar.CustomCalendar;
import com.riontech.calendar.dao.EventData;
Expand All @@ -13,18 +13,18 @@

public class MainActivity extends AppCompatActivity {

private CustomCalendar customCalendar;
private CustomCalendar mCustomCalendar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
customCalendar = (CustomCalendar) findViewById(R.id.customCalendar);
mCustomCalendar = (CustomCalendar) findViewById(R.id.customCalendar);

String[] arr = {"2016-06-10", "2016-06-11", "2016-06-15", "2016-06-16", "2016-06-25"};
String[] arr = {"2016-08-22", "2016-08-11", "2016-08-15", "2016-09-16", "2016-09-25"};
for (int i = 0; i < 5; i++) {
int eventCount = 10;
customCalendar.addAnEvent(arr[i], eventCount, getEventDataList(eventCount));
mCustomCalendar.addAnEvent(arr[i], eventCount, getEventDataList(eventCount));
}
}

Expand Down
2 changes: 1 addition & 1 deletion sample/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
android:id="@+id/customCalendar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:endMonth="07"
app:endMonth="12"
app:endYear="2016"
app:startMonth="01"
app:startYear="2016" />
Expand Down
1 change: 1 addition & 0 deletions sample/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<resources>
<string name="app_name">Custom Calendar Demo</string>
<string name="loading_text">Loading...</string>
</resources>