// Path: app/src/main/java/info/izumin/android/sunazuri/data/DataComponent.java
// @DataScope
// @Component(
//         dependencies = {
//                 InfrastructureComponent.class
//         },
//         modules = {
//                 ActionModule.class,
//                 DataModule.class
//         }
// )
// public interface DataComponent {
//     RootStore rootStore();
//     OauthParams oauthParams();
// 
//     UserActionCreator userActionCreator();
//     TeamActionCreator teamActionCreator();
// 
//     // for Picasso
//     OkHttpClient okHttpClient();
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/presentation/activity/main/MainComponent.java
// @MainScope
// @Subcomponent(
//         modules = MainModule.class
// )
// public interface MainComponent {
//     void inject(MainActivity activity);
// 
//     WelcomeComponent plus(WelcomeModule module);
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/presentation/activity/main/MainModule.java
// @Module
// public class MainModule {
//     public static final String TAG = MainModule.class.getSimpleName();
// 
//     private final MainContract.View view;
// 
//     MainModule(MainContract.View view) {
//         this.view = view;
//     }
// 
//     @Provides
//     @MainScope
//     @ActivityContext
//     Context activityContext() {
//         return view.getActivityContext();
//     }
// 
//     @Provides
//     @MainScope
//     MainContract.View view() {
//         return view;
//     }
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/presentation/activity/oauth/OauthActivity.java
// public class OauthActivity extends AppCompatActivity {
//     public static final String TAG = OauthActivity.class.getSimpleName();
// 
//     @Inject RootStore store;
//     @Inject OauthParams oauthParams;
//     @Inject UserActionCreator userActionCreator;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.activity_oauth);
//         inject();
// 
//         if (store.getAuthorizedUsers().isEmpty()) {
//             CustomTabsIntent intent = new CustomTabsIntent.Builder().build();
//             intent.launchUrl(this, Uri.parse(oauthParams.getAuthorizeUri()));
//         }
//     }
// 
//     @Override
//     protected void onNewIntent(Intent intent) {
//         super.onNewIntent(intent);
//         inject();
//         store.dispatch(userActionCreator.createAuthAction(intent.getDataString()))
//                 .subscribeOn(Schedulers.io())
//                 .observeOn(AndroidSchedulers.mainThread())
//                 .subscribe(
//                         _a -> returnToMain(),
//                         this::returnToMain
//                 );
//     }
// 
//     private void returnToMain() {
//         setResult(Activity.RESULT_OK);
//         finish();
//     }
// 
//     private void returnToMain(Throwable throwable) {
//         setResult(Activity.RESULT_CANCELED);
//         finish();
//     }
// 
//     private void inject() {
//         Sunazuri.get(this).getComponent().inject(this);
//     }
// }


import dagger.Component;
import info.izumin.android.sunazuri.data.DataComponent;
import info.izumin.android.sunazuri.presentation.activity.main.MainComponent;
import info.izumin.android.sunazuri.presentation.activity.main.MainModule;
import info.izumin.android.sunazuri.presentation.activity.oauth.OauthActivity;
package info.izumin.android.sunazuri;


/**
 * Created by izumin on 5/13/2016 AD.
 */
@AppScope
@Component(
        dependencies = {
// Path: app/src/main/java/info/izumin/android/sunazuri/data/DataComponent.java
// @DataScope
// @Component(
//         dependencies = {
//                 InfrastructureComponent.class
//         },
//         modules = {
//                 ActionModule.class,
//                 DataModule.class
//         }
// )
// public interface DataComponent {
//     RootStore rootStore();
//     OauthParams oauthParams();
// 
//     UserActionCreator userActionCreator();
//     TeamActionCreator teamActionCreator();
// 
//     // for Picasso
//     OkHttpClient okHttpClient();
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/presentation/activity/main/MainComponent.java
// @MainScope
// @Subcomponent(
//         modules = MainModule.class
// )
// public interface MainComponent {
//     void inject(MainActivity activity);
// 
//     WelcomeComponent plus(WelcomeModule module);
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/presentation/activity/main/MainModule.java
// @Module
// public class MainModule {
//     public static final String TAG = MainModule.class.getSimpleName();
// 
//     private final MainContract.View view;
// 
//     MainModule(MainContract.View view) {
//         this.view = view;
//     }
// 
//     @Provides
//     @MainScope
//     @ActivityContext
//     Context activityContext() {
//         return view.getActivityContext();
//     }
// 
//     @Provides
//     @MainScope
//     MainContract.View view() {
//         return view;
//     }
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/presentation/activity/oauth/OauthActivity.java
// public class OauthActivity extends AppCompatActivity {
//     public static final String TAG = OauthActivity.class.getSimpleName();
// 
//     @Inject RootStore store;
//     @Inject OauthParams oauthParams;
//     @Inject UserActionCreator userActionCreator;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.activity_oauth);
//         inject();
// 
//         if (store.getAuthorizedUsers().isEmpty()) {
//             CustomTabsIntent intent = new CustomTabsIntent.Builder().build();
//             intent.launchUrl(this, Uri.parse(oauthParams.getAuthorizeUri()));
//         }
//     }
// 
//     @Override
//     protected void onNewIntent(Intent intent) {
//         super.onNewIntent(intent);
//         inject();
//         store.dispatch(userActionCreator.createAuthAction(intent.getDataString()))
//                 .subscribeOn(Schedulers.io())
//                 .observeOn(AndroidSchedulers.mainThread())
//                 .subscribe(
//                         _a -> returnToMain(),
//                         this::returnToMain
//                 );
//     }
// 
//     private void returnToMain() {
//         setResult(Activity.RESULT_OK);
//         finish();
//     }
// 
//     private void returnToMain(Throwable throwable) {
//         setResult(Activity.RESULT_CANCELED);
//         finish();
//     }
// 
//     private void inject() {
//         Sunazuri.get(this).getComponent().inject(this);
//     }
// }


// Path: app/src/main/java/info/izumin/android/sunazuri/AppComponent.java
import dagger.Component;
import info.izumin.android.sunazuri.data.DataComponent;
import info.izumin.android.sunazuri.presentation.activity.main.MainComponent;
import info.izumin.android.sunazuri.presentation.activity.main.MainModule;
import info.izumin.android.sunazuri.presentation.activity.oauth.OauthActivity;

package info.izumin.android.sunazuri;


/**
 * Created by izumin on 5/13/2016 AD.
 */
@AppScope
@Component(
        dependencies = {
                DataComponent.class