// Path: Testing/app/src/main/java/com/example/mvp_practice02/login/LoginActivityView.java
// public class LoginActivityView extends AppCompatActivity implements LoginActivityMVP.View
// {
// 
//     @Inject LoginActivityMVP.Presenter presenter;
// 
//     @BindView(R.id.fname) EditText firstNameText;
//     @BindView(R.id.lname) EditText lastNameText;
//     @BindView(R.id.login) Button loginButton;
// 
// 
// 
//     @Override
//     protected void onCreate( Bundle savedInstanceState )
//     {
//         super.onCreate( savedInstanceState );
//         setContentView( R.layout.activity_main );
// 
// 
//         ButterKnife.bind( this );
// 
//         App app = ((App)getApplication());
// 
//         app.get().inject( this );
// 
// 
// 
// 
//         loginButton.setOnClickListener( new View.OnClickListener()
//         {
//             @Override public void onClick( View view )
//             {
//                 presenter.loginButtonClicked();
//             }
//         } );
// 
// 
//     }
// 
//     @Override protected void onResume()
//     {
//         super.onResume();
// 
//         presenter.setView( this );
// 
// 
//         presenter.getCurrentUser();
//     }
// 
//     @Override public String getFirstName()
//     {
//         return firstNameText.getText().toString();
//     }
// 
//     @Override public void setFirstName( String fname )
//     {
// 
//         firstNameText.setText( fname );
// 
//     }
// 
//     @Override public String getLastName()
//     {
//         return lastNameText.getText().toString();
//     }
// 
//     @Override public void setLastName( String lname )
//     {
// 
//         lastNameText.setText( lname );
// 
//     }
// 
//     @Override public void showUserNotAvailable()
//     {
// 
//         Toast.makeText( this, "User does not exists.", Toast.LENGTH_LONG ).show();
// 
//     }
// 
//     @Override public void showInputError()
//     {
// 
//         Toast.makeText( this, "Error processing input.", Toast.LENGTH_LONG ).show();
// 
//     }
// 
//     @Override public void showUserSaved()
//     {
// 
//         Toast.makeText( this, "User saved successfully.", Toast.LENGTH_LONG ).show();
// 
//     }
// }
// 
// Path: Testing/app/src/main/java/com/example/mvp_practice02/login/LoginModule.java
// @Module
// public class LoginModule
// {
// 
// 
//     @Provides
//     public LoginActivityMVP.Presenter presenter(LoginActivityMVP.Model model)
//     {
// 
// 
//         return new LoginActivityPresenter(model);
// 
//     }
// 
// 
//     @Provides
//     public LoginActivityMVP.Model model(LoginRepo loginRepo)
//     {
// 
// 
//         return new LoginActivityModel( loginRepo );
// 
//     }
// 
// 
// 
//     @Provides
//     public LoginRepo loginRepo()
//     {
// 
// 
//         return new MemoryRepo();
// 
//     }
// 
// 
// 
// 
// }


import com.example.mvp_practice02.login.LoginActivityView;
import com.example.mvp_practice02.login.LoginModule;
import dagger.Component;
package com.example.mvp_practice02.root;



/**
 * Created by tzia on 19-May-17.
 */
@ApplicationScope
@Component(modules = {ApplicationModule.class, LoginModule.class})
public interface ApplicationComponent
{

    // parameter specifies where presenter will be injected
// Path: Testing/app/src/main/java/com/example/mvp_practice02/login/LoginActivityView.java
// public class LoginActivityView extends AppCompatActivity implements LoginActivityMVP.View
// {
// 
//     @Inject LoginActivityMVP.Presenter presenter;
// 
//     @BindView(R.id.fname) EditText firstNameText;
//     @BindView(R.id.lname) EditText lastNameText;
//     @BindView(R.id.login) Button loginButton;
// 
// 
// 
//     @Override
//     protected void onCreate( Bundle savedInstanceState )
//     {
//         super.onCreate( savedInstanceState );
//         setContentView( R.layout.activity_main );
// 
// 
//         ButterKnife.bind( this );
// 
//         App app = ((App)getApplication());
// 
//         app.get().inject( this );
// 
// 
// 
// 
//         loginButton.setOnClickListener( new View.OnClickListener()
//         {
//             @Override public void onClick( View view )
//             {
//                 presenter.loginButtonClicked();
//             }
//         } );
// 
// 
//     }
// 
//     @Override protected void onResume()
//     {
//         super.onResume();
// 
//         presenter.setView( this );
// 
// 
//         presenter.getCurrentUser();
//     }
// 
//     @Override public String getFirstName()
//     {
//         return firstNameText.getText().toString();
//     }
// 
//     @Override public void setFirstName( String fname )
//     {
// 
//         firstNameText.setText( fname );
// 
//     }
// 
//     @Override public String getLastName()
//     {
//         return lastNameText.getText().toString();
//     }
// 
//     @Override public void setLastName( String lname )
//     {
// 
//         lastNameText.setText( lname );
// 
//     }
// 
//     @Override public void showUserNotAvailable()
//     {
// 
//         Toast.makeText( this, "User does not exists.", Toast.LENGTH_LONG ).show();
// 
//     }
// 
//     @Override public void showInputError()
//     {
// 
//         Toast.makeText( this, "Error processing input.", Toast.LENGTH_LONG ).show();
// 
//     }
// 
//     @Override public void showUserSaved()
//     {
// 
//         Toast.makeText( this, "User saved successfully.", Toast.LENGTH_LONG ).show();
// 
//     }
// }
// 
// Path: Testing/app/src/main/java/com/example/mvp_practice02/login/LoginModule.java
// @Module
// public class LoginModule
// {
// 
// 
//     @Provides
//     public LoginActivityMVP.Presenter presenter(LoginActivityMVP.Model model)
//     {
// 
// 
//         return new LoginActivityPresenter(model);
// 
//     }
// 
// 
//     @Provides
//     public LoginActivityMVP.Model model(LoginRepo loginRepo)
//     {
// 
// 
//         return new LoginActivityModel( loginRepo );
// 
//     }
// 
// 
// 
//     @Provides
//     public LoginRepo loginRepo()
//     {
// 
// 
//         return new MemoryRepo();
// 
//     }
// 
// 
// 
// 
// }


// Path: Testing/app/src/main/java/com/example/mvp_practice02/root/ApplicationComponent.java
import com.example.mvp_practice02.login.LoginActivityView;
import com.example.mvp_practice02.login.LoginModule;
import dagger.Component;

package com.example.mvp_practice02.root;



/**
 * Created by tzia on 19-May-17.
 */
@ApplicationScope
@Component(modules = {ApplicationModule.class, LoginModule.class})
public interface ApplicationComponent
{

    // parameter specifies where presenter will be injected
    void inject(LoginActivityView loginActivityView );