package com.application.zhangshi_app_android.ui.function; import android.graphics.drawable.ColorDrawable; import android.view.View; import android.view.ViewGroup; import android.widget.PopupWindow; import androidx.databinding.library.baseAdapters.BR; import androidx.lifecycle.Observer; import com.android.app_base.utils.ScreenSizeUtils; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.ContactsRvAdapter; import com.application.zhangshi_app_android.bean.ContactsBean; import com.application.zhangshi_app_android.bean.ContactsDetailBean; import com.application.zhangshi_app_android.databinding.ActivityContactsBinding; ; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; /** * @author Gss * @date 2023.04.18. 20:33 * @desc 通讯录 */ public class ContactsActivity extends DLBaseActivity { private ContactsRvAdapter adapter; private PopupWindow mOperatePopupWindow; @Override public int getLayoutId() { return R.layout.activity_contacts; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new ContactsRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); mOperatePopupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_contacts_import,null)); binding.ivOperate.setOnClickListener(v -> { mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0); }); } @Override public void initData() { viewModel.getContacts(); } @Override public void initLiveDataObserve() { viewModel.getDataListLiveData().observe(this, contactsDetailBeans -> { //根据名字分组 Set maNames = new HashSet<>(); for (ContactsDetailBean bean : contactsDetailBeans) { maNames.add(bean.getMyName()); } List list = new ArrayList<>(); for (String name : maNames) { ContactsBean bean = new ContactsBean(); bean.setMyName(name); List detailBeans = new ArrayList<>(); for (ContactsDetailBean detailBean : contactsDetailBeans) { if (name.equals(detailBean.getMyName())) { detailBeans.add(detailBean); } } bean.setContactsDetailBeans(detailBeans); list.add(bean); } adapter.setData(list); }); } @Override public void onClick(View v) { super.onClick(v); if (v.getId() == R.id.layout_contacts_import){ mOperatePopupWindow.dismiss(); } } }