package cgeo.geocaching; import cgeo.geocaching.enumerations.CacheListType; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import org.apache.commons.lang3.StringUtils; public class Intents { public static final int SETTINGS_ACTIVITY_REQUEST_CODE = 1; public static final int SEARCH_REQUEST_CODE = 2; public static final int APP_INVITE_REQUEST_CODE = 3; private static final String PREFIX = "cgeo.geocaching.intent.extra."; public static final String EXTRA_ADDRESS = PREFIX + "address"; public static final String EXTRA_COORDS = PREFIX + "coords"; public static final String EXTRA_LATITUDE = PREFIX + "latitude"; public static final String EXTRA_LONGITUDE = PREFIX + "longitude"; public static final String EXTRA_COUNT = PREFIX + "count"; public static final String EXTRA_GEOCODE = PREFIX + "geocode"; public static final String EXTRA_GEOCACHE = PREFIX + "geocache"; public static final String EXTRA_GUID = PREFIX + "guid"; public static final String EXTRA_BRAND = PREFIX + "brand"; public static final String EXTRA_IMAGE = PREFIX + "image"; public static final String EXTRA_IMAGES = PREFIX + "images"; public static final String EXTRA_ID = PREFIX + "id"; public static final String EXTRA_KEYWORD = PREFIX + "keyword"; public static final String EXTRA_KEYWORD_SEARCH = PREFIX + "keyword_search"; public static final String EXTRA_LIST_ID = PREFIX + "list_id"; public static final String EXTRA_COORD_DESCRIPTION = PREFIX + "coord_description"; public static final String EXTRA_SCALE = PREFIX + "scale"; public static final String EXTRA_WPT_PAGE_UPDATE = PREFIX + "wpt_page_update"; public static final String EXTRA_WPTTYPE = PREFIX + "wpttype"; public static final String EXTRA_MAPSTATE = PREFIX + "mapstate"; public static final String EXTRA_TITLE = PREFIX + "title"; public static final String EXTRA_MAP_MODE = PREFIX + "mapMode"; public static final String EXTRA_LIVE_ENABLED = PREFIX + "liveEnabled"; public static final String EXTRA_STORED_ENABLED = PREFIX + "storedEnabled"; public static final String EXTRA_DOWNLOAD = PREFIX + "download"; public static final String EXTRA_TARGET_INFO = PREFIX + "targetInfo"; /** * list type to be used with the cache list activity. Be aware to use the String representation of the corresponding * enum. */ private static final String EXTRA_LIST_TYPE = PREFIX + "list_type"; public static final String EXTRA_MAP_FILE = PREFIX + "map_file"; public static final String EXTRA_NAME = PREFIX + "name"; public static final String EXTRA_SEARCH = PREFIX + "search"; public static final String EXTRA_START_DIR = PREFIX + "start_dir"; public static final String EXTRA_TRACKING_CODE = PREFIX + "tracking_code"; public static final String EXTRA_USERNAME = PREFIX + "username"; public static final String EXTRA_WAYPOINT_ID = PREFIX + "waypoint_id"; public static final String EXTRA_CACHELIST = PREFIX + "cache_list"; public static final String EXTRA_POCKET_GUID = PREFIX + "pocket_guid"; private static final String PREFIX_ACTION = "cgeo.geocaching.intent.action."; public static final String ACTION_GEOCACHE = PREFIX_ACTION + "GEOCACHE"; public static final String ACTION_TRACKABLE = PREFIX_ACTION + "TRACKABLE"; private static final String PREFIX_OAUTH = "cgeo.geocaching.intent.oauth."; public static final String EXTRA_OAUTH_HOST = PREFIX_OAUTH + "host"; public static final String EXTRA_OAUTH_PATH_REQUEST = PREFIX_OAUTH + "request"; public static final String EXTRA_OAUTH_PATH_AUTHORIZE = PREFIX_OAUTH + "authorize"; public static final String EXTRA_OAUTH_PATH_ACCESS = PREFIX_OAUTH + "access"; public static final String EXTRA_OAUTH_HTTPS = PREFIX_OAUTH + "https"; public static final String EXTRA_OAUTH_CONSUMER_KEY = PREFIX_OAUTH + "ConsumerKey"; public static final String EXTRA_OAUTH_CONSUMER_SECRET = PREFIX_OAUTH + "ConsumerSecret"; public static final String EXTRA_OAUTH_CALLBACK = PREFIX_OAUTH + "callback"; public static final String EXTRA_OAUTH_TITLE_RES_ID = PREFIX_OAUTH + "titleresId"; public static final String EXTRA_OAUTH_TEMP_TOKEN_KEY_PREF = PREFIX_OAUTH + "tempKeyPref"; public static final String EXTRA_OAUTH_TEMP_TOKEN_SECRET_PREF = PREFIX_OAUTH + "tempSecretPref"; public static final String EXTRA_OAUTH_TOKEN_PUBLIC_KEY = PREFIX_OAUTH + "publicTokenPref"; public static final String EXTRA_OAUTH_TOKEN_SECRET_KEY = PREFIX_OAUTH + "secretTokenPref"; private static final String PREFIX_TOKEN_AUTH = "cgeo.geocaching.intent.tokenauth."; public static final String EXTRA_TOKEN_AUTH_URL_TOKEN = PREFIX_TOKEN_AUTH + "token"; public static final String EXTRA_TOKEN_AUTH_URL_REGISTER = PREFIX_TOKEN_AUTH + "register"; public static final String EXTRA_TOKEN_AUTH_USERNAME = PREFIX_TOKEN_AUTH + "username"; public static final String EXTRA_TOKEN_AUTH_PASSWORD = PREFIX_TOKEN_AUTH + "password"; private static final String PREFIX_CREDENTIALS_AUTH = "cgeo.geocaching.intent.credentialsauth."; public static final String EXTRA_CREDENTIALS_AUTH_USERNAME = PREFIX_CREDENTIALS_AUTH + "username"; public static final String EXTRA_CREDENTIALS_AUTH_PASSWORD = PREFIX_CREDENTIALS_AUTH + "password"; private static final String PREFIX_INTERNAL = "cgeo.geocaching.intent.internal."; public static final String INTENT_CACHE_CHANGED = PREFIX_INTERNAL + "cache-changed"; private Intents() { // Do not instantiate } public static Intent putListType(final Intent intent, @NonNull final CacheListType listType) { intent.putExtra(EXTRA_LIST_TYPE, listType.name()); return intent; } @NonNull public static CacheListType getListType(final Intent intent) { final Bundle extras = intent.getExtras(); if (extras == null) { return CacheListType.OFFLINE; } final String typeName = extras.getString(EXTRA_LIST_TYPE); if (StringUtils.isBlank(typeName)) { return CacheListType.OFFLINE; } try { return CacheListType.valueOf(typeName); } catch (final IllegalArgumentException ignored) { return CacheListType.OFFLINE; } } }