// Path: app/src/main/java/com/example/app/rxjava/bean/User.java
// public class User {
//     private String name;
//     private String password;
//     private String email;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/login/model/LoginModel.java
// public class LoginModel implements LoginIA {
//     public Observable<Boolean> validUserInfo(final User user) {
//         return Observable.create(new Observable.OnSubscribe<Boolean>() {
//             @Override
//             public void call(Subscriber<? super Boolean> subscriber) {
//                 // 设置个2000ms的延迟，模拟网络访问、数据库操作等等延时操作
//                 SystemClock.sleep(2000);
//                 if(!user.getEmail().contains("@")) {
//                     subscriber.onNext(false);
//                 } else if(user.getPassword().length() < 1) {
//                     subscriber.onNext(false);
//                 } else {
//                     subscriber.onNext(true);
//                 }
//                 subscriber.onCompleted();
//             }
//         });
//     }
//     public Observable<Boolean> login(final String email, final String password) {
//         return Observable.create(new Observable.OnSubscribe<Boolean>() {
//             @Override
//             public void call(Subscriber<? super Boolean> subscriber) {
//                 // 设置个2000ms的延迟，模拟网络访问、数据库操作等等延时操作
//                 //SystemClock.sleep(2000);
// 
//                 if(email.equals("q@qq.com") && password.equals("1")) {
//                     subscriber.onNext(true);
//                 } else {
//                     subscriber.onNext(false);
//                 }
//                 subscriber.onCompleted();
//             }
//         });
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/login/model/ia/LoginIA.java
// public interface LoginIA {
//     public Observable<Boolean> validUserInfo(final User user);
//     public Observable<Boolean> login(final String email, final String password);
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/login/view/LoginActivity.java
// public class LoginActivity extends BaseActivity implements LoginViewIA {
//     private Context context;
// 
//     // UI references.
//     private AutoCompleteTextView mEmailView;
//     private EditText mPasswordView;
//     private View mLoginFormView;
// 
//     private LoginPresenter presenter;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.activity_login);
//         context = this;
//         // Set up the login form.
//         mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
//         mPasswordView = (EditText) findViewById(R.id.password);
//         mLoginFormView = findViewById(R.id.login_form);
//         Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);
//         presenter = new LoginPresenter(this);
// 
//         mEmailSignInButton.setOnClickListener(new OnClickListener() {
//             @Override
//             public void onClick(View view) {
//                 presenter.login();
//             }
//         });
// 
//         // TODO: 从Cookie中获取登录状态参数，判断是否直接跳转到内容页
//     }
// 
//     @Override
//     public User getInfo() {
//         User user = new User();
//         user.setEmail(mEmailView.getText().toString());
//         user.setPassword(mPasswordView.getText().toString());
//         return user;
//     }
// 
//     @Override
//     public void toNextView() {
//         Intent intent = new Intent(LoginActivity.this, MainActivity.class);
//         startActivity(intent);
//         finish();
//     }
// 
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/login/view/ia/LoginViewIA.java
// public interface LoginViewIA extends BaseViewIA {
// 
//     User getInfo();
// 
//     void toNextView();
// 
// }


import com.example.app.rxjava.R;
import com.example.app.rxjava.bean.User;
import com.example.app.rxjava.module.login.model.LoginModel;
import com.example.app.rxjava.module.login.model.ia.LoginIA;
import com.example.app.rxjava.module.login.view.LoginActivity;
import com.example.app.rxjava.module.login.view.ia.LoginViewIA;
import rx.Observable;
import rx.Subscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action0;
import rx.functions.Func1;
import rx.schedulers.Schedulers;
package com.example.app.rxjava.module.login.presenter;



/**
 * Created by Administrator on 2016/2/29.
 */
public class LoginPresenter {
    private LoginViewIA mLoginViewIA;
    private LoginIA mLoginIA;

    public LoginPresenter(LoginViewIA mLoginViewIA) {
        this.mLoginViewIA = mLoginViewIA;
// Path: app/src/main/java/com/example/app/rxjava/bean/User.java
// public class User {
//     private String name;
//     private String password;
//     private String email;
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/login/model/LoginModel.java
// public class LoginModel implements LoginIA {
//     public Observable<Boolean> validUserInfo(final User user) {
//         return Observable.create(new Observable.OnSubscribe<Boolean>() {
//             @Override
//             public void call(Subscriber<? super Boolean> subscriber) {
//                 // 设置个2000ms的延迟，模拟网络访问、数据库操作等等延时操作
//                 SystemClock.sleep(2000);
//                 if(!user.getEmail().contains("@")) {
//                     subscriber.onNext(false);
//                 } else if(user.getPassword().length() < 1) {
//                     subscriber.onNext(false);
//                 } else {
//                     subscriber.onNext(true);
//                 }
//                 subscriber.onCompleted();
//             }
//         });
//     }
//     public Observable<Boolean> login(final String email, final String password) {
//         return Observable.create(new Observable.OnSubscribe<Boolean>() {
//             @Override
//             public void call(Subscriber<? super Boolean> subscriber) {
//                 // 设置个2000ms的延迟，模拟网络访问、数据库操作等等延时操作
//                 //SystemClock.sleep(2000);
// 
//                 if(email.equals("q@qq.com") && password.equals("1")) {
//                     subscriber.onNext(true);
//                 } else {
//                     subscriber.onNext(false);
//                 }
//                 subscriber.onCompleted();
//             }
//         });
//     }
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/login/model/ia/LoginIA.java
// public interface LoginIA {
//     public Observable<Boolean> validUserInfo(final User user);
//     public Observable<Boolean> login(final String email, final String password);
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/login/view/LoginActivity.java
// public class LoginActivity extends BaseActivity implements LoginViewIA {
//     private Context context;
// 
//     // UI references.
//     private AutoCompleteTextView mEmailView;
//     private EditText mPasswordView;
//     private View mLoginFormView;
// 
//     private LoginPresenter presenter;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.activity_login);
//         context = this;
//         // Set up the login form.
//         mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
//         mPasswordView = (EditText) findViewById(R.id.password);
//         mLoginFormView = findViewById(R.id.login_form);
//         Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);
//         presenter = new LoginPresenter(this);
// 
//         mEmailSignInButton.setOnClickListener(new OnClickListener() {
//             @Override
//             public void onClick(View view) {
//                 presenter.login();
//             }
//         });
// 
//         // TODO: 从Cookie中获取登录状态参数，判断是否直接跳转到内容页
//     }
// 
//     @Override
//     public User getInfo() {
//         User user = new User();
//         user.setEmail(mEmailView.getText().toString());
//         user.setPassword(mPasswordView.getText().toString());
//         return user;
//     }
// 
//     @Override
//     public void toNextView() {
//         Intent intent = new Intent(LoginActivity.this, MainActivity.class);
//         startActivity(intent);
//         finish();
//     }
// 
// }
// 
// Path: app/src/main/java/com/example/app/rxjava/module/login/view/ia/LoginViewIA.java
// public interface LoginViewIA extends BaseViewIA {
// 
//     User getInfo();
// 
//     void toNextView();
// 
// }


// Path: app/src/main/java/com/example/app/rxjava/module/login/presenter/LoginPresenter.java
import com.example.app.rxjava.R;
import com.example.app.rxjava.bean.User;
import com.example.app.rxjava.module.login.model.LoginModel;
import com.example.app.rxjava.module.login.model.ia.LoginIA;
import com.example.app.rxjava.module.login.view.LoginActivity;
import com.example.app.rxjava.module.login.view.ia.LoginViewIA;
import rx.Observable;
import rx.Subscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action0;
import rx.functions.Func1;
import rx.schedulers.Schedulers;

package com.example.app.rxjava.module.login.presenter;



/**
 * Created by Administrator on 2016/2/29.
 */
public class LoginPresenter {
    private LoginViewIA mLoginViewIA;
    private LoginIA mLoginIA;

    public LoginPresenter(LoginViewIA mLoginViewIA) {
        this.mLoginViewIA = mLoginViewIA;
        this.mLoginIA = new LoginModel();