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); } }