package com.yidianling.avchatkit.teamavchat; import android.content.Context; import android.util.Pair; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.LinearLayout; import com.yidianling.avchatkit.AVChatKit; import com.yidianling.im.R; import com.yidianling.avchatkit.common.dialog.CustomAlertDialog; import com.yidianling.avchatkit.teamavchat.adapter.TeamAVChatVoiceMuteAdapter; import com.yidianling.avchatkit.teamavchat.module.TeamAVChatVoiceMuteItem; import java.util.ArrayList; import java.util.List; /** * Created by hzchenkang on 2017/5/9. */ public class TeamAVChatVoiceMuteDialog extends CustomAlertDialog { private TeamAVChatVoiceMuteAdapter adapter; private TeamVoiceMuteListener listener; private List<Pair<String, Boolean>> beforeMutes; public TeamAVChatVoiceMuteDialog(Context context, String teamId, List<Pair<String, Boolean>> voiceMutes) { super(context, voiceMutes == null ? 0 : voiceMutes.size()); beforeMutes = voiceMutes; if (voiceMutes == null) { return; } setTitle("屏蔽音频"); setCanceledOnTouchOutside(false); List<TeamAVChatVoiceMuteItem> data = new ArrayList<>(); for (Pair<String, Boolean> voiceMute : voiceMutes) { TeamAVChatVoiceMuteItem item = new TeamAVChatVoiceMuteItem(); item.setAccount(voiceMute.first); item.setMute(voiceMute.second); item.setDisplayName(AVChatKit.getTeamDataProvider().getTeamMemberDisplayName(teamId, item.getAccount())); data.add(item); } adapter = new TeamAVChatVoiceMuteAdapter(context, data); setAdapter(adapter, new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TeamAVChatVoiceMuteItem item = (TeamAVChatVoiceMuteItem) adapter.getItem(position); if (item == null) { return; } item.setMute(!item.isMute()); adapter.notifyDataSetChanged(); } }); } public void setTeamVoiceMuteListener(TeamVoiceMuteListener listener) { this.listener = listener; } public interface TeamVoiceMuteListener { void onVoiceMuteChange(List<Pair<String, Boolean>> voiceMuteAccounts); } @Override protected void addFootView(LinearLayout parent) { View footView = getLayoutInflater().inflate(R.layout.im_nim_easy_alert_dialog_bottom_button, null); Button positiveButton = (Button) footView.findViewById(R.id.easy_dialog_positive_btn); positiveButton.setVisibility(View.VISIBLE); positiveButton.setText(getContext().getString(R.string.im_save)); Button negativeButton = (Button) footView.findViewById(R.id.easy_dialog_negative_btn); negativeButton.setVisibility(View.VISIBLE); positiveButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (listener != null) { List<Pair<String, Boolean>> items = new ArrayList<>(); List<TeamAVChatVoiceMuteItem> afterItems = adapter.getItems(); for (int i = 0; i < afterItems.size(); i++) { if (afterItems.get(i).isMute() != beforeMutes.get(i).second) { items.add(new Pair<>(beforeMutes.get(i).first, !beforeMutes.get(i).second)); } } listener.onVoiceMuteChange(items); } dismiss(); } }); negativeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); parent.addView(footView); } }