// Path: app/src/main/java/hr/foi/rsc/lifeline/mvp/presenters/LoginPresenter.java
// public interface LoginPresenter extends BasePresenter {
// 
//     public void authenticateUser(String username, String password);
// 
//     public void authenticateUserFb(Activity activity);
// 
//     public void authenticateUserTwitter(Activity activity);
// 
//     public void resetPassword(String email);
// }
// 
// Path: app/src/main/java/hr/foi/rsc/lifeline/mvp/presenters/impl/LoginPresenterImpl.java
// public class LoginPresenterImpl implements LoginPresenter {
// 
//     private boolean canceled;
// 
//     private LoginView loginView;
// 
//     public LoginPresenterImpl(LoginView loginView) {
//         this.loginView = loginView;
//     }
// 
//     @Override
//     public void authenticateUser(String username, String password) {
//         canceled = false;
//         loginView.showProgress();
//         ParseUser.logInInBackground(username, password, logInCallback);
//     }
// 
//     @Override
//     public void authenticateUserFb(Activity activity) {
//         canceled = false;
//         ParseFacebookUtils.logIn(activity, logInCallback);
//     }
// 
//     @Override
//     public void authenticateUserTwitter(Activity activity) {
//         canceled = false;
//         ParseTwitterUtils.logIn(activity, logInCallback);
//     }
// 
//     @Override
//     public void resetPassword(String email) {
//         ParseUser.requestPasswordResetInBackground(email, requestPasswordResetCallback);
//     }
// 
//     private RequestPasswordResetCallback requestPasswordResetCallback =
//         new RequestPasswordResetCallback() {
//             public void done(ParseException e) {
//                 loginView.hideProgress();
//                 if (e == null) {
//                     loginView.onPasswordReset();
//                 } else {
//                     loginView.showError(e.getMessage());
//                 }
//             }
//         };
// 
//     private LogInCallback logInCallback = new LogInCallback() {
//         @Override
//         public void done(ParseUser parseUser, ParseException e) {
//             if (canceled) {
//                 return;
//             }
// 
//             loginView.hideProgress();
// 
//             if (parseUser != null) {
//                 if(!parseUser.containsKey(User.TYPE)) {
//                     parseUser.put(User.TYPE, User.DONOR);
//                     parseUser.saveInBackground();
//                 }
//                 if (parseUser.getString(User.TYPE).equals(User.DONOR)) {
//                     loginView.navigateToHome();
//                 } else {
//                     loginView.showError(LifeLineApplication.getInstance().getString(
//                         R.string.only_donors));
//                     ParseUser.logOut();
//                 }
//             } else {
//                 if (e != null && e.getMessage() != null) {
//                     loginView.showError(e.getMessage());
//                 }
//             }
//         }
//     };
// 
//     @Override
//     public void cancel() {
//         canceled = true;
//     }
// }
// 
// Path: app/src/main/java/hr/foi/rsc/lifeline/mvp/views/LoginView.java
// public interface LoginView extends BaseView {
// 
//     public void navigateToHome();
// 
//     public void onPasswordReset();
// }


import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.Toast;
import com.parse.ParseUser;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import butterknife.OnLongClick;
import hr.foi.rsc.lifeline.R;
import hr.foi.rsc.lifeline.mvp.presenters.LoginPresenter;
import hr.foi.rsc.lifeline.mvp.presenters.impl.LoginPresenterImpl;
import hr.foi.rsc.lifeline.mvp.views.LoginView;
package hr.foi.rsc.lifeline.activities;




public class LoginActivity extends BaseActivity implements LoginView {

    private LoginPresenter loginPresenter;

    @InjectView(R.id.input_username)
    protected EditText usernameText;

    @InjectView(R.id.input_password)
    protected EditText passwordText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        ButterKnife.inject(this);

// Path: app/src/main/java/hr/foi/rsc/lifeline/mvp/presenters/LoginPresenter.java
// public interface LoginPresenter extends BasePresenter {
// 
//     public void authenticateUser(String username, String password);
// 
//     public void authenticateUserFb(Activity activity);
// 
//     public void authenticateUserTwitter(Activity activity);
// 
//     public void resetPassword(String email);
// }
// 
// Path: app/src/main/java/hr/foi/rsc/lifeline/mvp/presenters/impl/LoginPresenterImpl.java
// public class LoginPresenterImpl implements LoginPresenter {
// 
//     private boolean canceled;
// 
//     private LoginView loginView;
// 
//     public LoginPresenterImpl(LoginView loginView) {
//         this.loginView = loginView;
//     }
// 
//     @Override
//     public void authenticateUser(String username, String password) {
//         canceled = false;
//         loginView.showProgress();
//         ParseUser.logInInBackground(username, password, logInCallback);
//     }
// 
//     @Override
//     public void authenticateUserFb(Activity activity) {
//         canceled = false;
//         ParseFacebookUtils.logIn(activity, logInCallback);
//     }
// 
//     @Override
//     public void authenticateUserTwitter(Activity activity) {
//         canceled = false;
//         ParseTwitterUtils.logIn(activity, logInCallback);
//     }
// 
//     @Override
//     public void resetPassword(String email) {
//         ParseUser.requestPasswordResetInBackground(email, requestPasswordResetCallback);
//     }
// 
//     private RequestPasswordResetCallback requestPasswordResetCallback =
//         new RequestPasswordResetCallback() {
//             public void done(ParseException e) {
//                 loginView.hideProgress();
//                 if (e == null) {
//                     loginView.onPasswordReset();
//                 } else {
//                     loginView.showError(e.getMessage());
//                 }
//             }
//         };
// 
//     private LogInCallback logInCallback = new LogInCallback() {
//         @Override
//         public void done(ParseUser parseUser, ParseException e) {
//             if (canceled) {
//                 return;
//             }
// 
//             loginView.hideProgress();
// 
//             if (parseUser != null) {
//                 if(!parseUser.containsKey(User.TYPE)) {
//                     parseUser.put(User.TYPE, User.DONOR);
//                     parseUser.saveInBackground();
//                 }
//                 if (parseUser.getString(User.TYPE).equals(User.DONOR)) {
//                     loginView.navigateToHome();
//                 } else {
//                     loginView.showError(LifeLineApplication.getInstance().getString(
//                         R.string.only_donors));
//                     ParseUser.logOut();
//                 }
//             } else {
//                 if (e != null && e.getMessage() != null) {
//                     loginView.showError(e.getMessage());
//                 }
//             }
//         }
//     };
// 
//     @Override
//     public void cancel() {
//         canceled = true;
//     }
// }
// 
// Path: app/src/main/java/hr/foi/rsc/lifeline/mvp/views/LoginView.java
// public interface LoginView extends BaseView {
// 
//     public void navigateToHome();
// 
//     public void onPasswordReset();
// }


// Path: app/src/main/java/hr/foi/rsc/lifeline/activities/LoginActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.Toast;
import com.parse.ParseUser;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import butterknife.OnLongClick;
import hr.foi.rsc.lifeline.R;
import hr.foi.rsc.lifeline.mvp.presenters.LoginPresenter;
import hr.foi.rsc.lifeline.mvp.presenters.impl.LoginPresenterImpl;
import hr.foi.rsc.lifeline.mvp.views.LoginView;

package hr.foi.rsc.lifeline.activities;




public class LoginActivity extends BaseActivity implements LoginView {

    private LoginPresenter loginPresenter;

    @InjectView(R.id.input_username)
    protected EditText usernameText;

    @InjectView(R.id.input_password)
    protected EditText passwordText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        ButterKnife.inject(this);

        loginPresenter = new LoginPresenterImpl(this);