Example usage for android.app Application registerReceiver

List of usage examples for android.app Application registerReceiver

Introduction

In this page you can find the example usage for android.app Application registerReceiver.

Prototype

@Override
    public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) 

Source Link

Usage

From source file:com.popdeem.sdk.core.PopdeemSDK.java

/**
 * Initialize Popdeem SDK//w w  w  .  j a v  a  2 s . com
 *
 * @param application Application context
 * @param enviroment Popdeem enviroment PD_PROD_API_ENDPOINT, PD_STAGING_API_ENDPOINT
 *
 */
public static void initializeSDK(@NonNull final Application application, String enviroment) {

    application.registerReceiver(mLoggedInBroadcastReceiver, new IntentFilter(PD_LOGGED_IN_RECEIVER_FILTER));

    PDAPIConfig.PD_API_ENDPOINT = enviroment;
    sApplication = application;

    // Register Activity Lifecycle Callbacks
    application.registerActivityLifecycleCallbacks(PD_ACTIVITY_LIFECYCLE_CALLBACKS);

    // Init Realm
    PDRealmUtils.initRealmDB(application);

    TwitterAuthConfig authConfig = PDSocialUtils.getTwitterAuthConfig(application.getApplicationContext());

    TwitterConfig config = new TwitterConfig.Builder(application).logger(new DefaultLogger(Log.DEBUG))
            .twitterAuthConfig(authConfig).debug(true).build();
    Twitter.initialize(config);

    // Get Popdeem API Key
    getPopdeemAPIKey();
    FacebookSdk.sdkInitialize(application, new FacebookSdk.InitializeCallback() {
        @Override
        public void onInitialized() {
            Log.i("Facebook", "onInitialized: Facebook initialized");
        }
    });

    sdkInitialized = true;

    PDAPIClient.instance().getCustomer(new PDAPICallback<JsonObject>() {
        @Override
        public void success(JsonObject jsonObject) {
            Log.i("JsonObject", "success: ");
            if (jsonObject.has("customer")) {
                JsonObject customer = jsonObject.getAsJsonObject("customer");
                PDRealmCustomer realmCustomer = PDRealmCustomer.fromJson(customer);

                Realm realm = Realm.getDefaultInstance();
                realm.beginTransaction();
                RealmResults<PDRealmCustomer> results = realm.where(PDRealmCustomer.class).findAll();
                results.deleteAllFromRealm();
                realm.copyToRealm(realmCustomer);
                realm.commitTransaction();
                realm.close();
                initFromCustomer(application);

            }
        }

        @Override
        public void failure(int statusCode, Exception e) {
            e.printStackTrace();
            initFromCustomer(application);

        }
    });

    // Get UID for Non Social login
    if (PDUniqueIdentifierUtils.getUID() == null) {
        PDUniqueIdentifierUtils.createUID(application, new PDUniqueIdentifierUtils.PDUIDCallback() {
            @Override
            public void success(String uid) {
                PDRealmNonSocialUID uidReam = new PDRealmNonSocialUID();
                //                    uidReam.setId(0);
                uidReam.setRegistered(false);
                uidReam.setUid(uid);

                Realm realm = Realm.getDefaultInstance();
                realm.beginTransaction();
                realm.copyToRealmOrUpdate(uidReam);
                realm.commitTransaction();
                realm.close();

                registerNonSocialUser();
            }

            @Override
            public void failure(String message) {
                PDLog.d(PDUniqueIdentifierUtils.class, "failed to create uid: " + message);
            }
        });
    }

    // Init GCM
    PDFirebaseMessagingService.initGCM(application, new PDGCMUtils.PDGCMRegistrationCallback() {
        @Override
        public void success(String registrationToken) {
            PDLog.d(PDGCMUtils.class, "Init GCM success. Registration token: " + registrationToken);
            registerNonSocialUser();
        }

        @Override
        public void failure(String message) {
            PDLog.d(PDGCMUtils.class, "Init GCM failure: " + message);
        }
    });

}