package com.fsck.k9.mail.store.imap;
import timber.log.Timber;
class ImapPushState {
private static final long DEFAULT_UID_NEXT = -1L;
private static final String PUSH_STATE_PREFIX = "uidNext=";
private static final int PUSH_STATE_PREFIX_LENGTH = 8;
public final long uidNext;
public static ImapPushState parse(String pushState) {
if (pushState == null || !pushState.startsWith(PUSH_STATE_PREFIX)) {
return createDefaultImapPushState();
}
String value = pushState.substring(PUSH_STATE_PREFIX_LENGTH);
try {
long newUidNext = Long.parseLong(value);
return new ImapPushState(newUidNext);
} catch (NumberFormatException e) {
Timber.e(e, "Unable to part uidNext value %s", value);
}
return createDefaultImapPushState();
}
static ImapPushState createDefaultImapPushState() {
return new ImapPushState(DEFAULT_UID_NEXT);
}
public ImapPushState(long uidNext) {
this.uidNext = uidNext;
}
@Override
public String toString() {
return "uidNext=" + uidNext;
}
}