/**
*
*/
package com.gmail.charleszq.picorner.offline;
import java.io.Serializable;
import com.gmail.charleszq.picorner.model.MediaSourceType;
/**
* @author charles(charleszq@gmail.com)
*
*/
public interface IOfflineViewParameter extends Serializable {
/**
* The folder name of offline related control file, and image caches.
*/
static final String OFFLINE_FLICKR_PHOTO_FILE_PREFIX = "f"; //$NON-NLS-1$
static final String OFFLINE_INSTAGRAM_PHOTO_FILE_PREFIX = "i"; //$NON-NLS-1$
static final String OFFLINE_500PX_PHOTO_FILE_PREFIX = "p"; //$NON-NLS-1$
/**
* the control file for the offline repository control file.
*/
static final String OFFLINE_REPO_FILE_NAME = "repo.dat"; //$NON-NLS-1$
/**
* The key of where we save the offline parameter into intent extra.
*/
static final String OFFLINE_PARAM_INTENT_KEY = "offline.param"; //$NON-NLS-1$
static final String OFFLINE_PARAM_INTENT_ADD_REMOVE_REFRESH_KEY = "offline.add.param"; //$NON-NLS-1$
static final String OFFLINE_INVOKER_INTENT_KEY = "offline.service.caller"; //$NON-NLS-1$
static final String OFFLINE_EXPORT_FOLDER_NAME_KEY = "offline.export.folder.name"; //$NON-NLS-1$
static final String OFFLINE_EXPORT_OVERWRITE_KEY = "offline.export.overwrite"; //$NON-NLS-1$
/**
* The key of photo source type for gson
*/
static final String KEY_PHOTO_SOURCE_TYPE = "s"; //$NON-NLS-1$
/**
* The key of photo collection type:
* <ul>
* <li>Photo set</li>
* </ul>
*/
static final String KEY_PHOTO_COLLECTION_TYPE = "c"; //$NON-NLS-1$
/**
* the key of the photo collection id. for example, the photo set id.
*/
static final String KEY_PHOTO_COLLECTION_ID = "id"; //$NON-NLS-1$
/**
* the key of the time when this collection was update lately.
*/
static final String KEY_LAST_UPDATE_TS = "t"; //$NON-NLS-1$
/**
* The source type
*
* @return
*/
MediaSourceType getPhotoSourceType();
/**
* The control file is where we save the photo list information of this
* photo list, usually, it should be: <br/>
* <root>/offline/<photo source
* type>/<photo_collection_type>_<photo_collection_id>.dat
*
* @return
*/
String getControlFileName();
/**
* Returns the photo collection id.
*
* @return
*/
String getPhotoCollectionId();
/**
* Returns the photo collection title
* @return
*/
String getTitle();
/**
* Photo set for now only.
*
* @return
*/
OfflinePhotoCollectionType getPhotoCollectionType();
/**
* The last update time.
*
* @return
*/
long getLastUpdateTime();
/**
* Returns the corresponding photo collection service for this param.
*
* @return
*/
IOfflinePhotoCollectionProcessor getPhotoCollectionProcessor();
}