title: Dagger v2: Inject 2 different scopes into one object
body: <p>I have moduleA setup as an application wide singleton provider, ModuleB as a user related object provider</p>
  
  <p>My user display fragment will use system wide bus to send message to others and use user related object to display.</p>
  
  <p>Problem cannot inject different scrope class into one object. Use component.getX method works fine, but inject is prefered way. 
  Error message:
  <strong>@UserScope may not reference bindings with difference scopes: @Provides @Singleton Bus ModuleA.provideBus()</strong></p>
  
  <pre><code>@Module
  public class ModuleA {
    @Provides @Singleton Bus provideBus() {...}
  }
  </code></pre>
  
  <p>Module B as user related Info provider</p>
  
  <pre><code>@Module
  public class ModuleB{
    private final User user;
    public ModuleB(User user) {...}
    @Provides @UserScope User provideUser() {}
    @Provides @UserScope UserManager provideUserManager() {}
  }
  </code></pre>
  
  <p>Components setup like following:</p>
  
  <pre><code>@Component (modules={ModuleA.class})
  @Singleton
  public interface ComponentA {
    Bus getBus();
    void inject(ClassA target);
  }
  
  @Component(modules={ModuleB.class})
  @UserScope
  public interface ComponentB {
    User getUser();
    UserManager getUserManager();
    void inject(ClassA target);
  }
  
  
  class UserFragment exrtends Fragment {
     @Inject Bus bus;
     @Inject UserManager userManager;
     public void onCreate() {
        getComponentA().inject(this);
        getComponentB().inject(this);
     }
  }
  </code></pre>