package cgeo.geocaching.connector.oc; import cgeo.geocaching.R; import cgeo.geocaching.connector.oc.OkapiError.OkapiErrors; import android.support.annotation.NonNull; import android.support.annotation.StringRes; public class UserInfo { public enum UserInfoStatus { NOT_RETRIEVED(R.string.init_login_popup_working), SUCCESSFUL(R.string.init_login_popup_ok), FAILED(R.string.init_login_popup_failed), NOT_SUPPORTED(R.string.init_login_popup_not_authorized), INVALID_TIMESTAMP(R.string.init_login_popup_invalid_timestamp), INVALID_TOKEN(R.string.init_login_popup_invalid_token); @StringRes public final int resId; UserInfoStatus(@StringRes final int resId) { this.resId = resId; } @NonNull public static UserInfoStatus getFromOkapiError(final OkapiErrors result) { switch (result) { case NO_ERROR: return SUCCESSFUL; case INVALID_TIMESTAMP: return INVALID_TIMESTAMP; case INVALID_TOKEN: return INVALID_TOKEN; default: return FAILED; } } } @NonNull private final String name; private final int finds; @NonNull private final UserInfoStatus status; UserInfo(@NonNull final String name, final int finds, @NonNull final UserInfoStatus status) { this.name = name; this.finds = finds; this.status = status; } @NonNull public String getName() { return name; } public int getFinds() { return finds; } @NonNull public UserInfoStatus getStatus() { return status; } }