package cl.monsoon.s1next.widget;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
public final class AppActivityLifecycleCallbacks implements Application.ActivityLifecycleCallbacks {
/**
* Forked from http://stackoverflow.com/a/13809991
*/
private int mVisibleCount;
private final WifiBroadcastReceiver mWifiBroadcastReceiver;
private int mNeedMonitorWifiActivityCount;
public AppActivityLifecycleCallbacks(Context context) {
mWifiBroadcastReceiver = new WifiBroadcastReceiver(context);
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {}
@Override
public void onActivityStarted(Activity activity) {
mVisibleCount++;
}
@Override
public void onActivityResumed(Activity activity) {
if (activity instanceof WifiBroadcastReceiver.NeedMonitorWifi) {
if (mNeedMonitorWifiActivityCount == 0) {
mWifiBroadcastReceiver.registerIfNeeded();
}
mNeedMonitorWifiActivityCount++;
}
}
@Override
public void onActivityPaused(Activity activity) {
if (activity instanceof WifiBroadcastReceiver.NeedMonitorWifi) {
mNeedMonitorWifiActivityCount--;
if (mNeedMonitorWifiActivityCount == 0) {
mWifiBroadcastReceiver.unregisterIfNeeded();
}
}
}
@Override
public void onActivityStopped(Activity activity) {
mVisibleCount--;
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {}
@Override
public void onActivityDestroyed(Activity activity) {}
public boolean isAppVisible() {
return mVisibleCount > 0;
}
}