package com.kescoode.xmail.ui.fragment;
import android.os.Bundle;
import android.os.RemoteException;
import android.view.*;
import android.widget.EditText;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import com.dd.CircularProgressButton;
import com.kescoode.adk.log.Logger;
import com.kescoode.adk.view.Views;
import com.kescoode.xmail.R;
import com.kescoode.xmail.event.SettingCheckEvent;
import com.kescoode.xmail.ui.activity.AccountActivity;
import com.kescoode.xmail.ui.activity.HomeActivity;
import com.kescoode.xmail.ui.activity.InformationActivity;
import com.kescoode.xmail.ui.fragment.internal.AppFragment;
import de.greenrobot.event.EventBus;
/**
* 邮箱登录页面
*
* @author Kesco Lin
*/
public class LoginAccountFragment extends AppFragment<AccountActivity> {
@InjectView(R.id.et_email)
EditText etEmail;
@InjectView(R.id.et_email_passwd)
EditText etPasswd;
@InjectView(R.id.cpb_login)
CircularProgressButton cpbLogin;
private final EventBus bus = EventBus.getDefault();
public static LoginAccountFragment newInstance() {
return new LoginAccountFragment();
}
public LoginAccountFragment() {
/* Empty */
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_login_account, container, false);
ButterKnife.inject(this, view);
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getAct().getSupportActionBar().setTitle(R.string.login_label);
cpbLogin.setIndeterminateProgressMode(true);
}
@Override
public void onResume() {
super.onResume();
if (!bus.isRegistered(this)) {
bus.register(this);
}
}
@Override
public void onPause() {
super.onPause();
if (bus.isRegistered(this)) {
bus.unregister(this);
}
}
@OnClick(R.id.cpb_login)
void btnLoginClick() {
cpbLogin.setProgress(50);
try {
if (getAct().mailService != null) {
getAct().mailService.login(etEmail.getText().toString().trim(),
etPasswd.getText().toString().trim());
}
} catch (RemoteException e) {
throw new RuntimeException("Can not bind MailService.");
}
}
public void onEventMainThread(SettingCheckEvent event) {
Logger.e("Login Event: %s %s", String.valueOf(event.ok), event.type.name());
if (event.type == SettingCheckEvent.Type.RECEIVE && event.ok) {
cpbLogin.setProgress(100);
Views.delayExecuteOnUi(new Runnable() {
@Override
public void run() {
HomeActivity.start4Login(getAct());
getAct().finish();
}
}, 1500);
} else if (!event.ok) {
cpbLogin.setProgress(-1);
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.reset(this);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.fragment_login_actions, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_about:
InformationActivity.startAbout(getAct());
return true;
}
return super.onOptionsItemSelected(item);
}
}