import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import com.google.analytics.tracking.android.EasyTracker;

public class MainApplication extends Application {
    
    private boolean locationNeedsUpdated = true;
    private int createdActivityInstanceCount = 0;
    
    @Override
    public void onCreate() {
        super.onCreate();
        appBackgroundedDetector();
    }

    private void appBackgroundedDetector() {
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle bundle) {
                createdActivityInstanceCount++;
            }

            @Override
            public void onActivityStarted(Activity activity) {
                //EasyTracker.getInstance(MainApplication.this).activityStart(activity);
            }

            @Override
            public void onActivityResumed(Activity activity) {
                if (locationNeedsUpdated && (createdActivityInstanceCount == 0)) {
                    // TODO update location
                    locationNeedsUpdated = false;
                }
            }

            @Override
            public void onActivityPaused(Activity activity) {
                
            }

            @Override
            public void onActivityStopped(Activity activity) {
                EasyTracker.getInstance(MainApplication.this).activityStop(activity);
            }

            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {

            }

            @Override
            public void onActivityDestroyed(Activity activity) {
                createdActivityInstanceCount--;
                if (createdActivityInstanceCount <= 0) {
                    createdActivityInstanceCount = 0;
                    locationNeedsUpdated = true;
                }
            }
        });
    }
}