package org.wikipedia.readinglist.sync;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import org.wikipedia.util.UriUtil;
import java.io.IOException;
import static org.wikipedia.readinglist.sync.RemoteReadingLists.RemoteReadingListPage;
public class RemoteReadingListPageTypeAdapter extends TypeAdapter<RemoteReadingListPage> {
private static final String DELIMIT_CHAR = ":";
@Override public void write(JsonWriter out, RemoteReadingListPage page) throws IOException {
out.value(page.lang() + DELIMIT_CHAR
+ page.namespace() + DELIMIT_CHAR
+ UriUtil.encodeURL(page.title()));
}
@Override public RemoteReadingListPage read(JsonReader in) throws IOException {
String[] pageData = in.nextString().split(DELIMIT_CHAR);
return new RemoteReadingListPage(pageData[0], Integer.parseInt(pageData[1]),
UriUtil.decodeURL(pageData[2]));
}
}