package com.progscrape.ui;
import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
public class ActivityPauseNotifier {
private List<ActivityPauseNotification> listeners = new ArrayList<>();
@Inject
public ActivityPauseNotifier(final Application theApp, final Activity theActivity) {
theApp.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
if (activity == theActivity) {
List<ActivityPauseNotification> clone = new ArrayList<>(listeners);
for (ActivityPauseNotification notification : clone)
notification.onResume();
}
}
@Override
public void onActivityPaused(Activity activity) {
if (activity == theActivity) {
List<ActivityPauseNotification> clone = new ArrayList<>(listeners);
for (ActivityPauseNotification notification : clone)
notification.onPause();
}
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
});
}
public void register(ActivityPauseNotification notifier) {
listeners.add(notifier);
}
public void unregister(ActivityPauseNotification notifier) {
listeners.remove(notifier);
}
public interface ActivityPauseNotification {
void onPause();
void onResume();
}
}