/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.gecko.background.announcements; import java.util.List; import java.util.Locale; public interface AnnouncementsFetchDelegate { /** * @return the timestamp of the last fetch in milliseconds. */ public long getLastFetch(); /** * @return the Date header string of the last response, or null if not present. */ public String getLastDate(); /** * @return the current system locale (e.g., en_us). */ public Locale getLocale(); /** * @return the User-Agent header to use for the request. */ public String getUserAgent(); /** * @return the server URL to interrogate, including path. */ public String getServiceURL(); /* * Callback methods. * Note that we provide both a local fetch time and a server date here. * This is so we can track how long we've waited (local), and supply the * date back to the server for If-Modified-Since. */ public void onNoNewAnnouncements(long localFetchTime, String serverDate); public void onNewAnnouncements(List<Announcement> snippets, long localFetchTime, String serverDate); public void onLocalError(Exception e); public void onRemoteError(Exception e); public void onRemoteFailure(int status); public void onBackoff(int retryAfterInSeconds); }