Commit 1fbabddd416c2ace65fe74af4b8991a923eb36f9

Authored by YangShuai
1 parent 8e0ed956

1 修改设置联系人角色

config.gradle
@@ -21,7 +21,7 @@ ext { @@ -21,7 +21,7 @@ ext {
21 //编译方式 21 //编译方式
22 debug : false, 22 debug : false,
23 //版本号 23 //版本号
24 - version: "0.0.16", 24 + version: "0.0.17",
25 //Lib库前缀 25 //Lib库前缀
26 packeg : "com.cnlive.module", 26 packeg : "com.cnlive.module",
27 //Lib库名称 27 //Lib库名称
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/SetFriendsRolePresenter.java
@@ -13,6 +13,7 @@ import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia; @@ -13,6 +13,7 @@ import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia;
13 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; 13 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
14 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo; 14 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
15 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest; 15 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest;
  16 +import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil;
16 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; 17 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
17 18
18 import java.util.HashMap; 19 import java.util.HashMap;
@@ -24,6 +25,56 @@ public class SetFriendsRolePresenter extends MvpBasePresenter<SetFriendsRoleView @@ -24,6 +25,56 @@ public class SetFriendsRolePresenter extends MvpBasePresenter<SetFriendsRoleView
24 25
25 private String TAG = "SetFriendsRolePresenter"; 26 private String TAG = "SetFriendsRolePresenter";
26 27
  28 + public void invitFamilyMember(Context context, String contactsInvite) {
  29 + if (null == getView()) {
  30 + return;
  31 + }
  32 + QMUITipDialogUtil.loadingDialog(context, "请稍后", true);
  33 + getView().showLoadingView();
  34 + Map<String, String> map = new HashMap<>();
  35 + map.put("type", "2");//联系人邀请
  36 + map.put("contactsInvite", contactsInvite);
  37 + Logic.create(map)
  38 + .action(new Logic.Action<Map<String, String>, APIBaseInfo>() {
  39 + @Override
  40 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo> dataCallback) {
  41 + return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.invitFamilyMember(paramsMap)).subscribe(context, dataCallback);
  42 + }
  43 + }).<APIBaseInfo>event()
  44 + .setSuccessCallback(new SuccessCallback<APIBaseInfo>() {
  45 + @Override
  46 + public void onSuccess(APIBaseInfo baseInfo) {
  47 + Log.e(TAG, "onSuccess: ");
  48 +
  49 + if (null == getView()) {
  50 + return;
  51 + }
  52 + QMUITipDialogUtil.dismessDialog();
  53 + }
  54 + })
  55 + .setFailureCallback(new FailureCallback() {
  56 + @Override
  57 + public void onFailure(int i, String s) {
  58 + //显示重试
  59 + Log.e(TAG, "onFailure: " + s);
  60 + if (null == getView()) {
  61 + return;
  62 + }
  63 + QMUITipDialogUtil.dismessDialog();
  64 + QMUITipDialogUtil.failedDialog(context, s, 1);
  65 + }
  66 + })
  67 +
  68 + .start();
  69 + }
  70 +
  71 + /**
  72 + * 获取用户角色
  73 + *
  74 + * @param context
  75 + * @param sids
  76 + * @param familyId
  77 + */
27 public void getSetRoleList(Context context, String sids, String familyId) { 78 public void getSetRoleList(Context context, String sids, String familyId) {
28 if (null == getView()) { 79 if (null == getView()) {
29 return; 80 return;
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/SelectIMFriendView.java
@@ -297,7 +297,7 @@ public class SelectIMFriendView implements MvpView, LetterBarView.OnLetterSelect @@ -297,7 +297,7 @@ public class SelectIMFriendView implements MvpView, LetterBarView.OnLetterSelect
297 //获取选择的uid 297 //获取选择的uid
298 if (null != adapter) { 298 if (null != adapter) {
299 String selectUids = adapter.getSelectUid(); 299 String selectUids = adapter.getSelectUid();
300 - SetFriendsRoleActivity.startActivity(getContext(), selectUids); 300 + SetFriendsRoleActivity.startActivity(getContext(), selectUids,currentSelectFamilyId);
301 301
302 } 302 }
303 } 303 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/SetFriendsRoleView.java
@@ -4,8 +4,10 @@ import android.app.Activity; @@ -4,8 +4,10 @@ import android.app.Activity;
4 import android.support.v4.content.ContextCompat; 4 import android.support.v4.content.ContextCompat;
5 import android.support.v7.widget.GridLayoutManager; 5 import android.support.v7.widget.GridLayoutManager;
6 import android.support.v7.widget.LinearLayoutManager; 6 import android.support.v7.widget.LinearLayoutManager;
  7 +import android.text.TextUtils;
7 import android.view.View; 8 import android.view.View;
8 9
  10 +import com.cnlive.libs.base.util.AlertUtil;
9 import com.cnlive.strike.xiaojiaspeaker.R; 11 import com.cnlive.strike.xiaojiaspeaker.R;
10 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo; 12 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo;
11 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; 13 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
@@ -20,7 +22,7 @@ public class SetFriendsRoleView implements MvpView { @@ -20,7 +22,7 @@ public class SetFriendsRoleView implements MvpView {
20 private SetFriendsRoleFragment fragment; 22 private SetFriendsRoleFragment fragment;
21 private List<RoleInfo> roleInfoList; 23 private List<RoleInfo> roleInfoList;
22 private SetRoleAdapter adapter; 24 private SetRoleAdapter adapter;
23 - private String currentSelFamilyId; 25 + private String currentSelFamilyId;
24 26
25 public void setCurrentSelFamilyId(String currentSelFamilyId) { 27 public void setCurrentSelFamilyId(String currentSelFamilyId) {
26 this.currentSelFamilyId = currentSelFamilyId; 28 this.currentSelFamilyId = currentSelFamilyId;
@@ -60,19 +62,29 @@ public class SetFriendsRoleView implements MvpView { @@ -60,19 +62,29 @@ public class SetFriendsRoleView implements MvpView {
60 } 62 }
61 } 63 }
62 //设置适配器 64 //设置适配器
63 - adapter = new SetRoleAdapter(getContext(), roleInfoList); 65 + adapter = new SetRoleAdapter(getContext(), roleInfoList, currentSelFamilyId);
64 fragment.binding.rvFriendsRole.setLayoutManager(new LinearLayoutManager(getContext())); 66 fragment.binding.rvFriendsRole.setLayoutManager(new LinearLayoutManager(getContext()));
65 fragment.binding.rvFriendsRole.setAdapter(adapter); 67 fragment.binding.rvFriendsRole.setAdapter(adapter);
66 //设置点击 68 //设置点击
67 adapter.setOnSelectListener(new SetRoleAdapter.OnSelectListener() { 69 adapter.setOnSelectListener(new SetRoleAdapter.OnSelectListener() {
68 @Override 70 @Override
69 public void onSelect(int roleId) { 71 public void onSelect(int roleId) {
70 - 72 + //判断用户角色是都全部设置
  73 + if (adapter.isPeopleAllSetRole()) {
  74 + nextBtnCanClick();
  75 + } else {
  76 + nextBtnCanNotClick();
  77 + }
71 } 78 }
72 79
73 @Override 80 @Override
74 public void onCancel() { 81 public void onCancel() {
75 - 82 + //判断用户角色是都全部设置
  83 + if (adapter.isPeopleAllSetRole()) {
  84 + nextBtnCanClick();
  85 + } else {
  86 + nextBtnCanNotClick();
  87 + }
76 } 88 }
77 }); 89 });
78 //关闭提示 90 //关闭提示
@@ -82,6 +94,20 @@ public class SetFriendsRoleView implements MvpView { @@ -82,6 +94,20 @@ public class SetFriendsRoleView implements MvpView {
82 fragment.binding.flTipView.setVisibility(View.GONE); 94 fragment.binding.flTipView.setVisibility(View.GONE);
83 } 95 }
84 }); 96 });
  97 + //一键邀请
  98 + fragment.binding.btnNext.setOnClickListener(new View.OnClickListener() {
  99 + @Override
  100 + public void onClick(View v) {
  101 + if (null != adapter) {
  102 + String result = adapter.getRoleSetResult();
  103 + if (!TextUtils.isEmpty(result)) {
  104 + fragment.getPresenter().invitFamilyMember(getContext(), result);
  105 + } else {
  106 + AlertUtil.showDeftToast(getContext(), "发送参数异常");
  107 + }
  108 + }
  109 + }
  110 + });
85 } 111 }
86 112
87 113
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/netWork/ApiServiceXiaoJia.java
@@ -123,5 +123,27 @@ public interface ApiServiceXiaoJia { @@ -123,5 +123,27 @@ public interface ApiServiceXiaoJia {
123 */ 123 */
124 @GET("/Daren/sound/getFamilyMember.action") 124 @GET("/Daren/sound/getFamilyMember.action")
125 Observable<Result<APIBaseInfo<XiaoJiaContactInfo>>> getFamilyMember(@QueryMap() Map<String, String> maps); 125 Observable<Result<APIBaseInfo<XiaoJiaContactInfo>>> getFamilyMember(@QueryMap() Map<String, String> maps);
  126 +
  127 + /**
  128 + * 邀请家庭成员
  129 + * "type":"2", //1-二维码邀请 2-联系人邀请
  130 + * "contactsInvite":[
  131 + * {
  132 + * "familyId":"1111", //家庭Id
  133 + * "sid":105102771, //用户sid
  134 + * "roleId":1 //家庭成员身份 1-爸爸 2-妈妈 3-爷爷 4-奶奶 5-外公 6-外婆 7-哥哥 8-弟弟 9-姐姐 10-妹妹
  135 + * },
  136 + * {
  137 + * "familyId":"1111",
  138 + * "sid":105102772,
  139 + * "roleId":1
  140 + * }
  141 + * ]
  142 + *
  143 + * @param maps
  144 + * @return
  145 + */
  146 + @POST("/Daren/sound/familyGroupInviteYD.action")
  147 + Observable<Result<APIBaseInfo>> invitFamilyMember(@QueryMap() Map<String, String> maps);
126 } 148 }
127 149
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/SetFriendsRoleActivity.java
@@ -20,16 +20,18 @@ public class SetFriendsRoleActivity extends AppCompatActivity { @@ -20,16 +20,18 @@ public class SetFriendsRoleActivity extends AppCompatActivity {
20 setContentView(R.layout.activity_set_friends_role); 20 setContentView(R.layout.activity_set_friends_role);
21 if (null != getIntent().getExtras()) { 21 if (null != getIntent().getExtras()) {
22 String selectUid = getIntent().getExtras().getString("selectUid"); 22 String selectUid = getIntent().getExtras().getString("selectUid");
23 - getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, SetFriendsRoleFragment.newInstance(selectUid)).commitAllowingStateLoss(); 23 + String currentSelectFamilyId= getIntent().getExtras().getString("currentSelectFamilyId");
  24 + getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, SetFriendsRoleFragment.newInstance(selectUid,currentSelectFamilyId)).commitAllowingStateLoss();
24 } else { 25 } else {
25 finish(); 26 finish();
26 } 27 }
27 28
28 } 29 }
29 30
30 - public static void startActivity(Activity activity, String selectUid) { 31 + public static void startActivity(Activity activity, String selectUid,String currentSelectFamilyId) {
31 Intent intent = new Intent(activity, SetFriendsRoleActivity.class); 32 Intent intent = new Intent(activity, SetFriendsRoleActivity.class);
32 intent.putExtra("selectUid", selectUid); 33 intent.putExtra("selectUid", selectUid);
  34 + intent.putExtra("currentSelectFamilyId", currentSelectFamilyId);
33 activity.startActivity(intent); 35 activity.startActivity(intent);
34 } 36 }
35 } 37 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/adapter/SetRoleAdapter.java
@@ -16,6 +16,7 @@ import com.cnlive.strike.xiaojiaspeaker.databinding.ItemListSetRoleBinding; @@ -16,6 +16,7 @@ import com.cnlive.strike.xiaojiaspeaker.databinding.ItemListSetRoleBinding;
16 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo; 16 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo;
17 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.InvitFamilyBean; 17 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.InvitFamilyBean;
18 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; 18 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
  19 +import com.cnlive.strike.xiaojiaspeaker.util.GsonUtil;
19 20
20 import java.util.ArrayList; 21 import java.util.ArrayList;
21 import java.util.HashMap; 22 import java.util.HashMap;
@@ -67,10 +68,19 @@ public class SetRoleAdapter extends RecyclerView.Adapter { @@ -67,10 +68,19 @@ public class SetRoleAdapter extends RecyclerView.Adapter {
67 */ 68 */
68 public String getRoleSetResult() { 69 public String getRoleSetResult() {
69 String result = ""; 70 String result = "";
  71 + if (TextUtils.isEmpty(currentSelectFamilyId)) {
  72 + return result;
  73 + }
70 List<InvitFamilyBean> invitFamilyBeanList = new ArrayList<>(); 74 List<InvitFamilyBean> invitFamilyBeanList = new ArrayList<>();
71 for (int i = 0; i < roleInfoList.size(); i++) { 75 for (int i = 0; i < roleInfoList.size(); i++) {
72 InvitFamilyBean bean = new InvitFamilyBean(); 76 InvitFamilyBean bean = new InvitFamilyBean();
73 - bean.setFamilyId(roleInfoList.get(i).getUid()); 77 + bean.setFamilyId(currentSelectFamilyId);
  78 + bean.setRoleId(Integer.parseInt(roleInfoList.get(i).getSelectId()));
  79 + bean.setSid(Integer.parseInt(roleInfoList.get(i).getUid()));
  80 + invitFamilyBeanList.add(bean);
  81 + }
  82 + if (null != invitFamilyBeanList && invitFamilyBeanList.size() > 0) {
  83 + return GsonUtil.GsonString(invitFamilyBeanList);
74 } 84 }
75 return result; 85 return result;
76 } 86 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/SetFriendsRoleFragment.java
@@ -20,7 +20,7 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.SetFriendsRoleView; @@ -20,7 +20,7 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.SetFriendsRoleView;
20 public class SetFriendsRoleFragment extends MvpBindingFragment<SetFriendsRoleView, SetFriendsRolePresenter, Object, FragmentSetFriendRoleBinding> { 20 public class SetFriendsRoleFragment extends MvpBindingFragment<SetFriendsRoleView, SetFriendsRolePresenter, Object, FragmentSetFriendRoleBinding> {
21 private String selectUid; 21 private String selectUid;
22 22
23 - public static SetFriendsRoleFragment newInstance(String selectUid,String currentSelFamilyId) { 23 + public static SetFriendsRoleFragment newInstance(String selectUid, String currentSelFamilyId) {
24 SetFriendsRoleFragment fragment = new SetFriendsRoleFragment(); 24 SetFriendsRoleFragment fragment = new SetFriendsRoleFragment();
25 Bundle bundle = new Bundle(); 25 Bundle bundle = new Bundle();
26 bundle.putString("selectUid", selectUid); 26 bundle.putString("selectUid", selectUid);
@@ -47,8 +47,10 @@ public class SetFriendsRoleFragment extends MvpBindingFragment&lt;SetFriendsRoleVie @@ -47,8 +47,10 @@ public class SetFriendsRoleFragment extends MvpBindingFragment&lt;SetFriendsRoleVie
47 initTopBar(); 47 initTopBar();
48 if (null != getArguments()) { 48 if (null != getArguments()) {
49 selectUid = getArguments().getString("selectUid"); 49 selectUid = getArguments().getString("selectUid");
50 - String currentSelFamilyId=getArguments().getString("currentSelFamilyId");  
51 - 50 + String currentSelFamilyId = getArguments().getString("currentSelFamilyId");
  51 + if (null != getMvpView()) {
  52 + getMvpView().setCurrentSelFamilyId(currentSelFamilyId);
  53 + }
52 getPresenter().getSetRoleList(getActivity(), selectUid, XiaoJIaCommInfo.getFamilyId(getActivity())); 54 getPresenter().getSetRoleList(getActivity(), selectUid, XiaoJIaCommInfo.getFamilyId(getActivity()));
53 } else { 55 } else {
54 getActivity().finish(); 56 getActivity().finish();