|  | @@ -5,6 +5,7 @@ import android.content.Context;
 | 
											
												
													
														|  |  import android.content.Intent;
 |  |  import android.content.Intent;
 | 
											
												
													
														|  |  import android.os.Bundle;
 |  |  import android.os.Bundle;
 | 
											
												
													
														|  |  import android.os.IBinder;
 |  |  import android.os.IBinder;
 | 
											
												
													
														|  | 
 |  | +import android.text.TextUtils;
 | 
											
												
													
														|  |  import android.view.MotionEvent;
 |  |  import android.view.MotionEvent;
 | 
											
												
													
														|  |  import android.view.View;
 |  |  import android.view.View;
 | 
											
												
													
														|  |  import android.view.inputmethod.InputMethodManager;
 |  |  import android.view.inputmethod.InputMethodManager;
 | 
											
										
											
												
													
														|  | @@ -12,16 +13,25 @@ import android.widget.Button;
 | 
											
												
													
														|  |  import android.widget.EditText;
 |  |  import android.widget.EditText;
 | 
											
												
													
														|  |  import android.widget.ImageView;
 |  |  import android.widget.ImageView;
 | 
											
												
													
														|  |  import android.widget.LinearLayout;
 |  |  import android.widget.LinearLayout;
 | 
											
												
													
														|  | 
 |  | +import android.widget.Toast;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import com.bumptech.glide.Glide;
 |  |  import com.bumptech.glide.Glide;
 | 
											
												
													
														|  |  import com.netease.nim.uikit.NimUIKit;
 |  |  import com.netease.nim.uikit.NimUIKit;
 | 
											
												
													
														|  | 
 |  | +import com.netease.nim.uikit.cache.TeamDataCache;
 | 
											
												
													
														|  |  import com.netease.nim.uikit.common.media.picker.PickImageHelper;
 |  |  import com.netease.nim.uikit.common.media.picker.PickImageHelper;
 | 
											
												
													
														|  |  import com.netease.nim.uikit.common.media.picker.activity.PickImageActivity;
 |  |  import com.netease.nim.uikit.common.media.picker.activity.PickImageActivity;
 | 
											
												
													
														|  |  import com.netease.nim.uikit.common.media.picker.model.PhotoInfo;
 |  |  import com.netease.nim.uikit.common.media.picker.model.PhotoInfo;
 | 
											
												
													
														|  | 
 |  | +import com.netease.nim.uikit.common.ui.dialog.DialogMaker;
 | 
											
												
													
														|  |  import com.netease.nim.uikit.common.ui.imageview.HeadImageView;
 |  |  import com.netease.nim.uikit.common.ui.imageview.HeadImageView;
 | 
											
												
													
														|  |  import com.netease.nim.uikit.contact_selector.activity.ContactSelectActivity;
 |  |  import com.netease.nim.uikit.contact_selector.activity.ContactSelectActivity;
 | 
											
												
													
														|  | 
 |  | +import com.netease.nim.uikit.session.actions.PickImageAction;
 | 
											
												
													
														|  | 
 |  | +import com.netease.nim.uikit.session.activity.TeamMessageActivity;
 | 
											
												
													
														|  | 
 |  | +import com.netease.nimlib.sdk.AbortableFuture;
 | 
											
												
													
														|  |  import com.netease.nimlib.sdk.NIMClient;
 |  |  import com.netease.nimlib.sdk.NIMClient;
 | 
											
												
													
														|  |  import com.netease.nimlib.sdk.RequestCallback;
 |  |  import com.netease.nimlib.sdk.RequestCallback;
 | 
											
												
													
														|  | 
 |  | +import com.netease.nimlib.sdk.RequestCallbackWrapper;
 | 
											
												
													
														|  | 
 |  | +import com.netease.nimlib.sdk.ResponseCode;
 | 
											
												
													
														|  | 
 |  | +import com.netease.nimlib.sdk.nos.NosService;
 | 
											
												
													
														|  |  import com.netease.nimlib.sdk.team.TeamService;
 |  |  import com.netease.nimlib.sdk.team.TeamService;
 | 
											
												
													
														|  |  import com.netease.nimlib.sdk.team.constant.TeamBeInviteModeEnum;
 |  |  import com.netease.nimlib.sdk.team.constant.TeamBeInviteModeEnum;
 | 
											
												
													
														|  |  import com.netease.nimlib.sdk.team.constant.TeamFieldEnum;
 |  |  import com.netease.nimlib.sdk.team.constant.TeamFieldEnum;
 | 
											
										
											
												
													
														|  | @@ -32,14 +42,18 @@ import com.netease.nimlib.sdk.team.model.Team;
 | 
											
												
													
														|  |  import com.netease.nimlib.sdk.uinfo.UserService;
 |  |  import com.netease.nimlib.sdk.uinfo.UserService;
 | 
											
												
													
														|  |  import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
 |  |  import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
 | 
											
												
													
														|  |  import com.sheishuo.app.R;
 |  |  import com.sheishuo.app.R;
 | 
											
												
													
														|  | 
 |  | +import com.sheishuo.app.cache.AccountCache;
 | 
											
												
													
														|  |  import com.sheishuo.app.common.util.img.ImgUtil;
 |  |  import com.sheishuo.app.common.util.img.ImgUtil;
 | 
											
												
													
														|  |  import com.sheishuo.app.common.util.net.INet;
 |  |  import com.sheishuo.app.common.util.net.INet;
 | 
											
												
													
														|  |  import com.sheishuo.app.common.util.net.NetImpl;
 |  |  import com.sheishuo.app.common.util.net.NetImpl;
 | 
											
												
													
														|  |  import com.sheishuo.app.common.util.net.ResponseCallback;
 |  |  import com.sheishuo.app.common.util.net.ResponseCallback;
 | 
											
												
													
														|  |  import com.sheishuo.app.common.views.BaseToolbar;
 |  |  import com.sheishuo.app.common.views.BaseToolbar;
 | 
											
												
													
														|  | 
 |  | +import com.sheishuo.app.core_module.mine.view.ui.activity.PersonalSettingsActivity;
 | 
											
												
													
														|  | 
 |  | +import com.sheishuo.app.impl.SheishuoTeamMessageActivity;
 | 
											
												
													
														|  |  import com.sheishuo.app.impl.SheishuoUI;
 |  |  import com.sheishuo.app.impl.SheishuoUI;
 | 
											
												
													
														|  |  import com.sheishuo.app.impl.SheishuoUIKit;
 |  |  import com.sheishuo.app.impl.SheishuoUIKit;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +import java.io.File;
 | 
											
												
													
														|  |  import java.io.Serializable;
 |  |  import java.io.Serializable;
 | 
											
												
													
														|  |  import java.util.ArrayList;
 |  |  import java.util.ArrayList;
 | 
											
												
													
														|  |  import java.util.HashMap;
 |  |  import java.util.HashMap;
 | 
											
										
											
												
													
														|  | @@ -54,6 +68,7 @@ import jp.wasabeef.glide.transformations.CropCircleTransformation;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  public class CreateNewGroupActivity extends SheishuoUI {
 |  |  public class CreateNewGroupActivity extends SheishuoUI {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    public static final int AVATAR_TIME_OUT = 30000;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      private String TAG = this.getClass().getSimpleName();
 |  |      private String TAG = this.getClass().getSimpleName();
 | 
											
												
													
														|  |      private Context context = this;
 |  |      private Context context = this;
 | 
											
										
											
												
													
														|  | @@ -67,6 +82,8 @@ public class CreateNewGroupActivity extends SheishuoUI {
 | 
											
												
													
														|  |      private String avatarIcon = "";
 |  |      private String avatarIcon = "";
 | 
											
												
													
														|  |      private List<String> memberIds = new ArrayList<>();
 |  |      private List<String> memberIds = new ArrayList<>();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    AbortableFuture<String> uploadAvatarFuture;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      protected void onCreate(Bundle savedInstanceState) {
 |  |      protected void onCreate(Bundle savedInstanceState) {
 | 
											
												
													
														|  |          super.onCreate(savedInstanceState);
 |  |          super.onCreate(savedInstanceState);
 | 
											
										
											
												
													
														|  | @@ -110,14 +127,30 @@ public class CreateNewGroupActivity extends SheishuoUI {
 | 
											
												
													
														|  |          createGroupBtn.setOnClickListener(new View.OnClickListener() {
 |  |          createGroupBtn.setOnClickListener(new View.OnClickListener() {
 | 
											
												
													
														|  |              @Override
 |  |              @Override
 | 
											
												
													
														|  |              public void onClick(View v) {
 |  |              public void onClick(View v) {
 | 
											
												
													
														|  | -                String groupName = groupNameTV.getText().toString().trim();
 |  | 
 | 
											
												
													
														|  | -                String groupIntroduce = groupAnnouncementTV.getText().toString().trim();
 |  | 
 | 
											
												
													
														|  | 
 |  | +                final String groupName = groupNameTV.getText().toString().trim();
 | 
											
												
													
														|  | 
 |  | +                final String groupIntroduce = groupAnnouncementTV.getText().toString().trim();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                  if (avatarIcon.isEmpty() || groupName.isEmpty() || groupIntroduce.isEmpty()) {
 |  |                  if (avatarIcon.isEmpty() || groupName.isEmpty() || groupIntroduce.isEmpty()) {
 | 
											
												
													
														|  |                      showToast(context, "请先完善群信息");
 |  |                      showToast(context, "请先完善群信息");
 | 
											
												
													
														|  |                      return;
 |  |                      return;
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +                List<Team> teamList = TeamDataCache.getInstance().getAllAdvancedTeams();
 | 
											
												
													
														|  | 
 |  | +                int count = 0;
 | 
											
												
													
														|  | 
 |  | +                for(int i=0; i<teamList.size(); i++)
 | 
											
												
													
														|  | 
 |  | +                {
 | 
											
												
													
														|  | 
 |  | +                    Team team = teamList.get(i);
 | 
											
												
													
														|  | 
 |  | +                    if(team.getCreator().equals(AccountCache.getAccount().getId()))
 | 
											
												
													
														|  | 
 |  | +                    {
 | 
											
												
													
														|  | 
 |  | +                        count++;
 | 
											
												
													
														|  | 
 |  | +                    }
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +                if(count >= 6)
 | 
											
												
													
														|  | 
 |  | +                {
 | 
											
												
													
														|  | 
 |  | +                    showToast(context, "已达创建群的上限");
 | 
											
												
													
														|  | 
 |  | +                    return;
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |                  if (groupName.contains("国家")
 |  |                  if (groupName.contains("国家")
 | 
											
												
													
														|  |                          ||groupName.contains("省")
 |  |                          ||groupName.contains("省")
 | 
											
												
													
														|  |                          ||groupName.contains("市")
 |  |                          ||groupName.contains("市")
 | 
											
										
											
												
													
														|  | @@ -129,30 +162,68 @@ public class CreateNewGroupActivity extends SheishuoUI {
 | 
											
												
													
														|  |                      return;
 |  |                      return;
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -                Map<TeamFieldEnum, Serializable> teamInfoMap = new HashMap<>();
 |  | 
 | 
											
												
													
														|  | -                teamInfoMap.put(TeamFieldEnum.Name, groupName);
 |  | 
 | 
											
												
													
														|  | -                teamInfoMap.put(TeamFieldEnum.Introduce, groupIntroduce);
 |  | 
 | 
											
												
													
														|  | -                teamInfoMap.put(TeamFieldEnum.VerifyType, VerifyTypeEnum.Free);
 |  | 
 | 
											
												
													
														|  | -                teamService.createTeam(teamInfoMap, TeamTypeEnum.Advanced, "邀请您加入群:"+groupName, memberIds).setCallback(new RequestCallback<Team>() {
 |  | 
 | 
											
												
													
														|  | 
 |  | +                DialogMaker.showProgressDialog(context, "", false);
 | 
											
												
													
														|  | 
 |  | +                getHandler().postDelayed(outimeTask, AVATAR_TIME_OUT);
 | 
											
												
													
														|  | 
 |  | +                uploadAvatarFuture = NIMClient.getService(NosService.class).upload(new File(avatarIcon), PickImageAction.MIME_JPEG);
 | 
											
												
													
														|  | 
 |  | +                uploadAvatarFuture.setCallback(new RequestCallbackWrapper<String>() {
 | 
											
												
													
														|  |                      @Override
 |  |                      @Override
 | 
											
												
													
														|  | -                    public void onSuccess(Team team) {
 |  | 
 | 
											
												
													
														|  | -                        createTeamComplete(team);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    public void onResult(int code, String url, Throwable exception) {
 | 
											
												
													
														|  | 
 |  | +                        if (code == ResponseCode.RES_SUCCESS && !TextUtils.isEmpty(url)) {
 | 
											
												
													
														|  | 
 |  | +                            createTeam(groupName, groupIntroduce, url);
 | 
											
												
													
														|  | 
 |  | +                        } else {
 | 
											
												
													
														|  | 
 |  | +                            Toast.makeText(CreateNewGroupActivity.this, "上传图片失败", Toast
 | 
											
												
													
														|  | 
 |  | +                                    .LENGTH_SHORT).show();
 | 
											
												
													
														|  | 
 |  | +                            onUpdateDone();
 | 
											
												
													
														|  | 
 |  | +                        }
 | 
											
												
													
														|  |                      }
 |  |                      }
 | 
											
												
													
														|  | 
 |  | +                });
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        });
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -                    @Override
 |  | 
 | 
											
												
													
														|  | -                    public void onFailed(int i) {
 |  | 
 | 
											
												
													
														|  | -                        showToast(context, "创建群组失败,错误代码:" + i);
 |  | 
 | 
											
												
													
														|  | -                    }
 |  | 
 | 
											
												
													
														|  | 
 |  | +    private void cancelUpload(String info) {
 | 
											
												
													
														|  | 
 |  | +        if (uploadAvatarFuture != null) {
 | 
											
												
													
														|  | 
 |  | +            uploadAvatarFuture.abort();
 | 
											
												
													
														|  | 
 |  | +            Toast.makeText(context, info, Toast.LENGTH_SHORT).show();
 | 
											
												
													
														|  | 
 |  | +            onUpdateDone();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -                    @Override
 |  | 
 | 
											
												
													
														|  | -                    public void onException(Throwable throwable) {
 |  | 
 | 
											
												
													
														|  | -                        throwable.printStackTrace();
 |  | 
 | 
											
												
													
														|  | -                        showToast(context, "创建群组失败");
 |  | 
 | 
											
												
													
														|  | -                    }
 |  | 
 | 
											
												
													
														|  | -                });
 |  | 
 | 
											
												
													
														|  | 
 |  | +    private Runnable outimeTask = new Runnable() {
 | 
											
												
													
														|  | 
 |  | +        @Override
 | 
											
												
													
														|  | 
 |  | +        public void run() {
 | 
											
												
													
														|  | 
 |  | +            cancelUpload("上传图片失败");
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +    };
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    private void onUpdateDone() {
 | 
											
												
													
														|  | 
 |  | +        uploadAvatarFuture = null;
 | 
											
												
													
														|  | 
 |  | +        DialogMaker.dismissProgressDialog();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    private void createTeam(String name, String intro, String icon)
 | 
											
												
													
														|  | 
 |  | +    {
 | 
											
												
													
														|  | 
 |  | +        Map<TeamFieldEnum, Serializable> teamInfoMap = new HashMap<>();
 | 
											
												
													
														|  | 
 |  | +        teamInfoMap.put(TeamFieldEnum.Name, name);
 | 
											
												
													
														|  | 
 |  | +        teamInfoMap.put(TeamFieldEnum.Introduce, intro);
 | 
											
												
													
														|  | 
 |  | +        teamInfoMap.put(TeamFieldEnum.VerifyType, VerifyTypeEnum.Free);
 | 
											
												
													
														|  | 
 |  | +        teamInfoMap.put(TeamFieldEnum.ICON, icon);
 | 
											
												
													
														|  | 
 |  | +        NIMClient.getService(TeamService.class).createTeam(teamInfoMap, TeamTypeEnum.Advanced, "邀请您加入群:"+name, memberIds).setCallback(new RequestCallback<Team>() {
 | 
											
												
													
														|  | 
 |  | +            @Override
 | 
											
												
													
														|  | 
 |  | +            public void onSuccess(Team team) {
 | 
											
												
													
														|  | 
 |  | +                createTeamComplete(team);
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            @Override
 | 
											
												
													
														|  | 
 |  | +            public void onFailed(int i) {
 | 
											
												
													
														|  | 
 |  | +                showToast(context, "创建群组失败,错误代码:" + i);
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +            @Override
 | 
											
												
													
														|  | 
 |  | +            public void onException(Throwable throwable) {
 | 
											
												
													
														|  | 
 |  | +                throwable.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +                showToast(context, "创建群组失败");
 | 
											
												
													
														|  | 
 |  | +                DialogMaker.dismissProgressDialog();
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          });
 |  |          });
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
										
											
												
													
														|  | @@ -184,6 +255,7 @@ public class CreateNewGroupActivity extends SheishuoUI {
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          });
 |  |          });
 | 
											
												
													
														|  |          SheishuoUIKit.startTeamSession(context, team.getId());
 |  |          SheishuoUIKit.startTeamSession(context, team.getId());
 | 
											
												
													
														|  | 
 |  | +        DialogMaker.dismissProgressDialog();
 | 
											
												
													
														|  |          finish();
 |  |          finish();
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -256,7 +328,7 @@ public class CreateNewGroupActivity extends SheishuoUI {
 | 
											
												
													
														|  |              //群头像选择
 |  |              //群头像选择
 | 
											
												
													
														|  |              Bundle result = data.getExtras();
 |  |              Bundle result = data.getExtras();
 | 
											
												
													
														|  |              List<PhotoInfo> photoInfoList = (List<PhotoInfo>) result.getSerializable("photo_list");
 |  |              List<PhotoInfo> photoInfoList = (List<PhotoInfo>) result.getSerializable("photo_list");
 | 
											
												
													
														|  | -            avatarIcon = photoInfoList.get(0).getFilePath();
 |  | 
 | 
											
												
													
														|  | 
 |  | +            avatarIcon = photoInfoList.get(0).getAbsolutePath();
 | 
											
												
													
														|  |              Glide.with(context)
 |  |              Glide.with(context)
 | 
											
												
													
														|  |                      .load(avatarIcon)
 |  |                      .load(avatarIcon)
 | 
											
												
													
														|  |                      .into(groupAvatar);
 |  |                      .into(groupAvatar);
 |