An open API service indexing awesome lists of open source software.

https://github.com/tyczj/ExtendedCalendarView


https://github.com/tyczj/ExtendedCalendarView

Last synced: 10 months ago
JSON representation

Awesome Lists containing this project

README

          

ExtendedCalendarView
====================

![ScreenShot](https://raw.githubusercontent.com/tyczj/ExtendedCalendarView/master/ExtendedCalendarView/Screenshot_2014-04-04-18-11-16.png)

Currently there is no easy way of showing a calendar with the ability to display events on days, ExtendedCalendarView is meant to solve that problem.

Usage
=====

simply declare it in your layout







get the view like you normally would

ExtendedCalendarView calendar = (ExtendedCalendarView)findViewById(R.id.calendar);

Calendar Content Provider
=========================

All events are stored in a content provider for easy access and the ability to have other app hook into your calendar if you choose. make sure you declare the content provider in your manifest



if you dont want other apps to have access to your database make you add this attribute to the provider

android:permission="signature"

Current database columns

id - database id of the event
event (Text) - name of the event
location (Text) - where the event is
description (Text) - information about the event
start (Integer) - when the event starts
end (Integer) - when the event ends
start_day (Integer) - julian start day
end_day (Integer) - julian end day
color (Integer) - the color of the event

Adding Events
=============

To add an event to the content provider you need the start time, end time, julian start day and julian end day. For now you will have to implement your own way to get all the information but eventually in the future I may create one that you can just call and use.

ContentValues values = new ContentValues();
values.put(CalendarProvider.COLOR, Event.COLOR_RED);
values.put(CalendarProvider.DESCRIPTION, "Some Description");
values.put(CalendarProvider.LOCATION, "Some location);
values.put(CalendarProvider.EVENT, "Event name);

Calendar cal = Calendar.getInstance();

cal.set(startDayYear, startDayMonth, startDayDay, startTimeHour, startTimeMin);
values.put(CalendarProvider.START, cal.getTimeInMillis());
values.put(CalendarProvider.START_DAY, julianDay);
TimeZone tz = TimeZone.getDefault();

cal.set(endDayYear, endDayMonth, endDayDay, endTimeHour, endTimeMin);
int endDayJulian = Time.getJulianDay(cal.getTimeInMillis(), TimeUnit.MILLISECONDS.toSeconds(tz.getOffset(cal.getTimeInMillis())));

values.put(CalendarProvider.END, cal.getTimeInMillis());
values.put(CalendarProvider.END_DAY, endDayJulian);

Uri uri = getContentResolver().insert(CalendarProvider.CONTENT_URI, values);

julian start day is generated for you when the month is built so all you would have to do it call day.getStartDay() on the day and it will give you the julian day