Skip to content

Commit a56455c

Browse files
committed
Minor refactor for injecting Base Activity dependencies.
1 parent f46cc1d commit a56455c

File tree

4 files changed

+19
-26
lines changed

4 files changed

+19
-26
lines changed

presentation/src/main/java/com/fernandocejas/android10/sample/presentation/AndroidApplication.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.fernandocejas.android10.sample.presentation.internal.di.components.ApplicationComponent;
99
import com.fernandocejas.android10.sample.presentation.internal.di.components.Dagger_ApplicationComponent;
1010
import com.fernandocejas.android10.sample.presentation.internal.di.modules.ApplicationModule;
11+
import com.fernandocejas.android10.sample.presentation.view.activity.BaseActivity;
1112

1213
/**
1314
* Android Main Application
@@ -18,10 +19,17 @@ public class AndroidApplication extends Application {
1819

1920
@Override public void onCreate() {
2021
super.onCreate();
22+
this.initializeInjector();
23+
}
2124

25+
private void initializeInjector() {
2226
this.applicationComponent = Dagger_ApplicationComponent.builder()
2327
.applicationModule(new ApplicationModule(this))
2428
.build();
2529
this.applicationComponent.inject(this);
2630
}
31+
32+
public void inject(BaseActivity baseActivity) {
33+
this.applicationComponent.inject(baseActivity);
34+
}
2735
}

presentation/src/main/java/com/fernandocejas/android10/sample/presentation/internal/di/components/ActivityComponent.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

presentation/src/main/java/com/fernandocejas/android10/sample/presentation/internal/di/components/ApplicationComponent.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,15 @@
55
package com.fernandocejas.android10.sample.presentation.internal.di.components;
66

77
import com.fernandocejas.android10.sample.presentation.AndroidApplication;
8+
import com.fernandocejas.android10.sample.presentation.internal.di.modules.ActivityModule;
89
import com.fernandocejas.android10.sample.presentation.internal.di.modules.ApplicationModule;
10+
import com.fernandocejas.android10.sample.presentation.view.activity.BaseActivity;
911
import dagger.Component;
12+
import javax.inject.Singleton;
1013

11-
@Component(modules = ApplicationModule.class)
14+
@Singleton
15+
@Component(modules = {ApplicationModule.class, ActivityModule.class})
1216
public interface ApplicationComponent {
13-
AndroidApplication inject(AndroidApplication androidApplication);
17+
void inject(AndroidApplication androidApplication);
18+
void inject(BaseActivity activity);
1419
}

presentation/src/main/java/com/fernandocejas/android10/sample/presentation/view/activity/BaseActivity.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
import android.app.Fragment;
55
import android.app.FragmentTransaction;
66
import android.os.Bundle;
7-
import com.fernandocejas.android10.sample.presentation.internal.di.components.ActivityComponent;
8-
import com.fernandocejas.android10.sample.presentation.internal.di.components.Dagger_ActivityComponent;
9-
import com.fernandocejas.android10.sample.presentation.internal.di.modules.ActivityModule;
7+
import com.fernandocejas.android10.sample.presentation.AndroidApplication;
108
import com.fernandocejas.android10.sample.presentation.navigation.Navigator;
119
import javax.inject.Inject;
1210

@@ -15,20 +13,16 @@
1513
*/
1614
public abstract class BaseActivity extends Activity {
1715

18-
ActivityComponent activityComponent;
19-
2016
@Inject Navigator navigator;
2117

2218
@Override
2319
protected void onCreate(Bundle savedInstanceState) {
2420
super.onCreate(savedInstanceState);
25-
26-
this.activityComponent = Dagger_ActivityComponent.builder()
27-
.activityModule(new ActivityModule())
28-
.build();
29-
this.activityComponent.inject(this);
21+
this.initializeInjector();
3022
}
3123

24+
private void initializeInjector() {((AndroidApplication)getApplication()).inject(this);}
25+
3226
/**
3327
* Adds a {@link Fragment} to this activity's layout.
3428
*

0 commit comments

Comments
 (0)