title: Dagger 2 Activity context/ApplicationContext modules
body: <p>I'm struggling with dagger 2 in order to understand how i can pass a context or another according to my needs.
  - First I have an ApplicationModule annotated @Singleton since it provides hi level objects like the webservice object, the model ..., generally those objects are passed the ApplicationContext (since the y need to live during the whole Application lifetime)</p>
  
  <pre><code>@Singleton
  @dagger.Component(modules = {
      AppModule.class
  })
  public interface AppComponent {
          void inject(MyApp application);
          Model model();
          Context context();&lt;--- should provide the application Context for the Object above (model)
  ...
  </code></pre>
  
  <p>the implementation looks like that</p>
  
  <pre><code>@dagger.Module
  public class AppModule {
  
      private final Application app;
      public ApplModule(Application app) {
          this.app = app;
      }
  
      @Provides
      @Singleton
      Model provideModel(Bus bus) {
          return new Model(bus);
      }
  
      @Provides
      @Singleton
      Context provideApplicationContext() {
          return app.getApplicationContext();
      }
  ...
  </code></pre>
  
  <ul>
  <li><p>secondly I have an Activity Scope componenet in with I provide the current activity and different views which need a Context.</p>
  
  <pre><code>  @ActivityScope
      @Component(
              dependencies = AppComponent.class
              , modules = {ActivityModule.class}
      )
      public interface ActivityComponent {
          void inject(MyActivity activity);
          Context context(); &lt;---should provide the activity's context
          MyView homeView(); &lt;----takes a Context as a contructor parameter
  </code></pre>
  
  <p>@Module
  public class ActivityModule {
      private final Activity activity;</p>
  
  <pre><code>public ActivityModule(Activity activity) {
  
      this.activity = activity;
  }
  
  @Provides
  @ActivityScope
  public Activity activity() {
      return activity;
  }
  
  
  @Provides
  @ActivityScope
  @Named("viewcontext") &lt;----- if I removed this I get an error from Dagger
  public Context context() {
      return activity;
  }
  
  @Provides
  @ActivityScope
  MyView provideZeView(Bus bus, Model model) { &lt;---- previously receiving the ApplicationContext as a parameter 
      MyView v = new MyView(activity, bus, model); &lt;---- must pass the activity otherwise passing the Context reveived is the ApplicationContext
      return v;
  }
  </code></pre>
  
  <p>so Here are my questions:</p></li>
  <li>I used scopes in order to have a better "granularity" over what is passed and i still get the applicationContext</li>
  <li>If I remove the @Named qulifier i get an error</li>
  <li>previously the Views where produced by another module with a dependence to the ActivityModule but still getting the ApplicationContext</li>
  </ul>
  
  <p>Well the point is I am certainly missing something...but I can't figure what, maybe I misundestood the use of Scopes</p>