// Path: app/src/main/java/com/thoughtworks/startup/StartupApplication.java
// public class StartupApplication extends Application  {
// 
//     ApplicationComponent applicationComponent;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
// 
//         if (BuildConfig.DEBUG) {
//             Timber.plant(new Timber.DebugTree());
//         }
//     }
// 
//     public static StartupApplication get(Context context) {
//         return (StartupApplication) context.getApplicationContext();
//     }
// 
//     public ApplicationComponent getComponent() {
//         if (applicationComponent == null) {
//             applicationComponent = DaggerApplicationComponent.builder()
//                     .applicationModule(new ApplicationModule(this))
//                     .build();
//         }
//         return applicationComponent;
//     }
// 
//     // Needed to replace the component with a test specific one
//     public void setComponent(ApplicationComponent applicationComponent) {
//         this.applicationComponent = applicationComponent;
//     }
// }
// 
// Path: app/src/main/java/com/thoughtworks/startup/injection/component/ActivityComponent.java
// @PerActivity
// @Component(dependencies = ApplicationComponent.class, modules = ActivityModule.class)
// public interface ActivityComponent {
// 
//     void inject(MainActivity mainActivity);
// 
//     void inject(SignInActivity signInActivity);
// 
//     void inject(GitHubListActivity gitHubListActivity);
// 
// }
// 
// Path: app/src/main/java/com/thoughtworks/startup/injection/module/ActivityModule.java
// @Module(includes = {AndroidServicesModule.class})
// public class ActivityModule {
// 
//     private Activity activity;
// 
//     public ActivityModule(Activity activity) {
//         this.activity = activity;
//     }
// 
//     @Provides
//     Activity provideActivity() {
//         return activity;
//     }
// 
//     @Provides
//     @ActivityContext
//     Context providesContext() {
//         return activity;
//     }
// }


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.thoughtworks.startup.StartupApplication;
import com.thoughtworks.startup.injection.component.ActivityComponent;
import com.thoughtworks.startup.injection.component.DaggerActivityComponent;
import com.thoughtworks.startup.injection.module.ActivityModule;
package com.thoughtworks.startup.ui.base;



abstract public class BaseActivity extends AppCompatActivity {

    private ActivityComponent activityComponent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

// Path: app/src/main/java/com/thoughtworks/startup/StartupApplication.java
// public class StartupApplication extends Application  {
// 
//     ApplicationComponent applicationComponent;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
// 
//         if (BuildConfig.DEBUG) {
//             Timber.plant(new Timber.DebugTree());
//         }
//     }
// 
//     public static StartupApplication get(Context context) {
//         return (StartupApplication) context.getApplicationContext();
//     }
// 
//     public ApplicationComponent getComponent() {
//         if (applicationComponent == null) {
//             applicationComponent = DaggerApplicationComponent.builder()
//                     .applicationModule(new ApplicationModule(this))
//                     .build();
//         }
//         return applicationComponent;
//     }
// 
//     // Needed to replace the component with a test specific one
//     public void setComponent(ApplicationComponent applicationComponent) {
//         this.applicationComponent = applicationComponent;
//     }
// }
// 
// Path: app/src/main/java/com/thoughtworks/startup/injection/component/ActivityComponent.java
// @PerActivity
// @Component(dependencies = ApplicationComponent.class, modules = ActivityModule.class)
// public interface ActivityComponent {
// 
//     void inject(MainActivity mainActivity);
// 
//     void inject(SignInActivity signInActivity);
// 
//     void inject(GitHubListActivity gitHubListActivity);
// 
// }
// 
// Path: app/src/main/java/com/thoughtworks/startup/injection/module/ActivityModule.java
// @Module(includes = {AndroidServicesModule.class})
// public class ActivityModule {
// 
//     private Activity activity;
// 
//     public ActivityModule(Activity activity) {
//         this.activity = activity;
//     }
// 
//     @Provides
//     Activity provideActivity() {
//         return activity;
//     }
// 
//     @Provides
//     @ActivityContext
//     Context providesContext() {
//         return activity;
//     }
// }


// Path: app/src/main/java/com/thoughtworks/startup/ui/base/BaseActivity.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.thoughtworks.startup.StartupApplication;
import com.thoughtworks.startup.injection.component.ActivityComponent;
import com.thoughtworks.startup.injection.component.DaggerActivityComponent;
import com.thoughtworks.startup.injection.module.ActivityModule;

package com.thoughtworks.startup.ui.base;



abstract public class BaseActivity extends AppCompatActivity {

    private ActivityComponent activityComponent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    public ActivityComponent getActivityComponent() {