package eoc.studio.voicecard.calendarview; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.database.SQLException; import android.net.Uri; import android.provider.CalendarContract.Events; import android.provider.CalendarContract.Reminders; public class DataProcess { public static final String EVENT_DATE = "eventDate"; private static final String DEFAULT_YEAR = "1970"; private static final String DEFAULT_DURATION = "P1D"; public static final String DEFAULT_EVENT_TIME = "0800"; private static final int EVENT_ALARM_12_HOURS = 60 * 12; private static final int IS_ALL_DAY = 1; private static final int HAS_ALARM = 1; private static String eventDateValue = ""; // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected static void addEvent(final Context context, final String title, String date) { try { if (context == null) { return; } if (title == null || title.equals("") || title.equals("null")) { return; } if (date == null || date.equals("") || date.equals("null")) { return; } date = date + DEFAULT_EVENT_TIME; ContentResolver cr = context.getContentResolver(); ContentValues values = new ContentValues(); values.put(Events.CALENDAR_ID, CalendarIntentHelper.getVoiceCardCalendar(context)); values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID()); values.put(Events.TITLE, title); values.put(Events.ALL_DAY, IS_ALL_DAY); values.put(Events.DTSTART, getDataMilliSeconds(date)); values.put(Events.DURATION, DEFAULT_DURATION); values.put(Events.DESCRIPTION, "VoiceCard Note"); values.put(Events.RRULE, CalendarIntentHelper.EVENT_TYPE_YEARLY); values.put(Events.HAS_ALARM, HAS_ALARM); Uri uri = cr.insert(Events.CONTENT_URI, values); // // add 12 hours reminder for the event ContentValues reminders = new ContentValues(); reminders.put(Reminders.EVENT_ID, Long.parseLong(uri.getLastPathSegment())); reminders.put(Reminders.METHOD, Reminders.METHOD_ALERT); reminders.put(Reminders.MINUTES, EVENT_ALARM_12_HOURS); cr.insert(Reminders.CONTENT_URI, reminders); } catch (SQLException e) { System.out.println("[DataProcess][addEvent]SQLException:" + e); } } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected static void updataEvent(Context context, String title, String eventID) { try { if (context == null) { return; } ContentResolver cr = context.getContentResolver(); ContentValues values = new ContentValues(); values.put(Events.TITLE, title); Uri updataUri = ContentUris.withAppendedId(Events.CONTENT_URI, Long.valueOf(eventID)); cr.update(updataUri, values, null, null); } catch (SQLException e) { System.out.println("[DataProcess][updataEvent]SQLException:" + e); } } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected static void deleteEvent(Context context, String eventID) { try { if (context == null) { return; } ContentResolver cr = context.getContentResolver(); Uri deleteUri = ContentUris.withAppendedId(Events.CONTENT_URI, Long.valueOf(eventID)); cr.delete(deleteUri, null, null); } catch (SQLException e) { System.out.println("[DataProcess][deleteEvent]SQLException:" + e); } } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected static String getSelectedEventDate() { if (eventDateValue != null && !eventDateValue.equals("")) { return eventDateValue; } return ""; } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected static void setSelectedEventDate(String evenDate) { eventDateValue = evenDate; } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected static String numberFormat(final int value) { DecimalFormat df2 = (DecimalFormat) DecimalFormat.getInstance(); df2.applyPattern("00"); return df2.format(value); } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected static String eventDateFormat(final int year, final int month, final int day) { String getNewEventDate = String.valueOf(numberFormat(year)) + String.valueOf(numberFormat(month)) + String.valueOf(numberFormat(day)); return getNewEventDate; } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected static String getDataMilliSeconds(final String date) { return getDataMilliSeconds(date, "yyyyMMddHHmm"); } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static String getDataMilliSeconds(final String date, final String format) { if (date == null) return ""; SimpleDateFormat formatter = new SimpleDateFormat(format); formatter.setLenient(false); Date oldDate = null; try { oldDate = formatter.parse(date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (oldDate == null) { return ""; } return String.valueOf(oldDate.getTime()); } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static String formatDate(final String milliSeconds, final String format) { if (milliSeconds != null && !milliSeconds.equals("")) { SimpleDateFormat formatter = new SimpleDateFormat(format); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(Long.parseLong(milliSeconds)); return formatter.format(calendar.getTime()); } else { return ""; } } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static String checkFacebookBirthdayFormats(final String date) { String formats = ""; if (date.length() > 5) { return DataProcess.getDataMilliSeconds(date, "MM/dd/yyyy"); } else if (date.length() == 5) { return DataProcess.getDataMilliSeconds(date + "/" + DEFAULT_YEAR, "MM/dd/yyyy"); } return formats; } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }