package com.example;

import android.app.Activity;
import android.app.Application;
import android.os.Bundle;

import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.netcetera.reactnative.twitterkit.EventsHelper;
import com.netcetera.reactnative.twitterkit.ReactTwitterKitPackage;
import com.twitter.sdk.android.tweetui.PlayerActivity;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication, Application.ActivityLifecycleCallbacks {

    private static final String TAG = MainApplication.class.getCanonicalName();

    // set your keys here!

    private static final String CONSUMER_KEY = "ZJOFGUJEzg1VG25lss7hyo5vK";
    private static final String CONSUMER_SECRET = "bj6ywtDPaRV5M90s9Z6CK07Uc2qZYtzSTXWrQrMHdwBUYNQ5k6";

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
        @Override
        public boolean getUseDeveloperSupport() {
            return BuildConfig.DEBUG;
        }

        @Override
        protected List<ReactPackage> getPackages() {
            return Arrays.<ReactPackage>asList(
                    new MainReactPackage(),
                    new ReactTwitterKitPackage(CONSUMER_KEY, CONSUMER_SECRET)
            );
        }
    };

    @Override
    public ReactNativeHost getReactNativeHost() {
        return mReactNativeHost;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        SoLoader.init(this, /* native exopackage */ false);
        registerActivityLifecycleCallbacks(this);
    }

    //to be added in main project start
    //add registerActivityLifecycleCallbacks in onCreate
    //ActivityLifecycleCallbacks start
    @Override
    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
        //for the moment it is not needed to monitor
        //if com.twitter.sdk.android.tweetui.PlayerActivity have been started
    }

    @Override
    public void onActivityDestroyed(Activity activity) {
        if (activity instanceof PlayerActivity) {
            //commented logs to ease adding code in main app
            //LogUtils.d(TAG,"event_activity_destroyed");
            EventsHelper.sendTwitterVideoPlayerActivityDestroyedEvent(activity);
        }
    }

    //these methods can be empty
    @Override
    public void onActivityStarted(Activity activity) {
    }

    //tweet view full screen start
    @Override
    public void onActivityResumed(Activity activity) {
    }

    @Override
    public void onActivityPaused(Activity activity) {
    }

    @Override
    public void onActivityStopped(Activity activity) {
    }

    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
    }
    //ActivityLifecycleCallbacks end
    //to be added in main project end
}