
com.urbanairship.api.push.parse.notification.mpns.MPNSTileReader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-client Show documentation
Show all versions of java-client Show documentation
The Urban Airship Java client library
/*
* Copyright (c) 2013-2016. Urban Airship and Contributors
*/
package com.urbanairship.api.push.parse.notification.mpns;
import com.urbanairship.api.common.parse.APIParsingException;
import com.urbanairship.api.common.parse.IntFieldDeserializer;
import com.urbanairship.api.common.parse.JsonObjectReader;
import com.urbanairship.api.common.parse.ListOfStringsDeserializer;
import com.urbanairship.api.common.parse.StringFieldDeserializer;
import com.urbanairship.api.push.model.notification.mpns.MPNSCycleTileData;
import com.urbanairship.api.push.model.notification.mpns.MPNSFlipTileData;
import com.urbanairship.api.push.model.notification.mpns.MPNSIconicTileData;
import com.urbanairship.api.push.model.notification.mpns.MPNSTileData;
import org.codehaus.jackson.JsonParser;
import java.io.IOException;
public class MPNSTileReader implements JsonObjectReader {
// Tile Constants
private final static String CYCLE_TILE = "CycleTile";
private final static String FLIP_TILE = "FlipTile";
private final static String ICONIC_TILE = "IconicTile";
private final MPNSCycleTileData.Builder cycleBuilder;
private final MPNSFlipTileData.Builder flipBuilder;
private final MPNSIconicTileData.Builder iconicBuilder;
private String template;
public MPNSTileReader() {
cycleBuilder = MPNSCycleTileData.newBuilder();
flipBuilder = MPNSFlipTileData.newBuilder();
iconicBuilder = MPNSIconicTileData.newBuilder();
}
// WP8 common fields
public void readId(JsonParser parser) throws IOException {
String id = StringFieldDeserializer.INSTANCE.deserialize(parser, "id");
cycleBuilder.setId(id);
flipBuilder.setId(id);
iconicBuilder.setId(id);
}
public void readTitle(JsonParser parser) throws IOException {
String title = StringFieldDeserializer.INSTANCE.deserialize(parser, "title");
cycleBuilder.setTitle(title);
flipBuilder.setTitle(title);
iconicBuilder.setTitle(title);
}
public void readCount(JsonParser parser) throws IOException {
int count = IntFieldDeserializer.INSTANCE.deserialize(parser, "count");
cycleBuilder.setCount(count);
flipBuilder.setCount(count);
iconicBuilder.setCount(count);
}
public void readSmallBackgroundImage(JsonParser parser) throws IOException {
String image = StringFieldDeserializer.INSTANCE.deserialize(parser, "small_background_image");
flipBuilder.setSmallBackgroundImage(image);
cycleBuilder.setSmallBackgroundImage(image);
}
public void readTemplate(JsonParser parser) throws IOException {
template = StringFieldDeserializer.INSTANCE.deserialize(parser, "template");
}
// WP8 FlipTile fields
public void readBackContent(JsonParser parser) throws IOException {
flipBuilder.setBackContent(StringFieldDeserializer.INSTANCE.deserialize(parser, "back_content"));
}
public void readBackBackgroundImage(JsonParser parser) throws IOException {
flipBuilder.setBackBackgroundImage(StringFieldDeserializer.INSTANCE.deserialize(parser, "back_background_image"));
}
public void readBackgroundImage(JsonParser parser) throws IOException {
flipBuilder.setBackgroundImage(StringFieldDeserializer.INSTANCE.deserialize(parser, "background_image"));
}
public void readBackTitle(JsonParser parser) throws IOException {
flipBuilder.setBackTitle(StringFieldDeserializer.INSTANCE.deserialize(parser, "back_title"));
}
public void readWideBackgroundImage(JsonParser parser) throws IOException {
flipBuilder.setWideBackgroundImage(StringFieldDeserializer.INSTANCE.deserialize(parser, "wide_background_image"));
}
public void readWideBackBackgroundImage(JsonParser parser) throws IOException {
flipBuilder.setWideBackBackgroundImage(StringFieldDeserializer.INSTANCE.deserialize(parser, "wide_back_background_image"));
}
public void readWideBackContent(JsonParser parser) throws IOException {
flipBuilder.setWideBackContent(StringFieldDeserializer.INSTANCE.deserialize(parser, "wide_back_content"));
}
// WP8 IconicTile fields
public void readIconImage(JsonParser parser) throws IOException {
iconicBuilder.setIconImage(StringFieldDeserializer.INSTANCE.deserialize(parser, "icon_image"));
}
public void readSmallIconImage(JsonParser parser) throws IOException {
iconicBuilder.setSmallIconImage(StringFieldDeserializer.INSTANCE.deserialize(parser, "small_icon_image"));
}
public void readBackgroundColor(JsonParser parser) throws IOException {
iconicBuilder.setBackgroundColor(StringFieldDeserializer.INSTANCE.deserialize(parser, "background_color"));
}
public void readWideContent1(JsonParser parser) throws IOException {
iconicBuilder.setWideContent1(StringFieldDeserializer.INSTANCE.deserialize(parser, "wide_content_1"));
}
public void readWideContent2(JsonParser parser) throws IOException {
iconicBuilder.setWideContent2(StringFieldDeserializer.INSTANCE.deserialize(parser, "wide_content_2"));
}
public void readWideContent3(JsonParser parser) throws IOException {
iconicBuilder.setWideContent3(StringFieldDeserializer.INSTANCE.deserialize(parser, "wide_content_3"));
}
// WP8 CycleTile fields
public void readCycleImage(JsonParser parser) throws IOException {
cycleBuilder.addAllImages(ListOfStringsDeserializer.INSTANCE.deserialize(parser, "cycle_image"));
}
@Override
public com.urbanairship.api.push.model.notification.mpns.MPNSTileData validateAndBuild() throws IOException {
try {
if (template.equals(CYCLE_TILE)) {
return cycleBuilder.build();
} else if (template.equals(FLIP_TILE)) {
return flipBuilder.build();
} else if (template.equals(ICONIC_TILE)) {
return iconicBuilder.build();
} else {
throw new APIParsingException(String.format("Invalid tile template '%s'", template));
}
} catch (Exception e) {
throw new APIParsingException(e.getMessage(), e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy