package com.halzhang.android.examples.dagger2example.login;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import com.halzhang.android.examples.dagger2example.BaseFragment;
import com.halzhang.android.examples.dagger2example.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link LoginFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class LoginFragment extends BaseFragment implements LoginContract.View {
private LoginContract.Presenter mPresenter;
private EditText mUsername;
private EditText mPassword;
private OnLoginFragmentListener mListener;
public LoginFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment
*
* @return A new instance of fragment LoginFragment.
*/
public static LoginFragment newInstance() {
return new LoginFragment();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_login, container, false);
mUsername = (EditText) view.findViewById(R.id.et_username);
mPassword = (EditText) view.findViewById(R.id.et_password);
view.findViewById(R.id.btn_login).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
login();
}
});
return view;
}
private void login() {
String username = mUsername.getText().toString();
String password = mPassword.getText().toString();
// TODO: 16/5/28 verify username and password
mPresenter.login(username, password);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnLoginFragmentListener) {
mListener = (OnLoginFragmentListener) context;
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
@Override
public void onLoginResult(int code, String message) {
if (mListener != null) {
mListener.onResult(code == 1);
}
}
@Override
public boolean isActive() {
return isAdded();
}
@Override
public void setPresenter(LoginContract.Presenter presenter) {
mPresenter = presenter;
}
public interface OnLoginFragmentListener {
void onResult(boolean success);
}
}