Search in sources :

Example 1 with PreferenceListener

use of roboguice.inject.PreferenceListener in project roboguice by roboguice.

the class DefaultRoboModule method configure.

/**
     * Configure this module to define Android related bindings.
     */
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
protected void configure() {
    final Provider<Context> contextProvider = getProvider(Context.class);
    final EventListenerThreadingDecorator observerThreadingDecorator = new EventListenerThreadingDecorator();
    // Singletons
    bind(ViewListener.class).toInstance(viewListener);
    // ContextSingleton bindings
    bindScope(ContextSingleton.class, contextScope);
    //we need to super bind as we inject the scope by code only, not by annotations
    superbind(ContextScope.class).toInstance(contextScope);
    bind(AssetManager.class).toProvider(AssetManagerProvider.class);
    bind(Context.class).toProvider(NullProvider.<Context>instance()).in(ContextSingleton.class);
    bind(Activity.class).toProvider(NullProvider.<Activity>instance()).in(ContextSingleton.class);
    bind(RoboActivity.class).toProvider(NullProvider.<RoboActivity>instance()).in(ContextSingleton.class);
    bind(Service.class).toProvider(NullProvider.<Service>instance()).in(ContextSingleton.class);
    bind(RoboService.class).toProvider(NullProvider.<RoboService>instance()).in(ContextSingleton.class);
    // Sundry Android Classes
    bind(SharedPreferences.class).toProvider(SharedPreferencesProvider.class);
    bind(Resources.class).toProvider(ResourcesProvider.class);
    bind(ContentResolver.class).toProvider(ContentResolverProvider.class);
    bind(Application.class).toInstance(application);
    bind(EventListenerThreadingDecorator.class).toInstance(observerThreadingDecorator);
    bind(EventManager.class).annotatedWith(Names.named(GLOBAL_EVENT_MANAGER_NAME)).to(EventManager.class).asEagerSingleton();
    bind(Handler.class).toProvider(HandlerProvider.class);
    // System Services
    for (Entry<Class, String> entry : mapSystemSericeClassToName.entrySet()) {
        bindSystemService(entry.getKey(), entry.getValue());
    }
    // System Services that must be scoped to current context
    bind(LayoutInflater.class).toProvider(new ContextScopedSystemServiceProvider<LayoutInflater>(contextProvider, Context.LAYOUT_INFLATER_SERVICE));
    bind(SearchManager.class).toProvider(new ContextScopedSystemServiceProvider<SearchManager>(contextProvider, Context.SEARCH_SERVICE));
    // Android Resources, Views and extras require special handling
    if (hasInjectionPointsForAnnotation(InjectResource.class)) {
        bindListener(Matchers.any(), resourceListener);
    }
    if (hasInjectionPointsForAnnotation(InjectExtra.class)) {
        final ExtrasListener extrasListener = new ExtrasListener(contextProvider);
        bindListener(Matchers.any(), extrasListener);
    }
    //should be bound only if we use InjectView or InjectFragment
    bindListener(Matchers.any(), viewListener);
    final PreferenceListener preferenceListener = new PreferenceListener(contextProvider, application);
    superbind(PreferenceListener.class).toInstance(preferenceListener);
    if (hasInjectionPointsForAnnotation(InjectPreference.class)) {
        bindListener(Matchers.any(), preferenceListener);
    }
    //should always be bound as ContentViewListener relies on event system
    bindListener(Matchers.any(), new ObservesTypeListener(getProvider(EventManager.class), observerThreadingDecorator));
    requestInjection(observerThreadingDecorator);
    if (isInjectable(Ln.class)) {
        bind(LnInterface.class).to(LnImpl.class);
        //should this be placed in if statement ?
        requestStaticInjection(Ln.class);
    }
    bindDynamicBindings();
}
Also used : RoboService(roboguice.service.RoboService) ViewListener(roboguice.inject.ViewListener) RoboActivity(roboguice.activity.RoboActivity) Activity(android.app.Activity) ContentResolver(android.content.ContentResolver) RoboActivity(roboguice.activity.RoboActivity) Context(android.content.Context) ObservesTypeListener(roboguice.event.ObservesTypeListener) AssetManager(android.content.res.AssetManager) EventManager(roboguice.event.EventManager) EventListenerThreadingDecorator(roboguice.event.eventListener.factory.EventListenerThreadingDecorator) SharedPreferences(android.content.SharedPreferences) SearchManager(android.app.SearchManager) ExtrasListener(roboguice.inject.ExtrasListener) ContextScope(roboguice.inject.ContextScope) Service(android.app.Service) RoboService(roboguice.service.RoboService) Handler(android.os.Handler) PreferenceListener(roboguice.inject.PreferenceListener) LnInterface(roboguice.util.LnInterface) LayoutInflater(android.view.LayoutInflater) Resources(android.content.res.Resources) Application(android.app.Application)

Example 2 with PreferenceListener

use of roboguice.inject.PreferenceListener in project roboguice by roboguice.

the class RoboSherlockPreferenceActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    final RoboInjector injector = RoboGuice.getInjector(this);
    eventManager = injector.getInstance(EventManager.class);
    preferenceListener = injector.getInstance(PreferenceListener.class);
    injector.injectMembersWithoutViews(this);
    super.onCreate(savedInstanceState);
    eventManager.fire(new OnCreateEvent<Activity>(this, savedInstanceState));
}
Also used : RoboInjector(roboguice.inject.RoboInjector) EventManager(roboguice.event.EventManager) PreferenceListener(roboguice.inject.PreferenceListener) SherlockPreferenceActivity(com.actionbarsherlock.app.SherlockPreferenceActivity) Activity(android.app.Activity)

Example 3 with PreferenceListener

use of roboguice.inject.PreferenceListener in project roboguice by roboguice.

the class RoboPreferenceActivity method onCreate.

/** {@inheritDoc } */
@Override
protected void onCreate(Bundle savedInstanceState) {
    final RoboInjector injector = RoboGuice.getInjector(this);
    eventManager = injector.getInstance(EventManager.class);
    preferenceListener = injector.getInstance(PreferenceListener.class);
    injector.injectMembersWithoutViews(this);
    super.onCreate(savedInstanceState);
    eventManager.fire(new OnCreateEvent<Activity>(this, savedInstanceState));
}
Also used : RoboInjector(roboguice.inject.RoboInjector) EventManager(roboguice.event.EventManager) PreferenceListener(roboguice.inject.PreferenceListener) PreferenceActivity(android.preference.PreferenceActivity) Activity(android.app.Activity)

Aggregations

Activity (android.app.Activity)3 EventManager (roboguice.event.EventManager)3 PreferenceListener (roboguice.inject.PreferenceListener)3 RoboInjector (roboguice.inject.RoboInjector)2 Application (android.app.Application)1 SearchManager (android.app.SearchManager)1 Service (android.app.Service)1 ContentResolver (android.content.ContentResolver)1 Context (android.content.Context)1 SharedPreferences (android.content.SharedPreferences)1 AssetManager (android.content.res.AssetManager)1 Resources (android.content.res.Resources)1 Handler (android.os.Handler)1 PreferenceActivity (android.preference.PreferenceActivity)1 LayoutInflater (android.view.LayoutInflater)1 SherlockPreferenceActivity (com.actionbarsherlock.app.SherlockPreferenceActivity)1 RoboActivity (roboguice.activity.RoboActivity)1 ObservesTypeListener (roboguice.event.ObservesTypeListener)1 EventListenerThreadingDecorator (roboguice.event.eventListener.factory.EventListenerThreadingDecorator)1 ContextScope (roboguice.inject.ContextScope)1