Package com.codeforces.graygoose.util

Source Code of com.codeforces.graygoose.util.SmsUtil

package com.codeforces.graygoose.util;

import com.google.gdata.client.calendar.CalendarService;
import com.google.gdata.data.DateTime;
import com.google.gdata.data.TextConstruct;
import com.google.gdata.data.calendar.CalendarEventEntry;
import com.google.gdata.data.extensions.Reminder;
import com.google.gdata.data.extensions.When;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;

import java.io.IOException;
import java.net.URL;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;

public class SmsUtil {
    public static void send(String title, String username, String password)
            throws SmsSendException {
        CalendarEventEntry entry = new CalendarEventEntry();
        CalendarService service = new CalendarService("GrayGoose-1.0");

        try {
            service.setUserCredentials(username, password);
        } catch (AuthenticationException e) {
            throw new SmsSendException("Illegal credentials.", e);
        }

        entry.setService(service);
        entry.setTitle(TextConstruct.plainText(title));
        entry.setContent(TextConstruct.plainText(""));

        setupWhen(entry);
        try {
            CalendarEventEntry insertedEntry = service.insert(
                    new URL("http://www.google.com/calendar/feeds/default/private/full"),
                    entry
            );
            setupReminder(insertedEntry);
            insertedEntry.update();
        } catch (IOException | ServiceException e) {
            throw new SmsSendException("Can't add calendar event.", e);
        }
    }

    private static void setupReminder(CalendarEventEntry entry) {
        Reminder reminder = new Reminder();
        reminder.setMinutes(1);
        reminder.setMethod(Reminder.Method.SMS);
        entry.getReminder().add(reminder);
    }

    private static void setupWhen(CalendarEventEntry entry) {
        When when = new When();

        Calendar startTime = new GregorianCalendar();
        startTime.add(Calendar.MINUTE, 2);

        Calendar endTime = new GregorianCalendar();
        endTime.add(Calendar.MINUTE, 3);

        when.setStartTime(new DateTime(startTime.getTime(), TimeZone.getDefault()));
        when.setEndTime(new DateTime(endTime.getTime(), TimeZone.getDefault()));

        entry.addTime(when);
    }

    private SmsUtil() {
    }
}
TOP

Related Classes of com.codeforces.graygoose.util.SmsUtil

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.