package com.parttime.IM.activitysetting;
import android.content.DialogInterface;
import android.widget.Toast;
import com.android.volley.RequestQueue;
import com.carson.constant.ConstantForSaveList;
import com.easemob.chatuidemo.activity.BaseActivity;
import com.parttime.IM.activitysetting.GroupResumeSettingActivity.Action;
import com.parttime.net.DefaultCallback;
import com.parttime.net.GroupSettingRequest;
import com.qingmu.jianzhidaren.R;
import com.quark.jianzhidaren.ApplicationControl;
import com.quark.ui.widget.CustomDialog;
import java.util.ArrayList;
/**
*
* Created by luhua on 2015/8/1.
*/
public class GroupSettingUtils {
public void showAlertDialog(final BaseActivity activity,
String title,
String message,
final GroupResumeSettingActivity.Action action,
final GroupSettingRequest.UserVO userVO,
int positiveRes, int negativeRes,
final String userId,final String groupId, final RequestQueue queue,
final DefaultCallback callback) {
CustomDialog.Builder builder = new CustomDialog.Builder(activity);
builder.setMessage(message);
builder.setTitle(title);
builder.setPositiveButton(positiveRes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
activity.showWait(true);
if(action == Action.UNRESUME || action == Action.REJECT){
ArrayList<Object> userIds = new ArrayList<>();
userIds.add(userId);
new GroupSettingRequest().cancelResume(userIds , groupId, queue, new DefaultCallback(){
@Override
public void success(Object obj) {
super.success(obj);
new Thread(new Runnable() {
public void run() {
try {
/*EMGroupManager.getInstance()
.removeUserFromGroup(groupId,
String.valueOf(userVO.userId));*/
activity.runOnUiThread(new Runnable() {
public void run() {
GroupSettingRequest.AppliantResult appliantResult = ConstantForSaveList.groupAppliantCache.get(groupId);
if(appliantResult != null){
appliantResult.userList.remove(userVO);
if(action == Action.UNRESUME) {
appliantResult.approvedCount--;
}else{
appliantResult.unApprovedCount --;
}
}
callback.success(userId);
activity.showWait(false);
}
});
} catch (final Exception e) {
activity.runOnUiThread(new Runnable() {
public void run() {
activity.showWait(false);
Toast.makeText(ApplicationControl.getInstance(),
"退出群聊失败: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}
}).start();
}
@Override
public void failed(Object obj) {
super.failed(obj);
activity.showWait(false);
Toast.makeText(ApplicationControl.getInstance(),
ApplicationControl.getInstance().getString(R.string.action_failed) ,
Toast.LENGTH_SHORT).show();
}
});
}else if(action == Action.RESUME){
ArrayList<Integer> userIds = new ArrayList<>();
userIds.add(userVO.userId);
new GroupSettingRequest().approve(userIds , groupId, queue, new DefaultCallback(){
@Override
public void success(Object obj) {
super.success(obj);
userVO.apply = GroupSettingRequest.UserVO.APPLY_OK;
GroupSettingRequest.AppliantResult appliantResult = ConstantForSaveList.groupAppliantCache.get(groupId);
if(appliantResult != null){
appliantResult.approvedCount++;
appliantResult.unApprovedCount --;
}
callback.success(null);
activity.showWait(false);
}
@Override
public void failed(Object obj) {
super.failed(obj);
activity.showWait(false);
Toast.makeText(ApplicationControl.getInstance(),
ApplicationControl.getInstance().getString(R.string.action_failed),
Toast.LENGTH_SHORT).show();
}
});
}
}
});
builder.setNegativeButton(negativeRes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
}