blob: 4395d33182bf741c26bdf8f6573c1a913ea61045 [file] [log] [blame]
/*
* Copyright 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.car.calendar.common;
import com.android.car.calendar.common.Dialer.NumberAndAccess;
import java.time.Duration;
import java.time.Instant;
/**
* An immutable value representing a calendar event. Should contain only details that are relevant
* to the Car Calendar.
*/
public final class Event {
/** The status of the current user for this event. */
public enum Status {
ACCEPTED,
DECLINED,
NONE,
}
/**
* The details required for display of the calendar indicator.
*/
public static class CalendarDetails {
private final String mName;
private final int mColor;
CalendarDetails(String name, int color) {
mName = name;
mColor = color;
}
public int getColor() {
return mColor;
}
public String getName() {
return mName;
}
}
private final boolean mAllDay;
private final Instant mStartInstant;
private final Instant mDayStartInstant;
private final Instant mEndInstant;
private final Instant mDayEndInstant;
private final String mTitle;
private final Status mStatus;
private final String mLocation;
private final NumberAndAccess mNumberAndAccess;
private final CalendarDetails mCalendarDetails;
Event(
boolean allDay,
Instant startInstant,
Instant dayStartInstant,
Instant endInstant,
Instant dayEndInstant,
String title,
Status status,
String location,
NumberAndAccess numberAndAccess,
CalendarDetails calendarDetails) {
mAllDay = allDay;
mStartInstant = startInstant;
mDayStartInstant = dayStartInstant;
mEndInstant = endInstant;
mDayEndInstant = dayEndInstant;
mTitle = title;
mStatus = status;
mLocation = location;
mNumberAndAccess = numberAndAccess;
mCalendarDetails = calendarDetails;
}
public Instant getStartInstant() {
return mStartInstant;
}
public Instant getDayStartInstant() {
return mDayStartInstant;
}
public Instant getDayEndInstant() {
return mDayEndInstant;
}
public Instant getEndInstant() {
return mEndInstant;
}
public String getTitle() {
return mTitle;
}
public NumberAndAccess getNumberAndAccess() {
return mNumberAndAccess;
}
public CalendarDetails getCalendarDetails() {
return mCalendarDetails;
}
public String getLocation() {
return mLocation;
}
public Status getStatus() {
return mStatus;
}
public boolean isAllDay() {
return mAllDay;
}
public Duration getDuration() {
return Duration.between(getStartInstant(), getEndInstant());
}
}