Commit c32ea8943ffd5c9aa395e5feb416004cad74d2f7

Authored by YangShuai
1 parent 185c3c8f

1 修改使用者管理UI

2 完成二维码分享
app/src/main/java/com/cnlive/strike/xiaojiaspeaker/MainActivity.java
... ... @@ -35,12 +35,12 @@ public class MainActivity extends AppCompatActivity {
35 35 // startActivity(new Intent(MainActivity.this, BluetoothConnActivity.class));
36 36 // startActivity(new Intent(MainActivity.this, BlueToothStep1Activity.class));
37 37 // startActivity(new Intent(MainActivity.this, ConnBluetoothSuccessActivity.class));
38   -// startActivity(new Intent(MainActivity.this, AllDeviceActivity.class));
  38 + startActivity(new Intent(MainActivity.this, AllDeviceActivity.class));
39 39 // startActivity(new Intent(MainActivity.this, DeviceInstructionActivity.class));
40 40 // startActivity(new Intent(MainActivity.this, DeviceManagerActivity.class));
41 41 // startActivity(new Intent(MainActivity.this, FirmwareUpdateActivity.class));
42 42 // startActivity(new Intent(MainActivity.this, SelectWifiActivity.class));
43   - startActivity(new Intent(MainActivity.this, ToolBarTestActivity.class));
  43 +// startActivity(new Intent(MainActivity.this, ToolBarTestActivity.class));
44 44  
45 45 // startActivity(new Intent(MainActivity.this, SelectIMFriendActivity.class));
46 46 // startActivity(new Intent(MainActivity.this, InvitFriendActivity.class));
... ...
module_xiaojiaSoundBox/src/main/AndroidManifest.xml
... ... @@ -20,7 +20,6 @@
20 20 <activity android:name=".ui.activity.ShareFriendActivity"/>
21 21 <activity android:name=".ui.activity.InvitFriendActivity" />
22 22 <activity android:name=".ui.activity.DeviceInfoActivity"></activity>
23   - <activity android:name=".ui.activity.InvitFriendActivity" />
24 23 <activity android:name=".ui.activity.UserManagerActivity" />
25 24 <activity android:name=".ui.activity.ChangeDeviceNameActivity" />
26 25 <activity android:name=".ui.activity.DeviceDetailActivity" />
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/commonInfo/XiaoJIaCommInfo.java
... ... @@ -24,9 +24,29 @@ public class XiaoJIaCommInfo {
24 24 private static final String KEY_CMCC_ID = "xiaojia_cmcc_id";
25 25 //用户手机号
26 26 private static final String KEY_USER_PHONE = "xiaojia_user_phone";
  27 + // 用户头像
  28 + private static final String KEY_USER_ICON = "xiaojia_user_icon";
  29 + // 用户昵称
  30 + private static final String KEY_USER_NICK_NAME = "xiaojia_user_nick";
27 31  
28 32 private static final int MyCurrentMode = Context.MODE_MULTI_PROCESS;
29 33  
  34 + public static void setUserNickName(Context context, String userIcon) {
  35 + MySpHelper.getInstance(context, MyCurrentMode).putString(KEY_USER_NICK_NAME, userIcon);
  36 + }
  37 +
  38 + public static String getUserNickName(Context context) {
  39 + return MySpHelper.getInstance(context, MyCurrentMode).getString(KEY_USER_NICK_NAME, "");
  40 + }
  41 +
  42 + public static void setUserIcon(Context context, String userIcon) {
  43 + MySpHelper.getInstance(context, MyCurrentMode).putString(KEY_USER_ICON, userIcon);
  44 + }
  45 +
  46 + public static String getUserIcon(Context context) {
  47 + return MySpHelper.getInstance(context, MyCurrentMode).getString(KEY_USER_ICON, "");
  48 + }
  49 +
30 50 public static void setUserPhone(Context context, String userPhone) {
31 51 MySpHelper.getInstance(context, MyCurrentMode).putString(KEY_USER_PHONE, userPhone);
32 52 }
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/SelectIMFriendPresenter.java
1 1 package com.cnlive.strike.xiaojiaspeaker.frame.presenter;
2 2  
  3 +import android.content.Context;
  4 +import android.util.Log;
  5 +import android.view.View;
  6 +
  7 +import com.cnlive.libs.base.logic.Logic;
  8 +import com.cnlive.libs.base.logic.callback.DataCallback;
  9 +import com.cnlive.libs.base.logic.callback.FailureCallback;
  10 +import com.cnlive.libs.base.logic.callback.SuccessCallback;
3 11 import com.cnlive.strike.xiaojiaspeaker.frame.view.SelectIMFriendView;
  12 +import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia;
  13 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
  14 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
  15 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.XiaoJiaContactInfo;
  16 +import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest;
4 17 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
5 18  
  19 +import java.util.HashMap;
  20 +import java.util.Map;
  21 +
  22 +import io.reactivex.disposables.Disposable;
  23 +
6 24 public class SelectIMFriendPresenter extends MvpBasePresenter<SelectIMFriendView> {
  25 +
  26 + private String TAG = "SelectIMFriendPresenter";
  27 +
  28 + public void getFamilyMember(Context context, String familyId) {
  29 + if (null == getView()) {
  30 + return;
  31 + }
  32 + Map<String, String> map = new HashMap<>();
  33 + map.put("familyId", familyId);
  34 + Logic.create(map)
  35 + .action(new Logic.Action<Map<String, String>, APIBaseInfo<XiaoJiaContactInfo>>() {
  36 + @Override
  37 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo<XiaoJiaContactInfo>> dataCallback) {
  38 + return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getFamilyMember(paramsMap)).subscribe(context, dataCallback);
  39 + }
  40 + }).<APIBaseInfo<XiaoJiaContactInfo>>event()
  41 + .setSuccessCallback(new SuccessCallback<APIBaseInfo<XiaoJiaContactInfo>>() {
  42 + @Override
  43 + public void onSuccess(APIBaseInfo<XiaoJiaContactInfo> baseInfo) {
  44 + Log.e(TAG, "onSuccess: ");
  45 +
  46 + if (null == getView()) {
  47 + return;
  48 + }
  49 +
  50 + }
  51 + })
  52 + .setFailureCallback(new FailureCallback() {
  53 + @Override
  54 + public void onFailure(int i, String s) {
  55 + //显示重试
  56 + Log.e(TAG, "onFailure: " + s);
  57 +// getView().showRetryView(i, new View.OnClickListener() {
  58 +// @Override
  59 +// public void onClick(View view) {
  60 +// getSetRoleList(context, sids, familyId);
  61 +// }
  62 +// });
  63 + }
  64 + })
  65 +
  66 + .start();
  67 + }
7 68 }
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/InvitFriendView.java
... ... @@ -10,6 +10,7 @@ import android.view.View;
10 10  
11 11 import com.alibaba.android.arouter.launcher.ARouter;
12 12 import com.cnlive.libs.base.arouter.QrService;
  13 +import com.cnlive.libs.base.util.AlertUtil;
13 14 import com.cnlive.libs.base.util.SimpleDES;
14 15 import com.cnlive.strike.application.GlideApp;
15 16 import com.cnlive.strike.xiaojiaspeaker.R;
... ... @@ -42,6 +43,10 @@ public class InvitFriendView implements MvpView {
42 43 private String encryptionContent;
43 44 private String currentSelectFamilyId;
44 45  
  46 + public void setCurrentSelectFamilyId(String currentSelectFamilyId) {
  47 + this.currentSelectFamilyId = currentSelectFamilyId;
  48 + }
  49 +
45 50 public InvitFriendView(InvitFriendFragment fragment) {
46 51 this.fragment = fragment;
47 52 }
... ... @@ -50,13 +55,14 @@ public class InvitFriendView implements MvpView {
50 55 return fragment == null ? null : fragment.getActivity();
51 56 }
52 57  
53   - public void initView(String currentSelectFamilyId) {
  58 + public void initView() {
54 59 this.currentSelectFamilyId = currentSelectFamilyId;
55 60 fragment.binding.btnShare.setOnClickListener(v -> {
56 61 if (!TextUtils.isEmpty(encryptionContent)) {
57   - ShareFriendActivity.startActivity(fragment.getActivity(), "", "", encryptionContent);
  62 + ShareFriendActivity.startActivity(fragment.getActivity(), XiaoJIaCommInfo.getUserIcon(getContext()), XiaoJIaCommInfo.getUserNickName(getContext()), encryptionContent);
58 63 } else {
59 64 //提示跳转失败原因
  65 + AlertUtil.showDeftToast(getContext(), "参数异常");
60 66 }
61 67 });
62 68 }
... ... @@ -113,7 +119,7 @@ public class InvitFriendView implements MvpView {
113 119 xiaoJiaQrcode.setRoleId(roleId);
114 120 xiaoJiaQrcode.setUuid(CommonUtils.getUUID());
115 121  
116   - jsonObject.put("content", GsonUtil.GsonString(xiaoJiaQrcode));
  122 + jsonObject.put("xiajiaContent", GsonUtil.GsonString(xiaoJiaQrcode));
117 123 jsonObject.put("time", System.currentTimeMillis());
118 124 jsonObject.put("type", XiaoJiaConst.QRCODE_TYPE);
119 125  
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/SelectIMFriendView.java
... ... @@ -33,6 +33,7 @@ public class SelectIMFriendView implements MvpView, LetterBarView.OnLetterSelect
33 33 private List<IMFriendNoLetterInfo> noLetterInfoList;
34 34 private List<IMFriendHasLetterInfo> imFriendInfoList;
35 35 private LinearLayoutManager linearLayoutManager;
  36 + private String currentSelectFamilyId;
36 37 private String TAG = "SelectIMFriendView";
37 38 private boolean isFirst = true;
38 39  
... ... @@ -243,9 +244,9 @@ public class SelectIMFriendView implements MvpView, LetterBarView.OnLetterSelect
243 244 @Override
244 245 public void onClick(View view) {
245 246 //获取选择的uid
246   - if (null!=adapter){
247   - String selectUids=adapter.getSelectUid();
248   - SetFriendsRoleActivity.startActivity(getContext(),selectUids);
  247 + if (null != adapter) {
  248 + String selectUids = adapter.getSelectUid();
  249 + SetFriendsRoleActivity.startActivity(getContext(), selectUids);
249 250  
250 251 }
251 252 }
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/UserManagerView.java
... ... @@ -172,7 +172,7 @@ public class UserManagerView implements MvpView {
172 172 fragment.binding.btnInvitFriend.setOnClickListener(new View.OnClickListener() {
173 173 @Override
174 174 public void onClick(View view) {
175   - SelectIMFriendActivity.startActivity(getContext());
  175 + SelectIMFriendActivity.startActivity(getContext(), currentSelectFamilyId);
176 176 }
177 177 });
178 178 //二维码点击
... ... @@ -355,7 +355,9 @@ public class UserManagerView implements MvpView {
355 355 mPopMenu.setmItemClickListener(new PopMenu.OnItemClickListener() {
356 356 @Override
357 357 public void onClick(int position, PopMenuInfo popMenuInfo) {
358   - if (position == 1) {
  358 + if (position == 0) {
  359 + SelectIMFriendActivity.startActivity(getContext(), currentSelectFamilyId);
  360 + } else if (position == 1) {
359 361 InvitFriendActivity.startActivity(getContext(), currentSelectFamilyId);
360 362 }
361 363 }
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/netWork/ApiServiceXiaoJia.java
... ... @@ -7,6 +7,7 @@ import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean;
7 7 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.NetworkResultBean;
8 8 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
9 9 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
  10 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.XiaoJiaContactInfo;
10 11  
11 12 import java.util.Map;
12 13  
... ... @@ -112,5 +113,15 @@ public interface ApiServiceXiaoJia {
112 113 */
113 114 @POST("/Daren/sound/changeWiFi.action")
114 115 Observable<Result<APIBaseInfo>> changeWiFi(@QueryMap() Map<String, String> maps);
  116 +
  117 + /**
  118 + * 获取家庭成员列表(用于校验通讯录)
  119 + * familyId String true 家庭id
  120 + *
  121 + * @param maps
  122 + * @return
  123 + */
  124 + @GET("/Daren/sound/getFamilyMember.action")
  125 + Observable<Result<APIBaseInfo<XiaoJiaContactInfo>>> getFamilyMember(@QueryMap() Map<String, String> maps);
115 126 }
116 127  
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/SelectIMFriendActivity.java
... ... @@ -4,6 +4,7 @@ import android.app.Activity;
4 4 import android.content.Intent;
5 5 import android.support.v7.app.AppCompatActivity;
6 6 import android.os.Bundle;
  7 +import android.text.TextUtils;
7 8  
8 9 import com.cnlive.strike.xiaojiaspeaker.R;
9 10 import com.cnlive.strike.xiaojiaspeaker.ui.fragment.SearchDevicefragment;
... ... @@ -15,12 +16,18 @@ public class SelectIMFriendActivity extends AppCompatActivity {
15 16 protected void onCreate(Bundle savedInstanceState) {
16 17 super.onCreate(savedInstanceState);
17 18 setContentView(R.layout.activity_select_imfriend);
18   - getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, SelectIMFriendFragment.newInstance()).commit();
  19 + if (null != getIntent().getExtras()) {
  20 + String currentSelectFamilyId = getIntent().getExtras().getString("currentSelectFamilyId");
  21 + if (!TextUtils.isEmpty(currentSelectFamilyId)) {
  22 + getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, SelectIMFriendFragment.newInstance(currentSelectFamilyId)).commit();
  23 + }
  24 + }
19 25  
20 26 }
21 27  
22   - public static void startActivity(Activity activity) {
  28 + public static void startActivity(Activity activity, String currentSelectFamilyId) {
23 29 Intent intent = new Intent(activity, SelectIMFriendActivity.class);
  30 + intent.putExtra("currentSelectFamilyId", currentSelectFamilyId);
24 31 activity.startActivity(intent);
25 32 }
26 33 }
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/adapter/SelectIMFriendAdapter.java
... ... @@ -28,7 +28,8 @@ public class SelectIMFriendAdapter extends RecyclerView.Adapter {
28 28 private HashMap<String, Integer> contactLetterGuideMap;
29 29 private List<IMFriendHasLetterInfo> rawDataList;
30 30 private OnItemCheckBoxListener onItemCheckBoxListener;
31   - private final int MAX_FRIENDS = 10;//最多10个人
  31 + private int MAX_FRIENDS = 10;//最多10个人
  32 +
32 33 private String TAG = "SelectIMFriendAdapter";
33 34  
34 35 public void setOnItemCheckBoxListener(OnItemCheckBoxListener onItemCheckBoxListener) {
... ... @@ -63,7 +64,13 @@ public class SelectIMFriendAdapter extends RecyclerView.Adapter {
63 64 if (imFriendInfoList.get(i).getType() == IMFriendHasLetterInfo.LETTER_INDEX) {
64 65 contactLetterGuideMap.put(imFriendInfoList.get(i).getLetter(), i);
65 66 }
  67 + //不可选
  68 + if (imFriendInfoList.get(i).isCantSelect()){
  69 + //获取默认不可选的人
  70 + MAX_FRIENDS--;
  71 + }
66 72 }
  73 +
67 74 }
68 75  
69 76 public void searchItems(List<IMFriendHasLetterInfo> list) {
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/InvitFriendFragment.java
... ... @@ -40,7 +40,8 @@ public class InvitFriendFragment extends MvpBindingFragment&lt;InvitFriendView, Inv
40 40 if (null != getArguments()) {
41 41 String currentSelectFamilyId = getArguments().getString("currentSelectFamilyId");
42 42 if (!TextUtils.isEmpty(currentSelectFamilyId)) {
43   - getMvpView().initView(currentSelectFamilyId);
  43 + getMvpView().setCurrentSelectFamilyId(currentSelectFamilyId);
  44 + getMvpView().initView();
44 45 getPresenter().getSetRoleList(getActivity(), XiaoJIaCommInfo.getUserId(getActivity()), currentSelectFamilyId);
45 46 }
46 47 }
... ...
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/SelectIMFriendFragment.java
... ... @@ -3,6 +3,7 @@ package com.cnlive.strike.xiaojiaspeaker.ui.fragment;
3 3 import android.os.Bundle;
4 4 import android.support.annotation.Nullable;
5 5 import android.support.v4.content.ContextCompat;
  6 +import android.text.TextUtils;
6 7 import android.view.View;
7 8  
8 9 import com.cnlive.libs.base.frame.fragment.MvpBindingFragment;
... ... @@ -14,8 +15,12 @@ import com.cnlive.strike.xiaojiaspeaker.frame.presenter.SelectIMFriendPresenter;
14 15 import com.cnlive.strike.xiaojiaspeaker.frame.view.SelectIMFriendView;
15 16  
16 17 public class SelectIMFriendFragment extends MvpBindingFragment<SelectIMFriendView, SelectIMFriendPresenter, Object, FragmentSelectImFriendBinding> {
17   - public static SelectIMFriendFragment newInstance() {
  18 +
  19 + public static SelectIMFriendFragment newInstance(String currentSelectFamilyId) {
18 20 SelectIMFriendFragment fragment = new SelectIMFriendFragment();
  21 + Bundle bundle = new Bundle();
  22 + bundle.putString("currentSelectFamilyId", currentSelectFamilyId);
  23 + fragment.setArguments(bundle);
19 24 return fragment;
20 25 }
21 26  
... ... @@ -36,7 +41,14 @@ public class SelectIMFriendFragment extends MvpBindingFragment&lt;SelectIMFriendVie
36 41 super.onViewCreated(view, savedInstanceState);
37 42 initTopBar();
38 43 if (null != getMvpView()) {
39   - getMvpView().initView();
  44 + if (null != getArguments()) {
  45 + String currentSelectFamilyId = getArguments().getString("currentSelectFamilyId");
  46 + if (!TextUtils.isEmpty(currentSelectFamilyId)) {
  47 + getMvpView().initView();
  48 + getPresenter().getFamilyMember(getActivity(), currentSelectFamilyId);
  49 + }
  50 + }
  51 +
40 52 }
41 53 }
42 54  
... ...
module_xiaojiaSoundBox/src/main/res/layout/fragment_device_detail.xml
... ... @@ -19,7 +19,8 @@
19 19 android:layout_margin="10dp"
20 20 android:background="@drawable/shape_10_radius_white_bg"
21 21 android:clickable="true"
22   - android:orientation="vertical">
  22 + android:orientation="vertical"
  23 + android:visibility="gone">
23 24  
24 25 <LinearLayout
25 26 android:layout_width="match_parent"
... ...
module_xiaojiaSoundBox/src/main/res/layout/item_list_user_host.xml
... ... @@ -59,6 +59,7 @@
59 59 android:layout_height="wrap_content"
60 60 android:layout_marginTop="5dp"
61 61 android:ellipsize="end"
  62 + android:visibility="gone"
62 63 android:text="用户手机号"
63 64 android:textColor="@color/color_999999"
64 65 android:textSize="12sp" />
... ...
module_xiaojiaSoundBox/src/main/res/layout/item_list_user_member.xml
... ... @@ -65,7 +65,8 @@
65 65 android:ellipsize="end"
66 66 android:text="用户手机号"
67 67 android:textColor="@color/color_999999"
68   - android:textSize="12sp" />
  68 + android:textSize="12sp"
  69 + android:visibility="gone" />
69 70  
70 71 </LinearLayout>
71 72  
... ...