package com.basic.security.fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.basic.security.base.BaseFragment; import com.basic.security.manager.BusinessListManager; import com.basic.security.model.ModelAdapter; import com.basic.security.utils.DateUtil; import com.basic.security.utils.ResolutionAdaptation; import com.basic.security.utils.SocketUtil; import com.basic.security.widget.ConfirmDialog; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.UiThread; import org.androidannotations.annotations.ViewById; import java.util.List; @EFragment public class RuleListFragment extends BaseFragment { @ViewById Button rule_list_btn_add_rule; @ViewById ListView rule_list_lv_add_rule; private List businessList; private BusinessListAdapter adapter; private ConfirmDialog confirmDialog; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(ResolutionAdaptation.fragment_rule_list(), container, false); } @AfterViews public void init() { businessList = BusinessListManager.getBusinessList(); rule_list_lv_add_rule.addHeaderView(View.inflate(getContext(), com.basic.security.utils.ResolutionAdaptation.add_rule_head(), null)); adapter = new BusinessListAdapter(); rule_list_lv_add_rule.setAdapter(adapter); } @Click void rule_list_btn_add_rule() { mainActivity().showFragment((mainActivity()).fragment_rule_detail); mainActivity().fragment_rule_detail.setBusinessDetailDocument(null, true); } public void show() { super.show(); businessList = BusinessListManager.getBusinessList(); refreshList(); } @UiThread public void refreshList() { adapter.notifyDataSetChanged(); } public void hide() { super.hide(); if (mainActivity().currentFragment != mainActivity().fragment_rule_list) { if (confirmDialog != null) { confirmDialog.dismiss(); } } } private class BusinessListAdapter extends BaseAdapter { public int getCount() { return businessList == null ? 0 : businessList.size(); } public Object getItem(int position) { return businessList.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { View layout; ViewHolder viewHolder; if (convertView == null) { layout = View.inflate(getContext(), com.basic.security.utils.ResolutionAdaptation.add_rule_item(), null); viewHolder = new ViewHolder(); viewHolder.name = layout.findViewById(com.basic.security.utils.RUtils.R_id_add_rule_tv_name); viewHolder.time = layout.findViewById(com.basic.security.utils.RUtils.R_id_add_rule_tv_time); viewHolder.delete = layout.findViewById(com.basic.security.utils.RUtils.R_id_add_rule_iv_delete); viewHolder.manage = layout.findViewById(com.basic.security.utils.RUtils.R_id_add_rule_iv_manage); viewHolder.edit = layout.findViewById(com.basic.security.utils.RUtils.R_id_add_rule_iv_edit); layout.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); layout = convertView; } final ModelAdapter business = businessList.get(position); viewHolder.name.setText(business.getString("business_name")); if ("1".equals(business.getString("only_allow"))) { String start_time = DateUtil.formatTime(Long.parseLong(business.getString("only_allow_start")), "yyyy/MM/dd HH:mm"); String end_time = DateUtil.formatTime(Long.parseLong(business.getString("only_allow_end")), "yyyy/MM/dd HH:mm"); viewHolder.time.setText(start_time + " " + "" + "— " + end_time); } else { viewHolder.time.setText("————"); } viewHolder.edit.setOnClickListener(v -> { mainActivity().fragment_rule_detail.setBusinessDetailDocument(business, false); mainActivity().showFragment((mainActivity()).fragment_rule_detail); }); viewHolder.delete.setOnClickListener(view -> { confirmDialog = new ConfirmDialog(mainActivity(), "确定要删除规则 " + business.getString("business_name") + " 吗?", "确认删除", "取消"); confirmDialog.show(); confirmDialog.setClickListener(new ConfirmDialog.ClickListenerInterface() { public void doConfirm() { BusinessListManager.deleteBusiness(business); SocketUtil.rpcCallAsyncDeleteBusinessRule(business); businessList.remove(position); adapter.notifyDataSetChanged(); confirmDialog.dismiss(); } public void doCancel() { confirmDialog.dismiss(); } }); }); viewHolder.manage.setOnClickListener(v -> { mainActivity().fragment_business_person.BusinessPersonData(business); mainActivity().showFragment(mainActivity().fragment_business_person); }); return layout; } class ViewHolder { private TextView name, time; private ImageView edit, delete, manage; } } }