mirror of
https://github.com/android10/Android-CleanArchitecture.git
synced 2026-03-13 10:13:41 +08:00
Refactor dependency injection components. Create a user component.
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Copyright (C) 2015 android10.org. All rights reserved.
|
||||
* @author Fernando Cejas (the android10 coder)
|
||||
*/
|
||||
package com.fernandocejas.android10.sample.presentation.internal.di;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import javax.inject.Scope;
|
||||
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
/**
|
||||
* A scoping annotation to permit objects whose lifetime should
|
||||
* conform to the life of the activity to be memoized in the
|
||||
* correct component.
|
||||
*/
|
||||
@Scope
|
||||
@Retention(RUNTIME)
|
||||
public @interface PerActivity {}
|
||||
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Copyright (C) 2015 android10.org. All rights reserved.
|
||||
* @author Fernando Cejas (the android10 coder)
|
||||
*/
|
||||
package com.fernandocejas.android10.sample.presentation.internal.di.components;
|
||||
|
||||
import android.app.Activity;
|
||||
import com.fernandocejas.android10.sample.presentation.internal.di.PerActivity;
|
||||
import com.fernandocejas.android10.sample.presentation.internal.di.modules.ActivityModule;
|
||||
import dagger.Component;
|
||||
|
||||
/**
|
||||
* A base component upon which fragment's components may depend.
|
||||
* Activity-level components should extend this component.
|
||||
*
|
||||
* Subtypes of ActivityComponent should be decorated with annotation:
|
||||
* {@link com.fernandocejas.android10.sample.presentation.internal.di.PerActivity}
|
||||
*/
|
||||
@PerActivity
|
||||
@Component(dependencies = ApplicationComponent.class, modules = ActivityModule.class)
|
||||
public interface ActivityComponent {
|
||||
//Exposed to sub-graphs.
|
||||
Activity activity();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Copyright (C) 2015 android10.org. All rights reserved.
|
||||
* @author Fernando Cejas (the android10 coder)
|
||||
*/
|
||||
package com.fernandocejas.android10.sample.presentation.internal.di.components;
|
||||
|
||||
import com.fernandocejas.android10.sample.presentation.internal.di.PerActivity;
|
||||
import com.fernandocejas.android10.sample.presentation.internal.di.modules.ActivityModule;
|
||||
import com.fernandocejas.android10.sample.presentation.internal.di.modules.UserModule;
|
||||
import com.fernandocejas.android10.sample.presentation.view.fragment.UserDetailsFragment;
|
||||
import com.fernandocejas.android10.sample.presentation.view.fragment.UserListFragment;
|
||||
import dagger.Component;
|
||||
|
||||
@PerActivity
|
||||
@Component(dependencies = ApplicationComponent.class, modules = {ActivityModule.class, UserModule.class})
|
||||
public interface UserComponent extends ActivityComponent {
|
||||
void inject(UserListFragment userListFragment);
|
||||
void inject(UserDetailsFragment userDetailsFragment);
|
||||
}
|
||||
Reference in New Issue
Block a user