// Path: app/src/main/java/leonardo2204/com/br/flowtests/di/module/DetailScreenModule.java
// @Module
// public class DetailScreenModule {
// 
//     @Provides
//     @DaggerScope(DetailScreenComponent.class)
//     public GetDetailedContact providesGetDetailedContact(ContactsRepository contactsRepository, ThreadExecutor threadExecutor, PostExecutionThread postExecutionThread) {
//         return new GetDetailedContact(contactsRepository, threadExecutor, postExecutionThread);
//     }
// 
//     @Provides
//     @DaggerScope(DetailScreenComponent.class)
//     public DetailsScreenPresenter providesDetailsScreenPresenter(GetDetailedContact getDetailedContact, ActionBarOwner actionBarOwner) {
//         return new DetailsScreenPresenter(getDetailedContact, actionBarOwner);
//     }
// }
// 
// Path: app/src/main/java/leonardo2204/com/br/flowtests/view/DetailsView.java
// public class DetailsView extends LinearLayout {
// 
//     @Inject
//     protected DetailsScreenPresenter presenter;
//     @Bind(R.id.name)
//     EndDrawableTextView name;
//     @Bind(R.id.telephone_header)
//     TextView telephoneHeader;
//     @Bind(R.id.multi_telephone)
//     MultiEditableTextView telephone;
// 
//     public DetailsView(Context context) {
//         super(context);
//         initUI(context);
//     }
// 
//     public DetailsView(Context context, AttributeSet attrs) {
//         super(context, attrs);
//         initUI(context);
//     }
// 
//     public DetailsView(Context context, AttributeSet attrs, int defStyleAttr) {
//         super(context, attrs, defStyleAttr);
//         initUI(context);
//     }
// 
//     @Override
//     protected void onAttachedToWindow() {
//         super.onAttachedToWindow();
//         presenter.takeView(this);
//     }
// 
//     @Override
//     protected void onDetachedFromWindow() {
//         presenter.dropView(this);
//         super.onDetachedFromWindow();
//     }
// 
//     @Override
//     protected void onFinishInflate() {
//         super.onFinishInflate();
//         ButterKnife.bind(this);
// 
//         //ViewCompat.setBackgroundTintList(telephoneHeader, ColorStateList.valueOf(ContextCompat.getColor(getContext(), R.color.colorAccent)));
// 
//         final DetailsScreen screen = Flow.getKey(this);
//         name.setText(screen.getContact().getName());
//         name.setOnDrawableClickListener(new EndDrawableTextView.OnDrawableClickListener() {
//             @Override
//             public void onEndDrawableClick() {
//                 Flow.get(DetailsView.this).set(new EditDialogScreen(screen.getContact()));
//             }
//         });
// 
// //        telephone.setOnDrawableClickListener(new EndDrawableTextView.OnDrawableClickListener() {
// //            @Override
// //            public void onEndDrawableClick() {
// //                Toast.makeText(getContext(), "Open Edit Phone Dialog...", Toast.LENGTH_SHORT).show();
// //            }
// //        });
//     }
// 
//     public void setTelephoneField(List<String> telephoneNumberList) {
//         telephone.addItems(telephoneNumberList);
//     }
// 
//     private void initUI(Context context) {
//         setOrientation(VERTICAL);
//         initializeInjection(context);
//     }
// 
//     private void initializeInjection(Context context) {
//         MortarScope scope = Flow.getService(Flow.getKey(this).getClass().getName(), context);
//         ((DetailScreenComponent)scope.getService(DaggerService.SERVICE_NAME)).inject(this);
//     }
// 
// }


import dagger.Component;
import leonardo2204.com.br.flowtests.di.module.DetailScreenModule;
import leonardo2204.com.br.flowtests.di.scope.DaggerScope;
import leonardo2204.com.br.flowtests.view.DetailsView;
package leonardo2204.com.br.flowtests.di.component;


/**
 * Created by Leonardo on 05/03/2016.
 */
@DaggerScope(DetailScreenComponent.class)
@Component(dependencies = ActivityComponent.class, modules = DetailScreenModule.class)
public interface DetailScreenComponent extends AppComponent {
// Path: app/src/main/java/leonardo2204/com/br/flowtests/di/module/DetailScreenModule.java
// @Module
// public class DetailScreenModule {
// 
//     @Provides
//     @DaggerScope(DetailScreenComponent.class)
//     public GetDetailedContact providesGetDetailedContact(ContactsRepository contactsRepository, ThreadExecutor threadExecutor, PostExecutionThread postExecutionThread) {
//         return new GetDetailedContact(contactsRepository, threadExecutor, postExecutionThread);
//     }
// 
//     @Provides
//     @DaggerScope(DetailScreenComponent.class)
//     public DetailsScreenPresenter providesDetailsScreenPresenter(GetDetailedContact getDetailedContact, ActionBarOwner actionBarOwner) {
//         return new DetailsScreenPresenter(getDetailedContact, actionBarOwner);
//     }
// }
// 
// Path: app/src/main/java/leonardo2204/com/br/flowtests/view/DetailsView.java
// public class DetailsView extends LinearLayout {
// 
//     @Inject
//     protected DetailsScreenPresenter presenter;
//     @Bind(R.id.name)
//     EndDrawableTextView name;
//     @Bind(R.id.telephone_header)
//     TextView telephoneHeader;
//     @Bind(R.id.multi_telephone)
//     MultiEditableTextView telephone;
// 
//     public DetailsView(Context context) {
//         super(context);
//         initUI(context);
//     }
// 
//     public DetailsView(Context context, AttributeSet attrs) {
//         super(context, attrs);
//         initUI(context);
//     }
// 
//     public DetailsView(Context context, AttributeSet attrs, int defStyleAttr) {
//         super(context, attrs, defStyleAttr);
//         initUI(context);
//     }
// 
//     @Override
//     protected void onAttachedToWindow() {
//         super.onAttachedToWindow();
//         presenter.takeView(this);
//     }
// 
//     @Override
//     protected void onDetachedFromWindow() {
//         presenter.dropView(this);
//         super.onDetachedFromWindow();
//     }
// 
//     @Override
//     protected void onFinishInflate() {
//         super.onFinishInflate();
//         ButterKnife.bind(this);
// 
//         //ViewCompat.setBackgroundTintList(telephoneHeader, ColorStateList.valueOf(ContextCompat.getColor(getContext(), R.color.colorAccent)));
// 
//         final DetailsScreen screen = Flow.getKey(this);
//         name.setText(screen.getContact().getName());
//         name.setOnDrawableClickListener(new EndDrawableTextView.OnDrawableClickListener() {
//             @Override
//             public void onEndDrawableClick() {
//                 Flow.get(DetailsView.this).set(new EditDialogScreen(screen.getContact()));
//             }
//         });
// 
// //        telephone.setOnDrawableClickListener(new EndDrawableTextView.OnDrawableClickListener() {
// //            @Override
// //            public void onEndDrawableClick() {
// //                Toast.makeText(getContext(), "Open Edit Phone Dialog...", Toast.LENGTH_SHORT).show();
// //            }
// //        });
//     }
// 
//     public void setTelephoneField(List<String> telephoneNumberList) {
//         telephone.addItems(telephoneNumberList);
//     }
// 
//     private void initUI(Context context) {
//         setOrientation(VERTICAL);
//         initializeInjection(context);
//     }
// 
//     private void initializeInjection(Context context) {
//         MortarScope scope = Flow.getService(Flow.getKey(this).getClass().getName(), context);
//         ((DetailScreenComponent)scope.getService(DaggerService.SERVICE_NAME)).inject(this);
//     }
// 
// }


// Path: app/src/main/java/leonardo2204/com/br/flowtests/di/component/DetailScreenComponent.java
import dagger.Component;
import leonardo2204.com.br.flowtests.di.module.DetailScreenModule;
import leonardo2204.com.br.flowtests.di.scope.DaggerScope;
import leonardo2204.com.br.flowtests.view.DetailsView;

package leonardo2204.com.br.flowtests.di.component;


/**
 * Created by Leonardo on 05/03/2016.
 */
@DaggerScope(DetailScreenComponent.class)
@Component(dependencies = ActivityComponent.class, modules = DetailScreenModule.class)
public interface DetailScreenComponent extends AppComponent {
    void inject(DetailsView detailsView);