package cn.com.basic.face.adapter; import android.content.Context; import android.net.Uri; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.alibaba.fastjson.JSON; import com.bsk.zhangbo.demoforbsk.R; import com.camnter.easyrecyclerview.adapter.EasyRecyclerViewAdapter; import com.camnter.easyrecyclerview.holder.EasyRecyclerViewHolder; import java.util.List; import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.query.item.CheckInQueryItem; import cn.com.basic.face.discern.query.item.SurveillanceQueryItem; import cn.com.basic.face.fragment.*; import cn.com.basic.face.util.AppApi; import cn.com.basic.face.util.Constant; public class SurveillanceFragment { public static class SurveillanceBottomVisitorListViewAdapter extends EasyRecyclerViewAdapter { private Context context; public SurveillanceBottomVisitorListViewAdapter(Context context) { this.context = context; } @Override public int[] getItemLayouts() { return new int[]{R.layout.fragment_surveillance_bottom_register_cell,R.layout.fragment_surveillance_bottom_visitor_cell, R.layout.fragment_surveillance_bottom_visit_blank_cell}; } @Override public void onBindRecycleViewHolder(EasyRecyclerViewHolder viewHolder, int position) { switch (((SurveillanceQueryItem)getList().get(position)).getRegisterOrCheckIn()){ case Constant.Surveillance.VISIT_REGISTER_ITEM_TYPE: RegisterCellViewFillData(viewHolder,position); break; case Constant.Surveillance.VISIT_CHECK_IN_ITEM_TYPE: checkInCellViewFillData(viewHolder,position); break; } } @Override public int getRecycleViewItemType(int position) { switch (((SurveillanceQueryItem)getList().get(position)).getRegisterOrCheckIn()) { case Constant.Surveillance.VISIT_REGISTER_ITEM_TYPE: return Constant.Surveillance.REGISTER_CELL_VIEW_INDEX; case Constant.Surveillance.VISIT_CHECK_IN_ITEM_TYPE: return Constant.Surveillance.CHECK_IN_CELL_VIEW_INDEX; case Constant.Surveillance.VISIT_BLANK_ITEM_TYPE: return Constant.Surveillance.VISIT_BLANK_CELL_VIEW_INDEX; } return Constant.Surveillance.VISIT_BLANK_CELL_VIEW_INDEX; } /** * 人员注册 */ private void RegisterCellViewFillData(EasyRecyclerViewHolder holder, int position){ RelativeLayout mLayout = holder.findViewById(R.id.fragment_home_bottom_register_cell_relative_layout); ViewGroup.LayoutParams layoutParams = mLayout.getLayoutParams(); layoutParams.height = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h127dp); layoutParams.width = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h122dp); mLayout.setLayoutParams(layoutParams); final Object data = this.getItem(position); ImageView fragment_home_bottom_register_cell_photo = holder.findViewById(R.id.fragment_home_bottom_register_cell_photo); TextView fragment_home_bottom_register_cell_to_register = holder.findViewById(R.id.fragment_home_bottom_register_cell_to_register); if (data instanceof SurveillanceQueryItem) { final SurveillanceQueryItem item = (SurveillanceQueryItem)data; if (item.getImagePath() != null && !item.getImagePath().equals("")) { fragment_home_bottom_register_cell_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE +item.getImagePath())); } else { if (item.getBitmap() != null) { fragment_home_bottom_register_cell_photo.setImageBitmap(item.getBitmap()); } else { fragment_home_bottom_register_cell_photo.setImageResource(R.drawable.u45); } } fragment_home_bottom_register_cell_to_register.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { MainActivity.selectPage(1); RegisterFragment.getInstance().setRegisterInfo(getVo(item));//java.lang.OutOfMemoryError: Failed to allocate a 25338980 byte allocation with 15827186 free bytes and 15MB until OOM if(item.getBitmap() != null) { RegisterFragment.getInstance().setChoosePhoto(item.getBitmap()); RegisterFragment.getInstance().setSurveillanceQueryItem_selectPhoto(item); } } }); } } /** * 来访登记 */ private void checkInCellViewFillData(EasyRecyclerViewHolder holder, int position){ RelativeLayout mLayout = holder.findViewById(R.id.fragment_supervisory_bottom_visitor_cell_relative_layout); ViewGroup.LayoutParams layoutParams = mLayout.getLayoutParams(); layoutParams.height = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h127dp); layoutParams.width = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h122dp); mLayout.setLayoutParams(layoutParams); ImageView fragment_home_bottom_visitor_cell_photo = (ImageView) mLayout.findViewById(R.id.fragment_home_bottom_visitor_cell_photo); TextView fragment_home_bottom_visitor_cell_warning = (TextView) mLayout.findViewById(R.id.fragment_home_bottom_visitor_cell_warning); TextView fragment_home_bottom_visitor_cell_name = (TextView) mLayout.findViewById(R.id.fragment_home_bottom_visitor_cell_name); TextView fragment_home_bottom_visitor_cell_status = (TextView) mLayout.findViewById(R.id.fragment_home_bottom_visitor_cell_status); Object data = this.getItem(position); // if (data instanceof FacePhotoItem) { // final FacePhotoItem item = (FacePhotoItem) data; // // if (item.getWarning().length() > 0 && "来访登记".equals(item.getStatus())) { // //warningTv.setText("警告"); // fragment_home_bottom_visitor_cell_warning.setVisibility(View.VISIBLE); // } else { // fragment_home_bottom_visitor_cell_warning.setVisibility(View.GONE); // } // // fragment_home_bottom_visitor_cell_name.setText(item.getName()); // // fragment_home_bottom_visitor_cell_status.setText(item.getStatus()); // if ("来访登记".equals(item.getStatus())) { // fragment_home_bottom_visitor_cell_status.setBackground(context.getDrawable(R.drawable.rectangle_textview)); // // fragment_home_bottom_visitor_cell_status.setHeight((int)(context.getResources().getDisplayMetrics().density * 45)); // fragment_home_bottom_visitor_cell_status.setOnClickListener(new View.OnClickListener(){ // @Override // public void onClick(View view) { // MainActivity.selectPage(2); // } // }); // } else { // fragment_home_bottom_visitor_cell_status.setBackground(null); // fragment_home_bottom_visitor_cell_status.setOnClickListener(null); // } // } fragment_home_bottom_visitor_cell_name.setText(""); if (data instanceof SurveillanceQueryItem) { final SurveillanceQueryItem item = (SurveillanceQueryItem)data; fragment_home_bottom_visitor_cell_name.setText(item.getUsername()); if (item.getImagePath() != null && !item.getImagePath().equals("")) { fragment_home_bottom_visitor_cell_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE +item.getImagePath())); } else { if (item.getBitmap() != null) { fragment_home_bottom_visitor_cell_photo.setImageBitmap(item.getBitmap()); } else { fragment_home_bottom_visitor_cell_photo.setImageResource(R.drawable.u45); } } if (1==1) { fragment_home_bottom_visitor_cell_status.setBackground(context.getDrawable(R.drawable.rectangle_textview)); fragment_home_bottom_visitor_cell_status.setHeight((int)(context.getResources().getDisplayMetrics().density * 45)); fragment_home_bottom_visitor_cell_status.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { MainActivity.selectPage(Constant.TabType.CHECK_IN); cn.com.basic.face.fragment.CheckInFragment.getInstance(). getFragment_check_in_right_visitor_cell() .setVisitorInfo(getVo(item)); if (item.getBitmap() != null && (item.getImagePath() == null || "".equals(item.getImagePath()))) { cn.com.basic.face.fragment.CheckInFragment.getInstance(). getFragment_check_in_right_visitor_cell().setPhoto(item.getBitmap()); } } }); } if (item.getWarning() != null && "1".equals(item.getWarning())) { fragment_home_bottom_visitor_cell_warning.setVisibility(View.VISIBLE); } else { fragment_home_bottom_visitor_cell_warning.setVisibility(View.INVISIBLE); } } } private CheckInQueryItem getVo(SurveillanceQueryItem item) { return JSON.parseObject(JSON.toJSONString(item), CheckInQueryItem.class); } public void setRowType(int i) { } } public static class SurveillanceBottomAttendanceListViewAdapter extends EasyRecyclerViewAdapter { private Context context; public SurveillanceBottomAttendanceListViewAdapter(Context context) { this.context = context; } @Override public int[] getItemLayouts() { return new int[]{R.layout.fragment_surveillance_bottom_attendance_cell, R.layout.fragment_surveillance_bottom_attendance_blank_cell}; } @Override public void onBindRecycleViewHolder(EasyRecyclerViewHolder viewHolder, int position) { RelativeLayout mLayout = viewHolder.findViewById(R.id.fragment_supervisory_bottom_attendance_cell_relative_layout); ViewGroup.LayoutParams layoutParams = mLayout.getLayoutParams(); layoutParams.height = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h127dp); layoutParams.width = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h122dp); mLayout.setLayoutParams(layoutParams); ImageView fragment_home_bottom_attendance_cell_photo = (ImageView) mLayout.findViewById(R.id.fragment_home_bottom_attendance_cell_photo); TextView fragment_home_bottom_attendance_cell_name = (TextView) mLayout.findViewById(R.id.fragment_home_bottom_attendance_cell_name); TextView fragment_home_bottom_attendance_cell_status = (TextView) mLayout.findViewById(R.id.fragment_home_bottom_attendance_cell_status); Object data = this.getItem(position); fragment_home_bottom_attendance_cell_name.setText(""); if (data instanceof SurveillanceQueryItem) { final SurveillanceQueryItem item = (SurveillanceQueryItem)data; fragment_home_bottom_attendance_cell_name.setText(item.getUsername()); if (item.getImagePath() != null && !item.getImagePath().equals("")) { fragment_home_bottom_attendance_cell_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE +item.getImagePath())); } else { if (item.getBitmap() != null) { fragment_home_bottom_attendance_cell_photo.setImageBitmap(item.getBitmap()); } else { fragment_home_bottom_attendance_cell_photo.setImageResource(R.drawable.u45); } } fragment_home_bottom_attendance_cell_status.setText(item.getStatus()); } } @Override public int getRecycleViewItemType(int position) { return 0; } private CheckInQueryItem getVo(SurveillanceQueryItem item) { return JSON.parseObject(JSON.toJSONString(item), CheckInQueryItem.class); } } public static class SurveillancePhotoSelectListViewAdapter extends EasyRecyclerViewAdapter { private Context context; public SurveillancePhotoSelectListViewAdapter(Context context) { this.context = context; } public static int selectPhotoOrUploadPhoto; @Override public int[] getItemLayouts() { return new int[]{R.layout.fragment_surveillance_photo_cell, R.layout.fragment_surveillance_photo_blank_cell}; } @Override public void onBindRecycleViewHolder(EasyRecyclerViewHolder viewHolder, int position) { RelativeLayout mLayout = viewHolder.findViewById(R.id.fragment_surveillance_photo_cell_relative_layout); ViewGroup.LayoutParams layoutParams = mLayout.getLayoutParams(); layoutParams.height = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h127dp); layoutParams.width = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h122dp); mLayout.setLayoutParams(layoutParams); if (((SurveillanceQueryItem)getList().get(position)).getRegisterOrCheckIn() != Constant.Surveillance.VISIT_REGISTER_ITEM_TYPE) { return; } ImageView fragment_surveillance_photo_cell_photo = (ImageView) mLayout.findViewById(R.id.fragment_surveillance_photo_cell_photo); final View fragment_surveillance_photo_cell_select = mLayout.findViewById(R.id.fragment_surveillance_photo_cell_select); Object data = this.getItem(position); if (data instanceof SurveillanceQueryItem) { final SurveillanceQueryItem item = (SurveillanceQueryItem)data; fragment_surveillance_photo_cell_select.setVisibility(item.isSurveillancePhotoSelected() ? View.VISIBLE : View.INVISIBLE ); fragment_surveillance_photo_cell_photo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (selectPhotoOrUploadPhoto == CommonVariables.SelectPhotoType.SELECT_PHOTO) { RegisterFragment.getInstance().set_fragment_register_surveillance_photo(item); } if (selectPhotoOrUploadPhoto == CommonVariables.SelectPhotoType.UPLOAD_PHOTO) { RegisterFragment.getInstance().set_fragment_register_upload_custom_photo(item); } for (SurveillanceQueryItem queryItem : (List)getList()) { queryItem.setSurveillancePhotoSelected(false); } item.setSurveillancePhotoSelected(true); notifyDataSetChanged(); } }); if (item.getImagePath() != null && !item.getImagePath().equals("")) { fragment_surveillance_photo_cell_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE +item.getImagePath())); } else { if (item.getBitmap() != null) { fragment_surveillance_photo_cell_photo.setImageBitmap(item.getBitmap()); } else { fragment_surveillance_photo_cell_photo.setImageResource(R.drawable.u45); } } } } @Override public int getRecycleViewItemType(int position) { if (((SurveillanceQueryItem)getList().get(position)).getRegisterOrCheckIn() != Constant.Surveillance.VISIT_REGISTER_ITEM_TYPE) { return 1; } return 0; } private CheckInQueryItem getVo(SurveillanceQueryItem item) { return JSON.parseObject(JSON.toJSONString(item), CheckInQueryItem.class); } } }