001package com.gigya.android.sdk;
002
003import android.support.annotation.StringDef;
004
005import java.lang.annotation.Retention;
006import java.lang.annotation.RetentionPolicy;
007
008/**
009 * SDK global definitions.
010 * Contains SDK relevant global and specific constants.
011 */
012public class GigyaDefinitions {
013
014    /**
015     * Local broadcast specific constants.
016     */
017    public static class Broadcasts {
018        // ACTIONS
019        public static final String INTENT_ACTION_SESSION_EXPIRED = "intent_action_session_expired";
020        public static final String INTENT_ACTION_SESSION_INVALID = "intent_action_session_invalid";
021        public static final String INTENT_ACTION_REMOTE_MESSAGE = "intent_action_remote_message";
022    }
023
024    /**
025     * Api related specific constants.
026     */
027    public static class API {
028        // ACCOUNT
029        public static final String API_GET_SDK_CONFIG = "socialize.getSDKConfig";
030        public static final String API_LOGIN = "accounts.login";
031        public static final String API_LOGOUT = "accounts.logout";
032        public static final String API_GET_ACCOUNT_INFO = "accounts.getAccountInfo";
033        public static final String API_SET_ACCOUNT_INFO = "accounts.setAccountInfo";
034        public static final String API_RESET_PASSWORD = "accounts.resetPassword";
035        public static final String API_REFRESH_PROVIDER_SESSION = "socialize.refreshProviderSession";
036        public static final String API_INIT_REGISTRATION = "accounts.initRegistration";
037        public static final String API_REGISTER = "accounts.register";
038        public static final String API_FINALIZE_REGISTRATION = "accounts.finalizeRegistration";
039        public static final String API_GET_CONFLICTING_ACCOUNTS = "accounts.getConflictingAccount";
040        public static final String API_NOTIFY_LOGIN = "accounts.notifyLogin";
041        public static final String API_VERIFY_LOGIN = "accounts.verifyLogin";
042        public static final String API_NOTIFY_SOCIAL_LOGIN = "accounts.notifySocialLogin";
043        public static final String API_REMOVE_CONNECTION = "socialize.removeConnection";
044        public static final String API_TFA_GET_PROVIDERS = "accounts.tfa.getProviders";
045
046        public static final String API_AUTH_UPDATE_DEVICE = "accounts.auth.push.updateDevice";
047    }
048
049    public static class SessionEncryption {
050
051        @Retention(RetentionPolicy.SOURCE)
052        @StringDef({DEFAULT, FINGERPRINT})
053        public @interface Type {
054
055        }
056
057        public static final String DEFAULT = "DEFAULT";
058        public static final String FINGERPRINT = "FINGERPRINT";
059    }
060
061    /**
062     * Plugin view specific constants.
063     */
064    public static class Plugin {
065
066        @Retention(RetentionPolicy.SOURCE)
067        @StringDef({FINISHED, CANCELED})
068        public @interface PluginReason {
069
070        }
071
072        public static final String FINISHED = "finished";
073        public static final String CANCELED = "canceled";
074    }
075
076    /**
077     * Supported login providers specific constants.
078     */
079    public static class Providers {
080
081        @Retention(RetentionPolicy.SOURCE)
082        @StringDef({AMAZON, BLOGGER, FACEBOOK, FOURSQUARE, GOOGLE, INSTAGRAM, KAKAO, LINE, LINKEDIN, WECHAT,
083                LIVEDOOR, MESSENGER, MIXI, NAVER, NETLOG, ODNOKLASSNIKI, ORANGE_FRANCE, PAYPALOAUTH, TENCENT_QQ, RENREN, SINA_WEIBO,
084                SPICEWORKS, TWITTER, VKONTAKTE, WECHAT, WORDPRESS, XING, YAHOO, YAHOO_JAPAN, APPLE})
085        public @interface SocialProvider {
086        }
087
088        public static final String AMAZON = "amazon";
089        public static final String BLOGGER = "blogger";
090        public static final String FACEBOOK = "facebook";
091        public static final String FOURSQUARE = "foursquare";
092        public static final String GOOGLE = "google";
093        public static final String INSTAGRAM = "Instagram";
094        public static final String KAKAO = "kakao";
095        public static final String LINE = "line";
096        public static final String LINKEDIN = "linkedin";
097        public static final String LIVEDOOR = "livedoor";
098        public static final String MESSENGER = "messenger";
099        public static final String MIXI = "mixi";
100        public static final String NAVER = "naver";
101        public static final String NETLOG = "netlog";
102        public static final String ODNOKLASSNIKI = "odnoklassniki";
103        public static final String ORANGE_FRANCE = "orange france";
104        public static final String PAYPALOAUTH = "paypaloauth";
105        public static final String TENCENT_QQ = "tencent qq";
106        public static final String RENREN = "renren";
107        public static final String SINA_WEIBO = "sina weibo";
108        public static final String SPICEWORKS = "spiceworks";
109        public static final String TWITTER = "twitter";
110        public static final String VKONTAKTE = "vkontakte";
111        public static final String WECHAT = "wechat";
112        public static final String WORDPRESS = "wordpress";
113        public static final String XING = "xing";
114        public static final String YAHOO = "yahoo";
115        public static final String YAHOO_JAPAN = "Yahoo Japan";
116        public static final String APPLE = "apple";
117    }
118
119    public static class AccountIncludes {
120
121        @Retention(RetentionPolicy.SOURCE)
122        @StringDef({IDENTITIES_ACTIVE, IDENTITIES_ALL, IDENTITIES_GLOBAL, LOGIN_IDS, EMAILS, PROFILE, DATA, PASSWORD, IS_LOCKED_OUT,
123                LAST_LOGIN_LOCATION, REG_SOURCE, I_RANK, RBA, SUBSCRIPTIONS, USER_INFO, PREFERENCES, GROUPS})
124        public @interface Includes {
125
126        }
127
128        public static final String IDENTITIES_ACTIVE = "identities-active";
129        public static final String IDENTITIES_ALL = "identities-all";
130        public static final String IDENTITIES_GLOBAL = "identities-global";
131        public static final String LOGIN_IDS = "loginIDs";
132        public static final String EMAILS = "emails";
133        public static final String PROFILE = "profile";
134        public static final String DATA = "data";
135        public static final String PASSWORD = "password";
136        public static final String IS_LOCKED_OUT = "isLockedOut";
137        public static final String LAST_LOGIN_LOCATION = "lastLoginLocation";
138        public static final String REG_SOURCE = "regSource";
139        public static final String I_RANK = "irank";
140        public static final String RBA = "rba";
141        public static final String SUBSCRIPTIONS = "subscriptions";
142        public static final String USER_INFO = "userInfo";
143        public static final String PREFERENCES = "preferences";
144        public static final String GROUPS = "groups";
145    }
146
147    public static class AccountProfileExtraFields {
148
149        @Retention(RetentionPolicy.SOURCE)
150        @StringDef({LANGUAGES, ADDRESS, PHONES, EDUCATION, EDUCATION_LEVEL, HONORS, PUBLICATIONS, PATENTS, CERTIFICATIONS,
151                PROFESSIONAL_HEADLINE, BIO, INDUSTRY, SPECIALITIES, WORK, SKILLS, RELIGION, POLITICAL_VIEW, INTERESTED_IN,
152                RELATIONSHIP_STATUS, HOMETOWN, FAVORITES, FOLLOWERS_COUNT, FOLLOWING_COUNT, USERNAME, NAME, LOCALE, VERIFIED,
153                TIMEZONE, LIKES, SAMLDATA})
154        public @interface ProfileExtraFields {
155
156        }
157
158        public static final String LANGUAGES = "languages";
159        public static final String ADDRESS = "address";
160        public static final String PHONES = "phones";
161        public static final String EDUCATION = "education";
162        public static final String EDUCATION_LEVEL = "educationLevel";
163        public static final String HONORS = "honors";
164        public static final String PUBLICATIONS = "publications";
165        public static final String PATENTS = "patents";
166        public static final String CERTIFICATIONS = "certifications";
167        public static final String PROFESSIONAL_HEADLINE = "professionalHeadline";
168        public static final String BIO = "bio";
169        public static final String INDUSTRY = "industry";
170        public static final String SPECIALITIES = "specialties";
171        public static final String WORK = "work";
172        public static final String SKILLS = "skills";
173        public static final String RELIGION = "religion";
174        public static final String POLITICAL_VIEW = "politicalView";
175        public static final String INTERESTED_IN = "interestedIn";
176        public static final String RELATIONSHIP_STATUS = "relationshipStatus";
177        public static final String HOMETOWN = "hometown";
178        public static final String FAVORITES = "favorites";
179        public static final String FOLLOWERS_COUNT = "followersCount";
180        public static final String FOLLOWING_COUNT = "followingCount";
181        public static final String USERNAME = "username";
182        public static final String NAME = "name";
183        public static final String LOCALE = "locale";
184        public static final String VERIFIED = "verified";
185        public static final String TIMEZONE = "timezone";
186        public static final String LIKES = "likes";
187        public static final String SAMLDATA = "samlData";
188    }
189
190    public static class PushMode {
191
192        @Retention(RetentionPolicy.SOURCE)
193        @StringDef({OPT_IN, VERIFY, CANCEL})
194
195        public @interface Mode {
196        }
197
198        public static final String OPT_IN = "optin";
199        public static final String VERIFY = "verify";
200        public static final String CANCEL = "cancel";
201    }
202
203}