package novoda.leanplumcallbacks; import com.leanplum.callbacks.VariablesChangedCallback; import java.lang.ref.WeakReference; class WeakStartCallback extends VariablesChangedCallback { private final WeakReference<AbTestingParamsLoadedCallback> weakCallback; /** * calls onParamsLoaded() if the referenced class (most likely Activity) is still valid */ public static WeakStartCallback newInstance(AbTestingParamsLoadedCallback callback) { return new WeakStartCallback(new WeakReference<AbTestingParamsLoadedCallback>(callback)); } WeakStartCallback(WeakReference<AbTestingParamsLoadedCallback> weakCallback) { this.weakCallback = weakCallback; } @Override public void variablesChanged() { AbTestingParamsLoadedCallback callback = weakCallback.get(); if (callback != null) { callback.onParamsLoaded(); } } }