/* * Copyright (c) 2014-2016 Sean Liu. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.github.baoti.pioneer.ui.login; import android.graphics.Color; import android.support.v4.widget.ContentLoadingProgressBar; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.github.baoti.android.presenter.IView; import com.github.baoti.android.presenter.IViewDelegate; import com.github.baoti.android.presenter.Presenter; import com.github.baoti.pioneer.AppMain; import com.github.baoti.pioneer.R; import com.github.baoti.pioneer.misc.util.Texts; import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; /** * Created by liuyedong on 2014/12/26. */ public class LoginViewDelegate implements ILoginView, IViewDelegate<LoginViewDelegate.Delegator> { @BindView(R.id.et_login) EditText login; @BindView(R.id.et_password) EditText password; @BindView(R.id.btn_sign_in) Button signIn; @BindView(android.R.id.progress) ContentLoadingProgressBar progressBar; @Inject LoginPresenter presenter; private final Delegator delegator; LoginViewDelegate(View view, Delegator delegator) { this.delegator = delegator; ButterKnife.bind(this, view); AppMain.globalGraph().plus(new LoginModule()).inject(this); } @Override public void setTitle(CharSequence title) { delegator.setTitle(this, title); } @Override public Delegator getDelegator() { return delegator; } public LoginPresenter getPresenter() { return presenter; } @Override public void onPresenterTaken(Presenter presenter) { } @OnClick(R.id.btn_sign_in) void onSignInClicked() { getPresenter().onSignInClicked(); } @OnClick(R.id.btn_sign_up) void onSignUpClicked() { getPresenter().onSignUpClicked(); } @Override public String getAccount() { return login.getText().toString(); } @Override public String getPassword() { return password.getText().toString(); } @Override public void close() { delegator.close(this); } @Override public void showLoading() { progressBar.show(); } @Override public void hideLoading() { progressBar.hide(); } @Override public void promptAccountInvalid(String reason) { login.setError(Texts.withColor(reason, Color.RED)); login.requestFocus(); } @Override public void enableSignIn() { signIn.setEnabled(true); } @Override public void disableSignIn() { signIn.setEnabled(false); } interface Delegator extends IView { void setTitle(LoginViewDelegate delegate, CharSequence title); void close(LoginViewDelegate delegate); } }