/*
* Copyright (c) 2013-2016. Urban Airship and Contributors
*/
package com.urbanairship.api.push.model.notification.android;
import com.google.common.base.Optional;
import org.codehaus.jackson.annotate.JsonSubTypes;
import org.codehaus.jackson.annotate.JsonTypeInfo;
/**
* Base Interface for the Android Style objects.
*
* @param <T>
*/
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = BigPictureStyle.class, name = "big_picture"),
@JsonSubTypes.Type(value = BigTextStyle.class, name = "big_text"),
@JsonSubTypes.Type(value = InboxStyle.class, name = "inbox")
})
public interface Style<T> {
public static enum Type {
BIG_PICTURE("big_picture"),
BIG_TEXT("big_text"),
INBOX("inbox");
private final String styleType;
private Type(String styleType) {
this.styleType = styleType;
}
public String getStyleType() {
return styleType;
}
}
public T getContent();
public Type getType();
public Optional<String> getTitle();
public Optional<String> getSummary();
}