package roboguice.inject;
import roboguice.RoboGuice;
import com.google.inject.Inject;
import com.google.inject.Provider;
import android.content.Context;
public class ContextScopedProvider<T> {
@Inject protected Provider<T> provider;
public T get(Context context) {
//see https://github.com/roboguice/roboguice/issues/112
final ContextScope scope = RoboGuice.getInjector(context).getInstance(ContextScope.class);
synchronized (ContextScope.class) {
scope.enter(context);
try {
return provider.get();
} finally {
scope.exit(context);
}
}
}
}