andreluizreis
10/24/2017 - 8:01 PM

Background Helper

// From: https://stackoverflow.com/questions/8384067/how-to-dismiss-the-dialog-with-click-on-outside-of-the-dialog

import java.util.Timer;
import java.util.TimerTask;

/**
 * Background Helper
 */
public class BackgroundHelper {
    // region ATTRIBUTES =========================================================

    private static Timer mActivityTransitionTimer;
    private static TimerTask mActivityTransitionTimerTask;
    private static boolean isBackground;
    private static final long MAX_ACTIVITY_TRANSITION_TIME_MS = 2000;

    // endregion =================================================================

    // region METHOD =============================================================

    /**
     * start Activity Transition Timer
     */
    public static void startActivityTransitionTimer() {
        mActivityTransitionTimer = new Timer();
        mActivityTransitionTimerTask = new TimerTask() {
            public void run() {
                isBackground = true;
            }
        };

        mActivityTransitionTimer.schedule(mActivityTransitionTimerTask,
            MAX_ACTIVITY_TRANSITION_TIME_MS);
    }

    /**
     * stop Activity Transition Timer
     */
    public static void stopActivityTransitionTimer() {
        if (mActivityTransitionTimerTask != null) {
            mActivityTransitionTimerTask.cancel();
        }

        if (mActivityTransitionTimer != null) {
            mActivityTransitionTimer.cancel();
        }

        isBackground = false;
    }

    /**
     * The app is in Background
     *
     * @return is background or not
     */
    public static boolean isInBackground() {
        return isBackground;
    }

    // endregion =================================================================
}