package cn.com.basic.face.fragment; import android.net.Uri; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.text.Editable; import android.text.TextWatcher; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import com.bsk.zhangbo.demoforbsk.R; import cn.com.basic.face.adapter.VisitorRecyclerViewAdapter; import cn.com.basic.face.base.MainUIBaseFragment; import cn.com.basic.face.listeners.OkButtonClickedListener; import cn.com.basic.face.service.DictionaryMng; import cn.com.basic.face.service.VisitorCheckInMng; import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.util.AppApi; import cn.com.basic.face.util.Constant; import cn.com.basic.face.widget.VisitPurposeDialog; import cn.com.basic.face.widget.VisitorView; import com.camnter.easyrecyclerview.widget.EasyRecyclerView; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; import org.xutils.http.RequestParams; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.entity.Visit; import cn.com.basic.face.discern.query.item.FacePhotoItem; import cn.com.basic.face.discern.query.item.VisitorQueryItem; /** * Created by Administrator on 2017/2/20 0020. */ public class CheckInFragment extends MainUIBaseFragment { private View fragment_check_in_left; private View fragment_check_in_right; @ViewInject(R.id.fragment_check_in_left_radio_group) private RadioGroup fragment_check_in_left_radio_group; @ViewInject(R.id.fragment_check_in_left_sort_radio_group) private RadioGroup fragment_check_in_left_sort_radio_group; @ViewInject(R.id.fragment_check_in_left_sort_type_linear_layout) private LinearLayout fragment_check_in_left_sort_type_linear_layout; private VisitorView right, left; private VisitorRecyclerViewAdapter mAdapter; private EasyRecyclerView fragment_check_in_left_list_view; private List mList = new ArrayList();; private static CheckInFragment instance = new CheckInFragment(); private TextView leftCompanyName; private TextView leftIdentityNumber; private ImageView leftPhoto; private TextView leftMobilePhone; private TextView rightDepartment; private TextView rightPost; private TextView rightMobilePhone; private TextView rightTel; //private TextView visitorReasonTv; private List visitPurposeList = new ArrayList(); private VisitorQueryItem selectedVisitor; private VisitorQueryItem selectedInterviewee; @ViewInject(R.id.visitor_remark_et) private EditText visitorRemarkEt; @ViewInject(R.id.visitor_reason_tv) private TextView visitorReasonTv; @ViewInject(R.id.fragment_check_in_left_search_edit_text) private EditText visitorRegisterSearchEt; @ViewInject(R.id.fragment_check_in_left_visitor_radio) private RadioButton visitorRegisterRbLeft; @ViewInject(R.id.fragment_check_in_left_sort_by_dept_radio_button) private RadioButton visitorRegisterCheckDepartment; private ImageView rightPhoto; public static CheckInFragment getInstance() { return instance; } @Override protected void initViews(View view, Bundle savedInstanceState) { super.initViews(view, savedInstanceState); } @Override protected void initListeners() { fragment_check_in_left_radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (radioGroup.getCheckedRadioButtonId()){ case R.id.fragment_check_in_left_visitor_radio: fragment_check_in_left_sort_type_linear_layout.setVisibility(View.GONE); mAdapter = new VisitorRecyclerViewAdapter(getActivity(), Constant.VISITOR_FROM); //mList.clear(); mAdapter.setList(mList); fragment_check_in_left_list_view.setAdapter(mAdapter); int pageNum = 1; VisitorCheckInMng.getInstance().findVisitorList(pageNum+"", visitorRegisterSearchEt.getText().toString(), true); break; case R.id.fragment_check_in_left_interviewee_radio: fragment_check_in_left_sort_type_linear_layout.setVisibility(View.VISIBLE); mAdapter = new VisitorRecyclerViewAdapter(getActivity(), Constant.VISITOR_TO); mAdapter.setVisitorToColor(VisitorRecyclerViewAdapter.TYPE_NAME); //mList.clear(); mAdapter.setList(mList); fragment_check_in_left_list_view.setAdapter(mAdapter); int pageNum1 = 1; VisitorCheckInMng.getInstance().findIntervieweeList(pageNum1+"", visitorRegisterSearchEt.getText().toString(), true); break; } } }); fragment_check_in_left_sort_radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (radioGroup.getCheckedRadioButtonId()){ case R.id.fragment_check_in_left_sort_by_name_radio_button: // mAdapter.setVisitorToTextColor(VisitorRecyclerViewAdapter.TYPE_NAME); mAdapter.setVisitorToColor(VisitorRecyclerViewAdapter.TYPE_NAME); sort(mList, false); mAdapter.setList(mList); fragment_check_in_left_list_view.setAdapter(mAdapter); break; case R.id.fragment_check_in_left_sort_by_dept_radio_button: // mAdapter.setVisitorToTextColor(VisitorRecyclerViewAdapter.TYPE_DEPARTMENT); mAdapter.setVisitorToColor(VisitorRecyclerViewAdapter.TYPE_DEPARTMENT); sort(mList, true); mAdapter.setList(mList); fragment_check_in_left_list_view.setAdapter(mAdapter); break; } } }); visitorRegisterSearchEt.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {} @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {} @Override public void afterTextChanged(Editable editable) { loadList(); } }); } public void loadList() { if (visitorRegisterRbLeft.isChecked()) { VisitorCheckInMng.getInstance().findVisitorList(1+"", visitorRegisterSearchEt.getText().toString(), true); } else { VisitorCheckInMng.getInstance().findIntervieweeList(1+"", visitorRegisterSearchEt.getText().toString(), true); } } private void sort(List list, final boolean sortedByDept) { Collections.sort(list, new Comparator() { @Override public int compare(VisitorQueryItem t1, VisitorQueryItem t2) { if (sortedByDept) { String dept1Name = t1.getDeptName()==null?"":t1.getDeptName(); String dept2Name = t2.getDeptName()==null?"":t2.getDeptName(); if(!dept1Name.equals(dept2Name)) { return dept1Name.compareTo(dept2Name); } } String name1 = t1.getName()==null?"":t1.getName(); String name2 = t2.getName()==null?"":t2.getName(); return name1.compareTo(name2); } }); } @Override protected void initData() { loadList(); } @Override public View addLeftLayout() { fragment_check_in_left = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_check_in_left,null); fragment_check_in_left_radio_group = (RadioGroup) fragment_check_in_left.findViewById(R.id.fragment_check_in_left_radio_group); fragment_check_in_left_sort_radio_group = (RadioGroup) fragment_check_in_left.findViewById(R.id.fragment_check_in_left_sort_radio_group); fragment_check_in_left_sort_type_linear_layout = (LinearLayout) fragment_check_in_left.findViewById(R.id.fragment_check_in_left_sort_type_linear_layout); fragment_check_in_left_list_view = (EasyRecyclerView) fragment_check_in_left.findViewById(R.id.fragment_check_in_left_list_view); LinearLayoutManager manager = new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false); fragment_check_in_left_list_view.setLayoutManager(manager); mAdapter = new VisitorRecyclerViewAdapter(getActivity(),Constant.VISITOR_FROM); ViewUtils.inject(this, fragment_check_in_left); return fragment_check_in_left; } @Override public View addRightLayout() { fragment_check_in_right = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_check_in_right,null); left = (VisitorView) fragment_check_in_right.findViewById(R.id.visitor_view_left); left.setType(Constant.VISITOR_FROM); left.setTitle(""); leftCompanyName = (TextView) left.findViewById(R.id.visitor_view_left_company_name); leftIdentityNumber = (TextView) left.findViewById(R.id.visitor_view_left_identity_number); leftMobilePhone = (TextView) left.findViewById(R.id.visitor_view_left_phone); leftPhoto = (ImageView) left.findViewById(R.id.visitor_view_left_photo); right = (VisitorView) fragment_check_in_right.findViewById(R.id.visitor_view_right); right.setType(Constant.VISITOR_TO); right.setTitle(""); rightDepartment = (TextView) right.findViewById(R.id.view_visitor_right_deptartment); rightPost = (TextView) right.findViewById(R.id.view_visitor_right_post); rightMobilePhone = (TextView) right.findViewById(R.id.visitor_right_phone); rightTel = (TextView) right.findViewById(R.id.visitor_right_tel); rightPhoto = (ImageView) right.findViewById(R.id.visitor_view_right_photo); ViewUtils.inject(this, fragment_check_in_right); return fragment_check_in_right; } @OnClick(R.id.fragment_check_in_left_back) public void back(View view) { MainActivity.selectPage(0); } @OnClick(R.id.visitor_register_print) public void print(View view) { } @OnClick(R.id.visitor_register_add) public void add(View view) { } @OnClick(R.id.visitor_register_save) public void save(View view) { if (selectedVisitor == null || selectedInterviewee == null) { return; } RequestParams params = new RequestParams(); params.addBodyParameter(Visit.FieldNames.matterId, DictionaryMng.getInstance().getId(CommonVariables.DictionaryType.VISIT_PURPOSE+visitorReasonTv.getText().toString())); params.addBodyParameter(Visit.FieldNames.remark, visitorRemarkEt.getText().toString()); params.addBodyParameter(Visit.FieldNames.visitorPersonId, selectedVisitor.getId()); params.addBodyParameter(Visit.FieldNames.visiteePersonId, selectedInterviewee.getId()); params.addBodyParameter(Visit.FieldNames.visitorCompanyId, selectedVisitor.getCompanyId()); params.addBodyParameter(Visit.FieldNames.visiteeCompanyId, selectedInterviewee.getCompanyId()); VisitorCheckInMng.getInstance().add(params); } @OnClick(R.id.visitor_reason_tv) public void visitorReason(View view) { VisitPurposeDialog popup1 = new VisitPurposeDialog(getActivity(),visitPurposeList,"请选择拜访事由"); popup1.showAtLocation(getView(), Gravity.CENTER,0,0); popup1.addOkButtonClickedListener(new OkButtonClickedListener() { @Override public void onItemSelected(int position, Object o, String item) { visitorReasonTv.setText(item); } }); } public void visitorCheckIn(FacePhotoItem item) { left.setTitle(item.getName()); } public void visitorCheckIn(VisitorQueryItem item) { left.setTitle(item.getName()); leftMobilePhone.setText(item.getMobilePhone()); leftCompanyName.setText(item.getCompanyName()); leftIdentityNumber.setText(item.getIdentify()); leftPhoto.setImageURI(Uri.parse(AppApi.CHENXINGGROUND_IMAGEURL_BASE + item.getImagePath())); } public void listChanged(List list, boolean isClear) { if (isClear) { mList.clear(); } if (visitorRegisterCheckDepartment.isChecked()) { sort(list, false); } else { sort(list, true); } mList.addAll(list); mAdapter.setList(mList); fragment_check_in_left_list_view.setAdapter(mAdapter); } public void setVisitorInfo(VisitorQueryItem item) { left.setTitle(item.getName()); leftCompanyName.setText(item.getCompanyName()); leftIdentityNumber.setText(item.getIdentify()); leftMobilePhone.setText(item.getPhone()); leftPhoto.setImageURI(Uri.parse(AppApi.CHENXINGGROUND_IMAGEURL_BASE + item.getImagePath())); selectedVisitor = item; } public void setIntervieweeInfo(final VisitorQueryItem item) { right.setTitle(item.getName()); rightDepartment.setText(item.getDeptName()); rightPost.setText(item.getPostName()); rightMobilePhone.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { Toast.makeText(MainActivity.getInstance(), "正在呼叫手机"+item.getMobilePhone(), Toast.LENGTH_SHORT).show(); } }); rightTel.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { Toast.makeText(MainActivity.getInstance(), "正在呼叫座机"+item.getPhone(), Toast.LENGTH_SHORT).show(); } }); rightPhoto.setImageURI(Uri.parse(AppApi.CHENXINGGROUND_IMAGEURL_BASE + item.getImagePath())); selectedInterviewee = item; } public void setVisitPurposeList(List visitPurposeList) { this.visitPurposeList = visitPurposeList; } }