Android Open Source - Tacere Event Instance






From Project

Back to project page Tacere.

License

The source code is released under:

MIT License

If you think the Android project Tacere listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (c) 2014 Jonathan Nelson//from w ww  . j  a va2  s . c o  m
 * Released under the BSD license.  For details see the COPYING file.
 */

package org.ciasaboark.tacere.event;

import org.ciasaboark.tacere.event.ringer.RingerType;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class EventInstance {
    public static final long MILLISECONDS_IN_SECOND = 1000;
    public static final long MILLISECONDS_IN_MINUTE = MILLISECONDS_IN_SECOND * 60;
    public static final long MILLISECONDS_IN_DAY = MILLISECONDS_IN_MINUTE * 60 * 24;
    @SuppressWarnings("unused")
    private static final String TAG = "CalEvent";
    private long calendarId;
    private long instanceId;     //instance ids are unique in repeating events
    private long eventId;        //event ids are shared among repeating events
    private String title;
    private long begin;
    private long effectiveEnd; // original end + extendMinutes
    private String description;
    private RingerType ringer;
    private boolean hasCustomRinger;
    private int dispColor;
    private boolean isFreeTime;
    private boolean isAllDay;
    private String location;
    private int extendMinutes;
    private long originalEnd;


    public EventInstance(long calendarId, long instanceId, long eventId, String title, long begin, long originalEnd,
                         String description, int displayColor, boolean isFreeTime, boolean isAllDay, int extendMinutes) {
        if (begin < 0) {
            throw new IllegalArgumentException("date can not be negative");
        }
        if (originalEnd < 0) {
            throw new IllegalArgumentException("date can not be negative");
        }
        if (originalEnd < begin) {
            throw new IllegalArgumentException("event can not end before it begins");
        }

        this.calendarId = calendarId;
        this.instanceId = instanceId;
        this.eventId = eventId;
        this.title = title == null ? "" : title;
        this.begin = begin;
        this.originalEnd = originalEnd;
        this.description = description == null ? "" : description;
        this.dispColor = displayColor;
        this.isFreeTime = isFreeTime;
        this.isAllDay = isAllDay;
        this.ringer = RingerType.UNDEFINED;
        this.location = "";
        this.extendMinutes = extendMinutes;

        this.effectiveEnd = originalEnd + (long) extendMinutes * MILLISECONDS_IN_MINUTE;
    }

    public static EventInstance getBlankEvent() {
        return new EventInstance(-2, -2, -2, "", 0, 0, "", 0, false, false, 0);
    }

    public int getExtendMinutes() {
        return extendMinutes;
    }

    public void setExtendMinutes(int extendMinutes) {
        this.extendMinutes = extendMinutes;
        this.effectiveEnd = originalEnd + (long) extendMinutes * MILLISECONDS_IN_MINUTE;
    }

    public RingerType getRingerType() {
        return ringer == null ?
                RingerType.UNDEFINED :
                ringer;
    }

    public void setRingerType(RingerType newRinger) {
        if (newRinger == null) {
            throw new IllegalArgumentException("New ringer can not be null");
        }
        this.ringer = newRinger;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        if (location == null) {
            this.location = "";
        } else {
            this.location = location;
        }
    }

    public String getLocalBeginTime() {
        return getFormattedTime(this.getBegin());
    }

    public String getFormattedTime(long time) {
        DateFormat dateFormatter = DateFormat.getTimeInstance(DateFormat.SHORT);
        Date date = new Date(time);
        return dateFormatter.format(date);
    }

    public Long getBegin() {
        return begin;
    }

    public String getLocalEndTime() {
        return getFormattedTime(this.getOriginalEnd());
    }

    public Long getOriginalEnd() {
        return originalEnd;
    }

    public String getLocalEffectiveEndTime() {
        return getFormattedTime(this.getEffectiveEnd());
    }

    public long getEffectiveEnd() {
        return effectiveEnd;
    }

    public long getCalendarId() {
        return calendarId;
    }

    public long getEventId() {
        return eventId;
    }

    public String getLocalBeginDate() {
        long time;
        // according to the android calendar all day events start at
        // + 8 PM the day before the event is scheduled. This can
        // + result in a wrong date being returned.
        if (this.isAllDay) {
            // shift ahead by one full day
            time = getBegin() + MILLISECONDS_IN_DAY;
        } else {
            time = getBegin();
        }

        return getFormattedDate(time);
    }

    public String getFormattedDate(long time) {
        DateFormat dateFormatter = DateFormat.getDateInstance();
        Date date;
        date = new Date(time);
        return dateFormatter.format(date);
    }

    public String getLocalEndDate() {
        return getFormattedDate(getOriginalEnd());
    }

    public String getLocalEffectiveEndDate() {
        return getFormattedDate(getEffectiveEnd());
    }

    /**
     * Check if this CalEvent is ongoing between the given times
     *
     * @param startTime
     * @param endTime
     * @return true if this event is ongoing between the startTime and endTime, false otherwise
     */
    public boolean isActiveBetween(long startTime, long endTime) {
        boolean isEventActive = false;
        if (this.getEffectiveEnd() > startTime) {
            if (this.getBegin() < endTime) {
                isEventActive = true;
            }
        }
        return isEventActive;
    }

    public String getDescription() {
        return description;
    }

    public Integer getDisplayColor() {
        return dispColor;
    }

    public Boolean isAllDay() {
        return isAllDay;
    }

    public Boolean isFreeTime() {
        return isFreeTime;
    }

    public String getTitle() {
        String result;
        if (title == null || title.equals("")) {
            result = "(No title)";
        } else {
            result = title;
        }
        return result;
    }

    @Override
    public boolean equals(Object o) {
        if (!(o instanceof EventInstance)) {
            return false;
        }

        return getId() == ((EventInstance) o).getId();
    }

    public String toString() {
        DateFormat dateFormatter;
        dateFormatter = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT,
                Locale.getDefault());
        Date date = new Date(effectiveEnd);
        String fdate = dateFormatter.format(date);
        return title + ", ends " + fdate;
    }

    public long getId() {
        return instanceId;
    }
}




Java Source Code List

.EventInstanceTest.java
com.viewpagerindicator.BuildConfig.java
com.viewpagerindicator.BuildConfig.java
com.viewpagerindicator.CirclePageIndicator.java
com.viewpagerindicator.IconPageIndicator.java
com.viewpagerindicator.IconPagerAdapter.java
com.viewpagerindicator.IcsLinearLayout.java
com.viewpagerindicator.LinePageIndicator.java
com.viewpagerindicator.PageIndicator.java
com.viewpagerindicator.TabPageIndicator.java
com.viewpagerindicator.TitlePageIndicator.java
com.viewpagerindicator.UnderlinePageIndicator.java
org.ciasaboark.tacere.ApplicationTest.java
org.ciasaboark.tacere.Tacere.java
org.ciasaboark.tacere.activity.AboutActivity.java
org.ciasaboark.tacere.activity.AboutLicenseActivity.java
org.ciasaboark.tacere.activity.AdvancedSettingsActivity.java
org.ciasaboark.tacere.activity.BetaReleaseActivity.java
org.ciasaboark.tacere.activity.BetaSettingsActivity.java
org.ciasaboark.tacere.activity.BugReportActivity.java
org.ciasaboark.tacere.activity.DonationActivityTest.java
org.ciasaboark.tacere.activity.LicenseCheckWrapper.java
org.ciasaboark.tacere.activity.MainActivity.java
org.ciasaboark.tacere.activity.ProUpgradeActivity.java
org.ciasaboark.tacere.activity.SelectCalendarsActivity.java
org.ciasaboark.tacere.activity.SettingsActivity.java
org.ciasaboark.tacere.activity.ShowUpdatesActivity.java
org.ciasaboark.tacere.activity.TutorialActivity.java
org.ciasaboark.tacere.activity.fragment.AdvancedSettingsFragment.java
org.ciasaboark.tacere.activity.fragment.BetaSettingsFragment.java
org.ciasaboark.tacere.activity.fragment.EventDetailsFragment.java
org.ciasaboark.tacere.activity.fragment.MainSettingsFragment.java
org.ciasaboark.tacere.activity.fragment.SelectCalendarsFragment.java
org.ciasaboark.tacere.activity.fragment.TutorialCrashReporterFragment.java
org.ciasaboark.tacere.activity.fragment.TutorialEndFragment.java
org.ciasaboark.tacere.activity.fragment.TutorialEventListFragment.java
org.ciasaboark.tacere.activity.fragment.TutorialProVersionFragment.java
org.ciasaboark.tacere.activity.fragment.TutorialRingerPriorityFragment.java
org.ciasaboark.tacere.activity.fragment.TutorialWelcomeFragment.java
org.ciasaboark.tacere.adapter.EventCursorAdapter.java
org.ciasaboark.tacere.billing.Authenticator.java
org.ciasaboark.tacere.billing.google.Base64DecoderException.java
org.ciasaboark.tacere.billing.google.Base64.java
org.ciasaboark.tacere.billing.google.IabException.java
org.ciasaboark.tacere.billing.google.IabHelper.java
org.ciasaboark.tacere.billing.google.IabResult.java
org.ciasaboark.tacere.billing.google.Inventory.java
org.ciasaboark.tacere.billing.google.Purchase.java
org.ciasaboark.tacere.billing.google.Security.java
org.ciasaboark.tacere.billing.google.SkuDetails.java
org.ciasaboark.tacere.bug.CrashReportManager.java
org.ciasaboark.tacere.converter.DateConverterTest.java
org.ciasaboark.tacere.converter.DateConverter.java
org.ciasaboark.tacere.converter.TimeConverter.java
org.ciasaboark.tacere.database.Columns.java
org.ciasaboark.tacere.database.DataSetManager.java
org.ciasaboark.tacere.database.DatabaseInterface.java
org.ciasaboark.tacere.database.EventDatabaseOpenHelper.java
org.ciasaboark.tacere.database.NoSuchEventInstanceException.java
org.ciasaboark.tacere.database.TooltipManager.java
org.ciasaboark.tacere.event.Calendar.java
org.ciasaboark.tacere.event.EventInstance.java
org.ciasaboark.tacere.event.EventManager.java
org.ciasaboark.tacere.event.ringer.Intervals.java
org.ciasaboark.tacere.event.ringer.RingerSource.java
org.ciasaboark.tacere.event.ringer.RingerType.java
org.ciasaboark.tacere.key.ApplicationTest.java
org.ciasaboark.tacere.key.MainActivity.java
org.ciasaboark.tacere.manager.AlarmManagerWrapper.java
org.ciasaboark.tacere.manager.NotificationManagerWrapper.java
org.ciasaboark.tacere.manager.RingerStateManager.java
org.ciasaboark.tacere.manager.ServiceStateManager.java
org.ciasaboark.tacere.manager.VolumesManager.java
org.ciasaboark.tacere.notifier.WidgetNotifier.java
org.ciasaboark.tacere.prefs.BetaPrefs.java
org.ciasaboark.tacere.prefs.DefaultPrefs.java
org.ciasaboark.tacere.prefs.PrefsTest.java
org.ciasaboark.tacere.prefs.Prefs.java
org.ciasaboark.tacere.prefs.Updates.java
org.ciasaboark.tacere.receiver.BootCompletedReceiver.java
org.ciasaboark.tacere.receiver.ProviderChangedReceiver.java
org.ciasaboark.tacere.service.EventSilencerService.java
org.ciasaboark.tacere.service.ExtendEventService.java
org.ciasaboark.tacere.service.ExtendQuicksilenceService.java
org.ciasaboark.tacere.service.RequestTypes.java
org.ciasaboark.tacere.service.ResetEventServiceTest.java
org.ciasaboark.tacere.service.ResetEventService.java
org.ciasaboark.tacere.service.SkipEventService.java
org.ciasaboark.tacere.versioning.Versioning.java
org.ciasaboark.tacere.view.EventListItem.java
org.ciasaboark.tacere.widget.ActiveEventWidgetProvider.java
org.ciasaboark.tacere.widget.EventListWidgetProvider.java
org.ciasaboark.tacere.widget.QuickSilenceTinyWidgetProvider.java
org.ciasaboark.tacere.widget.QuickSilenceWidgetProvider.java
org.ciasaboark.tacere.widget.activity.WidgetPopupRinger.java
org.ciasaboark.tacere.widget.adapter.WidgetEventListAdapter.java
org.ciasaboark.tacere.widget.service.WidgetService.java