Skip to content

Instantly share code, notes, and snippets.

View matzuk's full-sized avatar
🏠
Working from home

Evgenii Matsiuk matzuk

🏠
Working from home
View GitHub Profile
@Component(modules = {
ScannerFeatureModule.class,
ScreenNavigationModule.class
}, dependencies = ScannerFeatureDependencies.class)
@PerFeature
public abstract class ScannerFeatureComponent implements ScannerFeatureApi {
// bla-bla-bla
@Component(dependencies = {
@Component(dependencies = {
CoreUtilsApi.class,
CoreNetworkApi.class,
CoreDbApi.class,
PurchaseFeatureApi.class
})
@PerFeature
interface ScannerFeatureDependenciesComponent extends ScannerFeatureDependencies { }
// bla-bla-bla
dependencies {
implementation project(':core-utils')
implementation project(':core-network-api')
implementation project(':core-db-api')
implementation project(':feature-purchase-api')
implementation project(':feature-scanner-api')
// bla-bla-bla
}
public interface ScannerFeatureDependencies {
// core-db-api
DbClientApi dbClient();
// core-network-api
HttpClientApi httpClient();
// core-utils
SomeUtils someUtils();
// feature-purchase-api
PurchaseInteractor purchaseInteractor();
// bla-bla-bla
dependencies {
implementation project(':core-utils')
implementation project(':core-network-api')
implementation project(':core-db-api')
implementation project(':feature-purchase-api')
implementation project(':feature-scanner-api')
// bla-bla-bla
}
public interface ScannerFeatureDependencies {
// core-db-api
DbClientApi dbClient();
// core-network-api
HttpClientApi httpClient();
// core-utils
SomeUtils someUtils();
// feature-purchase-api
PurchaseInteractor purchaseInteractor();
// bla-bla-bla
dependencies {
implementation project(':core-db-api')
// bla-bla-bla
}
@Component(modules = {
ScannerFeatureModule.class,
ScreenNavigationModule.class
// ScannerFeatureDependencies - api of Scanner feature dependencies
}, dependencies = ScannerFeatureDependencies.class)
@PerFeature
// ScannerFeatureApi - api of Scanner feature
public abstract class ScannerFeatureComponent implements ScannerFeatureApi {
private static volatile ScannerFeatureComponent sScannerFeatureComponent;
public interface ScannerStarter {
void start(Context context);
}
@PerFeature
public class ScannerStarterImpl implements ScannerStarter {
@Inject
public ScannerStarterImpl() {
}
public interface ScannerFeatureApi {
ScannerStarter scannerStarter();
}