Commit 75f5d477d88386becf28dd2febbc179197ee546b

Authored by YangShuai
1 parent 840e11da

1 修改音箱名称

Showing 34 changed files with 1670 additions and 690 deletions
app/src/main/java/com/cnlive/strike/xiaojiaspeaker/MainActivity.java
@@ -26,7 +26,11 @@ public class MainActivity extends AppCompatActivity { @@ -26,7 +26,11 @@ public class MainActivity extends AppCompatActivity {
26 protected void onCreate(Bundle savedInstanceState) { 26 protected void onCreate(Bundle savedInstanceState) {
27 super.onCreate(savedInstanceState); 27 super.onCreate(savedInstanceState);
28 setContentView(R.layout.activity_speaker_main); 28 setContentView(R.layout.activity_speaker_main);
29 - XiaoJIaCommInfo.setUserId(this, "10510277"); 29 + XiaoJIaCommInfo.setUserId(this, "10514333");
  30 + XiaoJIaCommInfo.setUserPhone(this, " 18301489586");
  31 +// XiaoJIaCommInfo.setUserId(this, "10513196");
  32 +// XiaoJIaCommInfo.setUserPhone(this, "15010140838");
  33 +
30 // startActivity(new Intent(MainActivity.this, ToolBarTestActivity.class)); 34 // startActivity(new Intent(MainActivity.this, ToolBarTestActivity.class));
31 // startActivity(new Intent(MainActivity.this, BluetoothConnActivity.class)); 35 // startActivity(new Intent(MainActivity.this, BluetoothConnActivity.class));
32 // startActivity(new Intent(MainActivity.this, BlueToothStep1Activity.class)); 36 // startActivity(new Intent(MainActivity.this, BlueToothStep1Activity.class));
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/commonInfo/XiaoJIaCommInfo.java
@@ -22,9 +22,19 @@ public class XiaoJIaCommInfo { @@ -22,9 +22,19 @@ public class XiaoJIaCommInfo {
22 private static final String KEY_FAMILY_ID = "xiaojia_family_id"; 22 private static final String KEY_FAMILY_ID = "xiaojia_family_id";
23 //移动id 23 //移动id
24 private static final String KEY_CMCC_ID = "xiaojia_cmcc_id"; 24 private static final String KEY_CMCC_ID = "xiaojia_cmcc_id";
25 - // 25 + //用户手机号
  26 + private static final String KEY_USER_PHONE = "xiaojia_user_phone";
  27 +
26 private static final int MyCurrentMode = Context.MODE_MULTI_PROCESS; 28 private static final int MyCurrentMode = Context.MODE_MULTI_PROCESS;
27 29
  30 + public static void setUserPhone(Context context, String userPhone) {
  31 + MySpHelper.getInstance(context, MyCurrentMode).putString(KEY_USER_PHONE, userPhone);
  32 + }
  33 +
  34 + public static String getUserPhone(Context context) {
  35 + return MySpHelper.getInstance(context, MyCurrentMode).getString(KEY_USER_PHONE, "");
  36 + }
  37 +
28 public static void setCMCCId(Context context, String cmccId) { 38 public static void setCMCCId(Context context, String cmccId) {
29 MySpHelper.getInstance(context, MyCurrentMode).putString(KEY_CMCC_ID, cmccId); 39 MySpHelper.getInstance(context, MyCurrentMode).putString(KEY_CMCC_ID, cmccId);
30 } 40 }
@@ -34,7 +44,6 @@ public class XiaoJIaCommInfo { @@ -34,7 +44,6 @@ public class XiaoJIaCommInfo {
34 } 44 }
35 45
36 46
37 -  
38 public static void setFamilyId(Context context, String familyId) { 47 public static void setFamilyId(Context context, String familyId) {
39 MySpHelper.getInstance(context, MyCurrentMode).putString(KEY_FAMILY_ID, familyId); 48 MySpHelper.getInstance(context, MyCurrentMode).putString(KEY_FAMILY_ID, familyId);
40 } 49 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/AllDeviceFragmentPresenter.java
@@ -13,10 +13,9 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.AllDeviceFragmentView; @@ -13,10 +13,9 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.AllDeviceFragmentView;
13 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia; 13 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia;
14 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean; 14 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean;
15 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.NetworkResultBean; 15 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.NetworkResultBean;
16 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.SubscriptionBaseInfo; 16 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
17 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest; 17 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest;
18 import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil; 18 import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil;
19 -import com.cnlive.strike.xiaojiaspeaker.util.utilcode.util.GsonUtils;  
20 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; 19 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
21 20
22 import java.util.HashMap; 21 import java.util.HashMap;
@@ -37,19 +36,18 @@ public class AllDeviceFragmentPresenter extends MvpBasePresenter<AllDeviceFragme @@ -37,19 +36,18 @@ public class AllDeviceFragmentPresenter extends MvpBasePresenter<AllDeviceFragme
37 map.put("sid", sid); 36 map.put("sid", sid);
38 map.put("phone", phone); 37 map.put("phone", phone);
39 Logic.create(map) 38 Logic.create(map)
40 - .action(new Logic.Action<Map<String, String>, SubscriptionBaseInfo<FamilyListBean>>() { 39 + .action(new Logic.Action<Map<String, String>, APIBaseInfo<FamilyListBean>>() {
41 @Override 40 @Override
42 - public Disposable action(Map<String, String> paramsMap, DataCallback<SubscriptionBaseInfo<FamilyListBean>> dataCallback) { 41 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo<FamilyListBean>> dataCallback) {
43 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getFamilyList(paramsMap)).subscribe(context, dataCallback); 42 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getFamilyList(paramsMap)).subscribe(context, dataCallback);
44 } 43 }
45 - }).<SubscriptionBaseInfo<FamilyListBean>>event()  
46 - .setSuccessCallback(new SuccessCallback<SubscriptionBaseInfo<FamilyListBean>>() { 44 + }).<APIBaseInfo<FamilyListBean>>event()
  45 + .setSuccessCallback(new SuccessCallback<APIBaseInfo<FamilyListBean>>() {
47 @Override 46 @Override
48 - public void onSuccess(SubscriptionBaseInfo<FamilyListBean> baseInfo) { 47 + public void onSuccess(APIBaseInfo<FamilyListBean> baseInfo) {
49 if (null == getView()) { 48 if (null == getView()) {
50 return; 49 return;
51 } 50 }
52 - GsonUtils.toJson(baseInfo);  
53 getView().hideLoadingView(); 51 getView().hideLoadingView();
54 getView().initAllDeviceList(baseInfo.getData()); 52 getView().initAllDeviceList(baseInfo.getData());
55 } 53 }
@@ -79,15 +77,15 @@ public class AllDeviceFragmentPresenter extends MvpBasePresenter&lt;AllDeviceFragme @@ -79,15 +77,15 @@ public class AllDeviceFragmentPresenter extends MvpBasePresenter&lt;AllDeviceFragme
79 Map<String, String> map = new HashMap<>(); 77 Map<String, String> map = new HashMap<>();
80 map.put("familyId", familyId); 78 map.put("familyId", familyId);
81 Logic.create(map) 79 Logic.create(map)
82 - .action(new Logic.Action<Map<String, String>, SubscriptionBaseInfo<NetworkResultBean>>() { 80 + .action(new Logic.Action<Map<String, String>, APIBaseInfo<NetworkResultBean>>() {
83 @Override 81 @Override
84 - public Disposable action(Map<String, String> paramsMap, DataCallback<SubscriptionBaseInfo<NetworkResultBean>> dataCallback) { 82 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo<NetworkResultBean>> dataCallback) {
85 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getNetworkResult(paramsMap)).subscribe(context, dataCallback); 83 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getNetworkResult(paramsMap)).subscribe(context, dataCallback);
86 } 84 }
87 - }).<SubscriptionBaseInfo<NetworkResultBean>>event()  
88 - .setSuccessCallback(new SuccessCallback<SubscriptionBaseInfo<NetworkResultBean>>() { 85 + }).<APIBaseInfo<NetworkResultBean>>event()
  86 + .setSuccessCallback(new SuccessCallback<APIBaseInfo<NetworkResultBean>>() {
89 @Override 87 @Override
90 - public void onSuccess(SubscriptionBaseInfo<NetworkResultBean> baseInfo) { 88 + public void onSuccess(APIBaseInfo<NetworkResultBean> baseInfo) {
91 if (null == getView()) { 89 if (null == getView()) {
92 return; 90 return;
93 } 91 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/ChangeDeviceNamePresenter.java 0 → 100644
  1 +package com.cnlive.strike.xiaojiaspeaker.frame.presenter;
  2 +
  3 +import android.content.Context;
  4 +import android.util.Log;
  5 +
  6 +import com.cnlive.libs.base.logic.Logic;
  7 +import com.cnlive.libs.base.logic.callback.DataCallback;
  8 +import com.cnlive.libs.base.logic.callback.FailureCallback;
  9 +import com.cnlive.libs.base.logic.callback.SuccessCallback;
  10 +import com.cnlive.strike.xiaojiaspeaker.frame.view.ChangeDeviceNameView;
  11 +import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia;
  12 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
  13 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
  14 +import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest;
  15 +import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil;
  16 +import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
  17 +
  18 +import java.util.HashMap;
  19 +import java.util.Map;
  20 +
  21 +import io.reactivex.disposables.Disposable;
  22 +
  23 +public class ChangeDeviceNamePresenter extends MvpBasePresenter<ChangeDeviceNameView> {
  24 +
  25 + private String TAG = "ChangeDeviceNamePresenter";
  26 +
  27 + public void changeDeviceName(Context context, String deviceId, String newName) {
  28 + if (null == getView()) {
  29 + return;
  30 + }
  31 + QMUITipDialogUtil.loadingDialog(context, "请稍后...", false);
  32 + Map<String, String> map = new HashMap<>();
  33 + map.put("devId", deviceId);
  34 + map.put("newName", newName);
  35 + Logic.create(map)
  36 + .action(new Logic.Action<Map<String, String>, APIBaseInfo>() {
  37 + @Override
  38 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo> dataCallback) {
  39 + return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.changeDeviceName(paramsMap)).subscribe(context, dataCallback);
  40 + }
  41 + }).<APIBaseInfo>event()
  42 + .setSuccessCallback(new SuccessCallback<APIBaseInfo>() {
  43 + @Override
  44 + public void onSuccess(APIBaseInfo baseInfo) {
  45 + Log.e(TAG, "onSuccess: ");
  46 +
  47 + if (null == getView()) {
  48 + return;
  49 + }
  50 + QMUITipDialogUtil.dismessDialog();
  51 + QMUITipDialogUtil.successDialog(context, "保存成功", 1);
  52 + }
  53 + })
  54 + .setFailureCallback(new FailureCallback() {
  55 + @Override
  56 + public void onFailure(int i, String s) {
  57 + //显示重试
  58 + Log.e(TAG, "onFailure: " + s);
  59 + if (null == getView()) {
  60 + return;
  61 + }
  62 + QMUITipDialogUtil.dismessDialog();
  63 + QMUITipDialogUtil.failedDialog(context, s, 1);
  64 + }
  65 + })
  66 +
  67 + .start();
  68 + }
  69 +}
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/DeviceManagerFragmentPresenter.java
1 package com.cnlive.strike.xiaojiaspeaker.frame.presenter; 1 package com.cnlive.strike.xiaojiaspeaker.frame.presenter;
2 2
  3 +import android.content.Context;
  4 +import android.view.View;
  5 +
  6 +import com.cnlive.libs.base.logic.Logic;
  7 +import com.cnlive.libs.base.logic.callback.DataCallback;
  8 +import com.cnlive.libs.base.logic.callback.FailureCallback;
  9 +import com.cnlive.libs.base.logic.callback.SuccessCallback;
3 import com.cnlive.strike.xiaojiaspeaker.frame.view.DeviceManagerFragmentView; 10 import com.cnlive.strike.xiaojiaspeaker.frame.view.DeviceManagerFragmentView;
  11 +import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia;
  12 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.DeviceDetail;
  13 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
  14 +import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest;
4 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; 15 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
5 16
  17 +import java.util.HashMap;
  18 +import java.util.Map;
  19 +
  20 +import io.reactivex.disposables.Disposable;
  21 +
6 public class DeviceManagerFragmentPresenter extends MvpBasePresenter<DeviceManagerFragmentView> { 22 public class DeviceManagerFragmentPresenter extends MvpBasePresenter<DeviceManagerFragmentView> {
  23 + public void getDeviceDetailMsg(Context context, String deviceId) {
  24 + if (null == getView()) {
  25 + return;
  26 + }
  27 + getView().showLoadingView();
  28 + Map<String, String> map = new HashMap<>();
  29 + map.put("devId", deviceId);
  30 + Logic.create(map)
  31 + .action(new Logic.Action<Map<String, String>, APIBaseInfo<DeviceDetail>>() {
  32 + @Override
  33 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo<DeviceDetail>> dataCallback) {
  34 + return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getDeviceDetailMsg(paramsMap)).subscribe(context, dataCallback);
  35 + }
  36 + }).<APIBaseInfo<DeviceDetail>>event()
  37 + .setSuccessCallback(new SuccessCallback<APIBaseInfo<DeviceDetail>>() {
  38 + @Override
  39 + public void onSuccess(APIBaseInfo<DeviceDetail> baseInfo) {
  40 + if (null == getView()) {
  41 + return;
  42 + }
  43 +
  44 + getView().hideLoadingView();
  45 + getView().initData(baseInfo.getData());
  46 + }
  47 + })
  48 + .setFailureCallback(new FailureCallback() {
  49 + @Override
  50 + public void onFailure(int i, String s) {
  51 + //显示重试
  52 + getView().showRetryView(i, new View.OnClickListener() {
  53 + @Override
  54 + public void onClick(View view) {
  55 + getDeviceDetailMsg(context, deviceId);
  56 + }
  57 + });
  58 + }
  59 + })
  60 +
  61 + .start();
  62 + }
7 } 63 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/InvitFriendPresenter.java
@@ -10,11 +10,9 @@ import com.cnlive.libs.base.logic.callback.FailureCallback; @@ -10,11 +10,9 @@ import com.cnlive.libs.base.logic.callback.FailureCallback;
10 import com.cnlive.libs.base.logic.callback.SuccessCallback; 10 import com.cnlive.libs.base.logic.callback.SuccessCallback;
11 import com.cnlive.strike.xiaojiaspeaker.frame.view.InvitFriendView; 11 import com.cnlive.strike.xiaojiaspeaker.frame.view.InvitFriendView;
12 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia; 12 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia;
13 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean;  
14 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; 13 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
15 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.SubscriptionBaseInfo; 14 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
16 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest; 15 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest;
17 -import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil;  
18 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; 16 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
19 17
20 import java.util.HashMap; 18 import java.util.HashMap;
@@ -42,15 +40,15 @@ public class InvitFriendPresenter extends MvpBasePresenter&lt;InvitFriendView&gt; { @@ -42,15 +40,15 @@ public class InvitFriendPresenter extends MvpBasePresenter&lt;InvitFriendView&gt; {
42 map.put("sids", sids); 40 map.put("sids", sids);
43 map.put("familyId", familyId); 41 map.put("familyId", familyId);
44 Logic.create(map) 42 Logic.create(map)
45 - .action(new Logic.Action<Map<String, String>, SubscriptionBaseInfo<RoleNetBean>>() { 43 + .action(new Logic.Action<Map<String, String>, APIBaseInfo<RoleNetBean>>() {
46 @Override 44 @Override
47 - public Disposable action(Map<String, String> paramsMap, DataCallback<SubscriptionBaseInfo<RoleNetBean>> dataCallback) { 45 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo<RoleNetBean>> dataCallback) {
48 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getSetRoleList(paramsMap)).subscribe(context, dataCallback); 46 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getSetRoleList(paramsMap)).subscribe(context, dataCallback);
49 } 47 }
50 - }).<SubscriptionBaseInfo<RoleNetBean>>event()  
51 - .setSuccessCallback(new SuccessCallback<SubscriptionBaseInfo<RoleNetBean>>() { 48 + }).<APIBaseInfo<RoleNetBean>>event()
  49 + .setSuccessCallback(new SuccessCallback<APIBaseInfo<RoleNetBean>>() {
52 @Override 50 @Override
53 - public void onSuccess(SubscriptionBaseInfo<RoleNetBean> baseInfo) { 51 + public void onSuccess(APIBaseInfo<RoleNetBean> baseInfo) {
54 Log.e(TAG, "onSuccess: "); 52 Log.e(TAG, "onSuccess: ");
55 53
56 if (null == getView()) { 54 if (null == getView()) {
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/SelectWifiFragmentPresenter.java
@@ -2,24 +2,16 @@ package com.cnlive.strike.xiaojiaspeaker.frame.presenter; @@ -2,24 +2,16 @@ package com.cnlive.strike.xiaojiaspeaker.frame.presenter;
2 2
3 import android.app.Activity; 3 import android.app.Activity;
4 import android.util.Log; 4 import android.util.Log;
5 -import android.view.View;  
6 5
7 import com.cnlive.libs.base.logic.Logic; 6 import com.cnlive.libs.base.logic.Logic;
8 import com.cnlive.libs.base.logic.callback.DataCallback; 7 import com.cnlive.libs.base.logic.callback.DataCallback;
9 import com.cnlive.libs.base.logic.callback.FailureCallback; 8 import com.cnlive.libs.base.logic.callback.FailureCallback;
10 import com.cnlive.libs.base.logic.callback.SuccessCallback; 9 import com.cnlive.libs.base.logic.callback.SuccessCallback;
11 -import com.cnlive.libs.base.util.AlertUtil;  
12 import com.cnlive.strike.xiaojiaspeaker.frame.view.SelectWifiFragmentView; 10 import com.cnlive.strike.xiaojiaspeaker.frame.view.SelectWifiFragmentView;
13 -import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceCMCC;  
14 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia; 11 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia;
15 -import com.cnlive.strike.xiaojiaspeaker.netWork.CmccRequest;  
16 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.ConfigDeviceNetParam;  
17 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean;  
18 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.NetworkResultBean; 12 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.NetworkResultBean;
19 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.SubscriptionBaseInfo;  
20 -import com.cnlive.strike.xiaojiaspeaker.netWork.result.ConfigDeviceNetResult; 13 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
21 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest; 14 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest;
22 -import com.cnlive.strike.xiaojiaspeaker.ui.activity.ConnBluetoothSuccessActivity;  
23 import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil; 15 import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil;
24 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; 16 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
25 17
@@ -27,9 +19,6 @@ import java.util.HashMap; @@ -27,9 +19,6 @@ import java.util.HashMap;
27 import java.util.Map; 19 import java.util.Map;
28 20
29 import io.reactivex.disposables.Disposable; 21 import io.reactivex.disposables.Disposable;
30 -import retrofit2.Call;  
31 -import retrofit2.Callback;  
32 -import retrofit2.Response;  
33 22
34 public class SelectWifiFragmentPresenter extends MvpBasePresenter<SelectWifiFragmentView> { 23 public class SelectWifiFragmentPresenter extends MvpBasePresenter<SelectWifiFragmentView> {
35 private String TAG = "SelectWifiFragmentPresenter"; 24 private String TAG = "SelectWifiFragmentPresenter";
@@ -43,15 +32,15 @@ public class SelectWifiFragmentPresenter extends MvpBasePresenter&lt;SelectWifiFrag @@ -43,15 +32,15 @@ public class SelectWifiFragmentPresenter extends MvpBasePresenter&lt;SelectWifiFrag
43 Map<String, String> map = new HashMap<>(); 32 Map<String, String> map = new HashMap<>();
44 map.put("familyId", familyId); 33 map.put("familyId", familyId);
45 Logic.create(map) 34 Logic.create(map)
46 - .action(new Logic.Action<Map<String, String>, SubscriptionBaseInfo<NetworkResultBean>>() { 35 + .action(new Logic.Action<Map<String, String>, APIBaseInfo<NetworkResultBean>>() {
47 @Override 36 @Override
48 - public Disposable action(Map<String, String> paramsMap, DataCallback<SubscriptionBaseInfo<NetworkResultBean>> dataCallback) { 37 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo<NetworkResultBean>> dataCallback) {
49 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getNetworkResult(paramsMap)).subscribe(context, dataCallback); 38 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getNetworkResult(paramsMap)).subscribe(context, dataCallback);
50 } 39 }
51 - }).<SubscriptionBaseInfo<NetworkResultBean>>event()  
52 - .setSuccessCallback(new SuccessCallback<SubscriptionBaseInfo<NetworkResultBean>>() { 40 + }).<APIBaseInfo<NetworkResultBean>>event()
  41 + .setSuccessCallback(new SuccessCallback<APIBaseInfo<NetworkResultBean>>() {
53 @Override 42 @Override
54 - public void onSuccess(SubscriptionBaseInfo<NetworkResultBean> baseInfo) { 43 + public void onSuccess(APIBaseInfo<NetworkResultBean> baseInfo) {
55 if (null == getView()) { 44 if (null == getView()) {
56 return; 45 return;
57 } 46 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/SetFriendsRolePresenter.java
@@ -10,9 +10,8 @@ import com.cnlive.libs.base.logic.callback.FailureCallback; @@ -10,9 +10,8 @@ import com.cnlive.libs.base.logic.callback.FailureCallback;
10 import com.cnlive.libs.base.logic.callback.SuccessCallback; 10 import com.cnlive.libs.base.logic.callback.SuccessCallback;
11 import com.cnlive.strike.xiaojiaspeaker.frame.view.SetFriendsRoleView; 11 import com.cnlive.strike.xiaojiaspeaker.frame.view.SetFriendsRoleView;
12 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia; 12 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia;
13 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean;  
14 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; 13 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
15 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.SubscriptionBaseInfo; 14 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
16 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest; 15 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest;
17 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; 16 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
18 17
@@ -34,15 +33,15 @@ public class SetFriendsRolePresenter extends MvpBasePresenter&lt;SetFriendsRoleView @@ -34,15 +33,15 @@ public class SetFriendsRolePresenter extends MvpBasePresenter&lt;SetFriendsRoleView
34 map.put("sids", sids); 33 map.put("sids", sids);
35 map.put("familyId", familyId); 34 map.put("familyId", familyId);
36 Logic.create(map) 35 Logic.create(map)
37 - .action(new Logic.Action<Map<String, String>, SubscriptionBaseInfo<RoleNetBean>>() { 36 + .action(new Logic.Action<Map<String, String>, APIBaseInfo<RoleNetBean>>() {
38 @Override 37 @Override
39 - public Disposable action(Map<String, String> paramsMap, DataCallback<SubscriptionBaseInfo<RoleNetBean>> dataCallback) { 38 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo<RoleNetBean>> dataCallback) {
40 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getSetRoleList(paramsMap)).subscribe(context, dataCallback); 39 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getSetRoleList(paramsMap)).subscribe(context, dataCallback);
41 } 40 }
42 - }).<SubscriptionBaseInfo<RoleNetBean>>event()  
43 - .setSuccessCallback(new SuccessCallback<SubscriptionBaseInfo<RoleNetBean>>() { 41 + }).<APIBaseInfo<RoleNetBean>>event()
  42 + .setSuccessCallback(new SuccessCallback<APIBaseInfo<RoleNetBean>>() {
44 @Override 43 @Override
45 - public void onSuccess(SubscriptionBaseInfo<RoleNetBean> baseInfo) { 44 + public void onSuccess(APIBaseInfo<RoleNetBean> baseInfo) {
46 Log.e(TAG, "onSuccess: "); 45 Log.e(TAG, "onSuccess: ");
47 46
48 if (null == getView()) { 47 if (null == getView()) {
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/UserManagerPresenter.java
1 package com.cnlive.strike.xiaojiaspeaker.frame.presenter; 1 package com.cnlive.strike.xiaojiaspeaker.frame.presenter;
2 2
3 import android.content.Context; 3 import android.content.Context;
  4 +import android.text.TextUtils;
4 import android.util.Log; 5 import android.util.Log;
5 import android.view.View; 6 import android.view.View;
6 7
@@ -12,7 +13,7 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.UserManagerView; @@ -12,7 +13,7 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.UserManagerView;
12 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia; 13 import com.cnlive.strike.xiaojiaspeaker.netWork.ApiServiceXiaoJia;
13 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean; 14 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean;
14 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; 15 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
15 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.SubscriptionBaseInfo; 16 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
16 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest; 17 import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest;
17 import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil; 18 import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil;
18 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; 19 import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter;
@@ -26,7 +27,73 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; { @@ -26,7 +27,73 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; {
26 27
27 private String TAG = "UserManagerPresenter"; 28 private String TAG = "UserManagerPresenter";
28 29
29 - public void getFamilyRole(Context context, String sid, String familyId) { 30 + /**
  31 + * 修改成员角色
  32 + *
  33 + * @param context
  34 + * @param sid
  35 + * @param familyId
  36 + * @param role
  37 + */
  38 + public void changeMemberRole(Context context, String sid, String familyId, String role, OnResposeListener onResposeListener) {
  39 + if (null == getView()) {
  40 + return;
  41 + }
  42 + QMUITipDialogUtil.loadingDialog(context, "请稍后...", false);
  43 + Map<String, String> map = new HashMap<>();
  44 + map.put("sid", sid);
  45 + map.put("familyId", familyId);
  46 + if (!TextUtils.isEmpty(role)) {
  47 + map.put("role", role);
  48 + }
  49 + Logic.create(map)
  50 + .action(new Logic.Action<Map<String, String>, APIBaseInfo>() {
  51 + @Override
  52 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo> dataCallback) {
  53 + return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.changeMemberRole(paramsMap)).subscribe(context, dataCallback);
  54 + }
  55 + }).<APIBaseInfo>event()
  56 + .setSuccessCallback(new SuccessCallback<APIBaseInfo>() {
  57 + @Override
  58 + public void onSuccess(APIBaseInfo baseInfo) {
  59 + Log.e(TAG, "onSuccess: ");
  60 +
  61 + if (null == getView()) {
  62 + return;
  63 + }
  64 + QMUITipDialogUtil.dismessDialog();
  65 + if (null != onResposeListener) {
  66 + onResposeListener.onSuccess();
  67 + }
  68 +
  69 +
  70 + }
  71 + })
  72 + .setFailureCallback(new FailureCallback() {
  73 + @Override
  74 + public void onFailure(int i, String s) {
  75 + if (null == getView()) {
  76 + return;
  77 + }
  78 + QMUITipDialogUtil.dismessDialog();
  79 + QMUITipDialogUtil.failedDialog(context, s, 1);
  80 + //显示重试
  81 + Log.e(TAG, "onFailure: " + s);
  82 + }
  83 + })
  84 +
  85 + .start();
  86 + }
  87 +
  88 + /**
  89 + * 获取角色列表
  90 + *
  91 + * @param context
  92 + * @param sid
  93 + * @param familyId
  94 + * @param phone
  95 + */
  96 + public void getFamilyRole(Context context, String sid, String familyId, String phone) {
30 if (null == getView()) { 97 if (null == getView()) {
31 return; 98 return;
32 } 99 }
@@ -34,23 +101,24 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; { @@ -34,23 +101,24 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; {
34 Map<String, String> map = new HashMap<>(); 101 Map<String, String> map = new HashMap<>();
35 map.put("sid", sid); 102 map.put("sid", sid);
36 map.put("familyId", familyId); 103 map.put("familyId", familyId);
  104 + map.put("phone", phone);
37 Logic.create(map) 105 Logic.create(map)
38 - .action(new Logic.Action<Map<String, String>, SubscriptionBaseInfo<FamilyRoleBean>>() { 106 + .action(new Logic.Action<Map<String, String>, APIBaseInfo<FamilyRoleBean>>() {
39 @Override 107 @Override
40 - public Disposable action(Map<String, String> paramsMap, DataCallback<SubscriptionBaseInfo<FamilyRoleBean>> dataCallback) { 108 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo<FamilyRoleBean>> dataCallback) {
41 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getFamilyRole(paramsMap)).subscribe(context, dataCallback); 109 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getFamilyRole(paramsMap)).subscribe(context, dataCallback);
42 } 110 }
43 - }).<SubscriptionBaseInfo<FamilyRoleBean>>event()  
44 - .setSuccessCallback(new SuccessCallback<SubscriptionBaseInfo<FamilyRoleBean>>() { 111 + }).<APIBaseInfo<FamilyRoleBean>>event()
  112 + .setSuccessCallback(new SuccessCallback<APIBaseInfo<FamilyRoleBean>>() {
45 @Override 113 @Override
46 - public void onSuccess(SubscriptionBaseInfo<FamilyRoleBean> baseInfo) { 114 + public void onSuccess(APIBaseInfo<FamilyRoleBean> baseInfo) {
47 Log.e(TAG, "onSuccess: "); 115 Log.e(TAG, "onSuccess: ");
48 116
49 if (null == getView()) { 117 if (null == getView()) {
50 return; 118 return;
51 } 119 }
52 getView().hideLoadingView(); 120 getView().hideLoadingView();
53 - getView().initView(baseInfo.getData().getFamilyRoleList()); 121 + getView().initView(baseInfo.getData());
54 122
55 } 123 }
56 }) 124 })
@@ -62,7 +130,7 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; { @@ -62,7 +130,7 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; {
62 getView().showRetryView(i, new View.OnClickListener() { 130 getView().showRetryView(i, new View.OnClickListener() {
63 @Override 131 @Override
64 public void onClick(View view) { 132 public void onClick(View view) {
65 - getFamilyRole(context, sid, familyId); 133 + getFamilyRole(context, sid, familyId, phone);
66 } 134 }
67 }); 135 });
68 } 136 }
@@ -71,6 +139,7 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; { @@ -71,6 +139,7 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; {
71 .start(); 139 .start();
72 } 140 }
73 141
  142 +
74 public void getSetRoleList(Context context, String sids, String familyId, FamilyRoleBean.FamilyRoleListBean bean) { 143 public void getSetRoleList(Context context, String sids, String familyId, FamilyRoleBean.FamilyRoleListBean bean) {
75 if (null == getView()) { 144 if (null == getView()) {
76 return; 145 return;
@@ -80,15 +149,15 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; { @@ -80,15 +149,15 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; {
80 map.put("sids", sids); 149 map.put("sids", sids);
81 map.put("familyId", familyId); 150 map.put("familyId", familyId);
82 Logic.create(map) 151 Logic.create(map)
83 - .action(new Logic.Action<Map<String, String>, SubscriptionBaseInfo<RoleNetBean>>() { 152 + .action(new Logic.Action<Map<String, String>, APIBaseInfo<RoleNetBean>>() {
84 @Override 153 @Override
85 - public Disposable action(Map<String, String> paramsMap, DataCallback<SubscriptionBaseInfo<RoleNetBean>> dataCallback) { 154 + public Disposable action(Map<String, String> paramsMap, DataCallback<APIBaseInfo<RoleNetBean>> dataCallback) {
86 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getSetRoleList(paramsMap)).subscribe(context, dataCallback); 155 return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getSetRoleList(paramsMap)).subscribe(context, dataCallback);
87 } 156 }
88 - }).<SubscriptionBaseInfo<RoleNetBean>>event()  
89 - .setSuccessCallback(new SuccessCallback<SubscriptionBaseInfo<RoleNetBean>>() { 157 + }).<APIBaseInfo<RoleNetBean>>event()
  158 + .setSuccessCallback(new SuccessCallback<APIBaseInfo<RoleNetBean>>() {
90 @Override 159 @Override
91 - public void onSuccess(SubscriptionBaseInfo<RoleNetBean> baseInfo) { 160 + public void onSuccess(APIBaseInfo<RoleNetBean> baseInfo) {
92 Log.e(TAG, "onSuccess: "); 161 Log.e(TAG, "onSuccess: ");
93 162
94 if (null == getView()) { 163 if (null == getView()) {
@@ -112,4 +181,8 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; { @@ -112,4 +181,8 @@ public class UserManagerPresenter extends MvpBasePresenter&lt;UserManagerView&gt; {
112 181
113 .start(); 182 .start();
114 } 183 }
  184 +
  185 + public interface OnResposeListener {
  186 + void onSuccess();
  187 + }
115 } 188 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/AllDeviceFragmentView.java
@@ -24,8 +24,8 @@ public class AllDeviceFragmentView implements MvpView { @@ -24,8 +24,8 @@ public class AllDeviceFragmentView implements MvpView {
24 private AllDeviceFragment fragment; 24 private AllDeviceFragment fragment;
25 private AllDeviceAdapter adapter; 25 private AllDeviceAdapter adapter;
26 private List<FamilyListBean.UsersBeanX.DeviceListBean> allDeviceInfoList; 26 private List<FamilyListBean.UsersBeanX.DeviceListBean> allDeviceInfoList;
27 - private List<PopMenuInfo> popMenuInfoList = null;  
28 - private PopMenu mPopMenu; 27 +// private List<PopMenuInfo> popMenuInfoList = null;
  28 +// private PopMenu mPopMenu;
29 private String TAG = "AllDeviceFragmentView"; 29 private String TAG = "AllDeviceFragmentView";
30 private FamilyListBean familyListBean; 30 private FamilyListBean familyListBean;
31 31
@@ -38,7 +38,7 @@ public class AllDeviceFragmentView implements MvpView { @@ -38,7 +38,7 @@ public class AllDeviceFragmentView implements MvpView {
38 } 38 }
39 39
40 public void initView() { 40 public void initView() {
41 - initPopView(); 41 +// initPopView();
42 } 42 }
43 43
44 public void initAllDeviceList(FamilyListBean familyListBean) { 44 public void initAllDeviceList(FamilyListBean familyListBean) {
@@ -46,7 +46,9 @@ public class AllDeviceFragmentView implements MvpView { @@ -46,7 +46,9 @@ public class AllDeviceFragmentView implements MvpView {
46 this.familyListBean = familyListBean; 46 this.familyListBean = familyListBean;
47 this.allDeviceInfoList = new ArrayList<>(); 47 this.allDeviceInfoList = new ArrayList<>();
48 if (null != familyListBean && null != familyListBean.getUsers()) { 48 if (null != familyListBean && null != familyListBean.getUsers()) {
  49 + int index = 0;
49 for (FamilyListBean.UsersBeanX usersBean : familyListBean.getUsers()) { 50 for (FamilyListBean.UsersBeanX usersBean : familyListBean.getUsers()) {
  51 +
50 //存储自己为主人的家庭 52 //存储自己为主人的家庭
51 if (usersBean.getIsMaster() == FamilyListBean.THE_HOST) { 53 if (usersBean.getIsMaster() == FamilyListBean.THE_HOST) {
52 Log.e(TAG, "getId: " + usersBean.getUserId()); 54 Log.e(TAG, "getId: " + usersBean.getUserId());
@@ -58,10 +60,15 @@ public class AllDeviceFragmentView implements MvpView { @@ -58,10 +60,15 @@ public class AllDeviceFragmentView implements MvpView {
58 //存储移动token 60 //存储移动token
59 XiaoJIaCommInfo.setToken(getContext(), usersBean.getToken()); 61 XiaoJIaCommInfo.setToken(getContext(), usersBean.getToken());
60 } 62 }
  63 +
  64 + for (FamilyListBean.UsersBeanX.DeviceListBean deviceListBean : usersBean.getDeviceList()) {
  65 + deviceListBean.setParentPosition(index);
  66 + }
61 //存储移动id 67 //存储移动id
62 if (null != usersBean.getDeviceList()) { 68 if (null != usersBean.getDeviceList()) {
63 this.allDeviceInfoList.addAll(usersBean.getDeviceList()); 69 this.allDeviceInfoList.addAll(usersBean.getDeviceList());
64 } 70 }
  71 + index++;
65 } 72 }
66 } 73 }
67 adapter = new AllDeviceAdapter(getContext(), allDeviceInfoList); 74 adapter = new AllDeviceAdapter(getContext(), allDeviceInfoList);
@@ -76,69 +83,69 @@ public class AllDeviceFragmentView implements MvpView { @@ -76,69 +83,69 @@ public class AllDeviceFragmentView implements MvpView {
76 adapter.setOnItemClickListener(new AllDeviceAdapter.OnItemClickListener() { 83 adapter.setOnItemClickListener(new AllDeviceAdapter.OnItemClickListener() {
77 @Override 84 @Override
78 public void onItemClick(int position, FamilyListBean.UsersBeanX.DeviceListBean AllDeviceInfo) { 85 public void onItemClick(int position, FamilyListBean.UsersBeanX.DeviceListBean AllDeviceInfo) {
79 - DeviceDetailActivity.startActivity(fragment.getActivity(),AllDeviceInfo); 86 + DeviceDetailActivity.startActivity(fragment.getActivity(), AllDeviceInfo,familyListBean.getUsers().get(AllDeviceInfo.getParentPosition()).getId());
80 } 87 }
81 }); 88 });
82 } 89 }
83 90
84 - public void initPopView() {  
85 -// View contentView = LayoutInflater.from(getContext())  
86 -// .inflate(R.layout.activity_all_device, null);  
87 -// BottomSheetDialog dialog = new BottomSheetDialog(getContext());  
88 -// dialog.setContentView(contentView);  
89 -// dialog.setCancelable(false);  
90 -// BottomSheetBehavior sheetBehavior = BottomSheetBehavior.from((View) contentView.getParent());  
91 -// sheetBehavior.setPeekHeight(200);  
92 - //给布局设置透明背景色,让图片突出来  
93 -// bottomSheetDialog.getDelegate().findViewById(android.support.design.R.id.design_bottom_sheet)  
94 -// .setBackgroundColor(getResources().getColor(android.R.color.transparent));  
95 -// dialog.show();  
96 -  
97 - popMenuInfoList = new ArrayList<>();  
98 - PopMenuInfo popMenuInfo = new PopMenuInfo();  
99 - popMenuInfo.setTitle("使用者管理");  
100 - popMenuInfo.setNetImag("zsdfs");  
101 - popMenuInfoList.add(popMenuInfo);  
102 - popMenuInfo = new PopMenuInfo();  
103 - popMenuInfo.setTitle("添加设备");  
104 - popMenuInfo.setNetImag("zsdfs");  
105 - popMenuInfoList.add(popMenuInfo); 91 +// public void initPopView() {
  92 +//// View contentView = LayoutInflater.from(getContext())
  93 +//// .inflate(R.layout.activity_all_device, null);
  94 +//// BottomSheetDialog dialog = new BottomSheetDialog(getContext());
  95 +//// dialog.setContentView(contentView);
  96 +//// dialog.setCancelable(false);
  97 +//// BottomSheetBehavior sheetBehavior = BottomSheetBehavior.from((View) contentView.getParent());
  98 +//// sheetBehavior.setPeekHeight(200);
  99 +// //给布局设置透明背景色,让图片突出来
  100 +//// bottomSheetDialog.getDelegate().findViewById(android.support.design.R.id.design_bottom_sheet)
  101 +//// .setBackgroundColor(getResources().getColor(android.R.color.transparent));
  102 +//// dialog.show();
  103 +//
  104 +// popMenuInfoList = new ArrayList<>();
  105 +// PopMenuInfo popMenuInfo = new PopMenuInfo();
  106 +// popMenuInfo.setTitle("使用者管理");
  107 +// popMenuInfo.setNetImag("zsdfs");
  108 +// popMenuInfoList.add(popMenuInfo);
106 // popMenuInfo = new PopMenuInfo(); 109 // popMenuInfo = new PopMenuInfo();
107 -// popMenuInfo.setTitle("设备管理");  
108 -//// popMenuInfo.setNetImag("zsdfs"); 110 +// popMenuInfo.setTitle("添加设备");
  111 +// popMenuInfo.setNetImag("zsdfs");
109 // popMenuInfoList.add(popMenuInfo); 112 // popMenuInfoList.add(popMenuInfo);
110 -  
111 - if (null == mPopMenu) {  
112 - mPopMenu = new PopMenu.Builder(fragment.getActivity())  
113 - .addData(popMenuInfoList)  
114 - .setBackgroundColorArray(new int[]{Color.parseColor("#363636"), Color.parseColor("#BF000000"), Color.parseColor("#BF000000")})  
115 - .setLeftAndRightMargin(20)  
116 - .setTopMargin(20)  
117 - .setLineColor(R.color.white_50)  
118 - .setTextColor(R.color.white)  
119 - .setLineVisible(View.VISIBLE)  
120 -// .setArrowHeight(30f)  
121 -// .setArrowHeight(30f)  
122 - .setCancelable(false)  
123 - .setCornerRadius(10f)  
124 - .build();  
125 - }  
126 -  
127 - mPopMenu.setmItemClickListener(new PopMenu.OnItemClickListener() {  
128 - @Override  
129 - public void onClick(int position, PopMenuInfo popMenuInfo) {  
130 - if (position == 1) {  
131 - BlueToothStep1Activity.startActivity(fragment.getActivity());  
132 - }  
133 - }  
134 - });  
135 - }  
136 -  
137 - public void showPop(View view) {  
138 - if (null != getContext() && null != mPopMenu) {  
139 - mPopMenu.show(view);  
140 - }  
141 - } 113 +//// popMenuInfo = new PopMenuInfo();
  114 +//// popMenuInfo.setTitle("设备管理");
  115 +////// popMenuInfo.setNetImag("zsdfs");
  116 +//// popMenuInfoList.add(popMenuInfo);
  117 +//
  118 +// if (null == mPopMenu) {
  119 +// mPopMenu = new PopMenu.Builder(fragment.getActivity())
  120 +// .addData(popMenuInfoList)
  121 +// .setBackgroundColorArray(new int[]{Color.parseColor("#363636"), Color.parseColor("#BF000000"), Color.parseColor("#BF000000")})
  122 +// .setLeftAndRightMargin(20)
  123 +// .setTopMargin(20)
  124 +// .setLineColor(R.color.white_50)
  125 +// .setTextColor(R.color.white)
  126 +// .setLineVisible(View.VISIBLE)
  127 +//// .setArrowHeight(30f)
  128 +//// .setArrowHeight(30f)
  129 +// .setCancelable(false)
  130 +// .setCornerRadius(10f)
  131 +// .build();
  132 +// }
  133 +//
  134 +// mPopMenu.setmItemClickListener(new PopMenu.OnItemClickListener() {
  135 +// @Override
  136 +// public void onClick(int position, PopMenuInfo popMenuInfo) {
  137 +// if (position == 1) {
  138 +// BlueToothStep1Activity.startActivity(fragment.getActivity());
  139 +// }
  140 +// }
  141 +// });
  142 +// }
  143 +//
  144 +// public void showPop(View view) {
  145 +// if (null != getContext() && null != mPopMenu) {
  146 +// mPopMenu.show(view);
  147 +// }
  148 +// }
142 149
143 /** 150 /**
144 * 显示loading 151 * 显示loading
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/ChangeDeviceNameView.java 0 → 100644
  1 +package com.cnlive.strike.xiaojiaspeaker.frame.view;
  2 +
  3 +import android.app.Activity;
  4 +import android.content.Intent;
  5 +import android.support.v4.content.ContextCompat;
  6 +import android.text.Editable;
  7 +import android.text.TextWatcher;
  8 +import android.view.View;
  9 +
  10 +import com.cnlive.strike.xiaojiaspeaker.R;
  11 +import com.cnlive.strike.xiaojiaspeaker.ui.activity.ChangeDeviceNameActivity;
  12 +import com.cnlive.strike.xiaojiaspeaker.ui.fragment.ChangeDeviceNameFragment;
  13 +import com.hannesdorfmann.mosby3.mvp.MvpView;
  14 +
  15 +public class ChangeDeviceNameView implements MvpView {
  16 + private ChangeDeviceNameFragment fragment;
  17 +
  18 + public ChangeDeviceNameView(ChangeDeviceNameFragment fragment) {
  19 + this.fragment = fragment;
  20 + }
  21 +
  22 + public Activity getContext() {
  23 + return fragment == null ? null : fragment.getActivity();
  24 + }
  25 +
  26 + public void initView() {
  27 + //编辑框
  28 + fragment.binding.etName.addTextChangedListener(new TextWatcher() {
  29 + @Override
  30 + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
  31 +
  32 + }
  33 +
  34 + @Override
  35 + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
  36 + if (null != charSequence && charSequence.length() > 0) {
  37 + fragment.binding.ivClose.setVisibility(View.VISIBLE);
  38 + setBtnClick();
  39 + } else {
  40 + fragment.binding.ivClose.setVisibility(View.GONE);
  41 + setBtnCantClick();
  42 + }
  43 + }
  44 +
  45 + @Override
  46 + public void afterTextChanged(Editable editable) {
  47 +
  48 + }
  49 + });
  50 + //清除按钮点击事件
  51 + fragment.binding.ivClose.setOnClickListener(new View.OnClickListener() {
  52 + @Override
  53 + public void onClick(View view) {
  54 + fragment.binding.etName.setText("");
  55 + }
  56 + });
  57 + }
  58 +
  59 +
  60 +
  61 + /**
  62 + * 设置绑定按钮不可点击
  63 + */
  64 + private void setBtnCantClick() {
  65 + if (fragment.binding.btnNext.isClickable()) {
  66 + fragment.binding.btnNext.setClickable(false);
  67 + fragment.binding.btnNext.setBackground(ContextCompat.getDrawable(getContext(), R.drawable.shape_btn_press));
  68 + }
  69 + }
  70 +
  71 + /**
  72 + * 设置绑定按钮可点击
  73 + */
  74 + private void setBtnClick() {
  75 + if (!fragment.binding.btnNext.isClickable()) {
  76 + fragment.binding.btnNext.setClickable(true);
  77 + fragment.binding.btnNext.setBackground(ContextCompat.getDrawable(getContext(), R.drawable.selector_btn_green));
  78 + }
  79 + }
  80 +}
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/DeviceManagerFragmentView.java
@@ -3,8 +3,15 @@ package com.cnlive.strike.xiaojiaspeaker.frame.view; @@ -3,8 +3,15 @@ package com.cnlive.strike.xiaojiaspeaker.frame.view;
3 import android.app.Activity; 3 import android.app.Activity;
4 import android.support.v7.widget.DefaultItemAnimator; 4 import android.support.v7.widget.DefaultItemAnimator;
5 import android.support.v7.widget.LinearLayoutManager; 5 import android.support.v7.widget.LinearLayoutManager;
  6 +import android.view.View;
6 7
  8 +import com.cnlive.strike.xiaojiaspeaker.R;
7 import com.cnlive.strike.xiaojiaspeaker.model.DeviceManagerMenu; 9 import com.cnlive.strike.xiaojiaspeaker.model.DeviceManagerMenu;
  10 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.DeviceDetail;
  11 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean;
  12 +import com.cnlive.strike.xiaojiaspeaker.ui.activity.ChangeDeviceNameActivity;
  13 +import com.cnlive.strike.xiaojiaspeaker.ui.activity.DeviceManagerActivity;
  14 +import com.cnlive.strike.xiaojiaspeaker.ui.activity.FirmwareUpdateActivity;
8 import com.cnlive.strike.xiaojiaspeaker.ui.adapter.DeviceManagerMenuAdapter; 15 import com.cnlive.strike.xiaojiaspeaker.ui.adapter.DeviceManagerMenuAdapter;
9 import com.cnlive.strike.xiaojiaspeaker.ui.fragment.DeviceManagerFragment; 16 import com.cnlive.strike.xiaojiaspeaker.ui.fragment.DeviceManagerFragment;
10 import com.hannesdorfmann.mosby3.mvp.MvpView; 17 import com.hannesdorfmann.mosby3.mvp.MvpView;
@@ -14,9 +21,10 @@ import java.util.List; @@ -14,9 +21,10 @@ import java.util.List;
14 21
15 public class DeviceManagerFragmentView implements MvpView { 22 public class DeviceManagerFragmentView implements MvpView {
16 private DeviceManagerFragment fragment; 23 private DeviceManagerFragment fragment;
17 - private DeviceManagerMenuAdapter adapter;  
18 - private List<DeviceManagerMenu> deviceManagerMenuList;  
19 - 24 + // private DeviceManagerMenuAdapter adapter;
  25 +// private List<DeviceManagerMenu> deviceManagerMenuList;
  26 + private DeviceDetail deviceDetail;
  27 +private FamilyListBean.UsersBeanX.DeviceListBean currentDeviceInfo;
20 public DeviceManagerFragmentView(DeviceManagerFragment fragment) { 28 public DeviceManagerFragmentView(DeviceManagerFragment fragment) {
21 this.fragment = fragment; 29 this.fragment = fragment;
22 } 30 }
@@ -25,18 +33,102 @@ public class DeviceManagerFragmentView implements MvpView { @@ -25,18 +33,102 @@ public class DeviceManagerFragmentView implements MvpView {
25 return fragment == null ? null : fragment.getActivity(); 33 return fragment == null ? null : fragment.getActivity();
26 } 34 }
27 35
28 - public void initView() {  
29 - deviceManagerMenuList = new ArrayList<>();  
30 - deviceManagerMenuList.add(new DeviceManagerMenu("音箱名称", "as", DeviceManagerMenu.NO_RIGHT_ARROW));  
31 - deviceManagerMenuList.add(new DeviceManagerMenu("WIFI设置", "asd", DeviceManagerMenu.NORMAL));  
32 - deviceManagerMenuList.add(new DeviceManagerMenu("设备信息", "asd", DeviceManagerMenu.NO_MENU_DETAIL));  
33 - deviceManagerMenuList.add(new DeviceManagerMenu("固件升级", "asd", DeviceManagerMenu.NORMAL));  
34 - deviceManagerMenuList.add(new DeviceManagerMenu("远程控制", "手机可远程控制音箱播放的内容,但仅限听见中国", DeviceManagerMenu.SWITCH_NORMAL));  
35 - deviceManagerMenuList.add(new DeviceManagerMenu("小家音箱播放", "音箱可作为蓝牙音箱,播放手机内所有声音", DeviceManagerMenu.SWITCH_NORMAL));  
36 -  
37 - adapter=new DeviceManagerMenuAdapter(getContext(),deviceManagerMenuList);  
38 - fragment.binding.rvMenu.setLayoutManager(new LinearLayoutManager(getContext()));  
39 - fragment.binding.rvMenu.setAdapter(adapter);  
40 - ((DefaultItemAnimator) fragment.binding.rvMenu.getItemAnimator()).setSupportsChangeAnimations(false); 36 + public void initView(FamilyListBean.UsersBeanX.DeviceListBean currentDeviceInfo) {
  37 + this.currentDeviceInfo=currentDeviceInfo;
  38 +// deviceManagerMenuList = new ArrayList<>();
  39 +// deviceManagerMenuList.add(new DeviceManagerMenu("音箱名称", "as", DeviceManagerMenu.NO_RIGHT_ARROW));
  40 +// deviceManagerMenuList.add(new DeviceManagerMenu("WIFI设置", "asd", DeviceManagerMenu.NORMAL));
  41 +// deviceManagerMenuList.add(new DeviceManagerMenu("设备信息", "asd", DeviceManagerMenu.NO_MENU_DETAIL));
  42 +// deviceManagerMenuList.add(new DeviceManagerMenu("固件升级", "asd", DeviceManagerMenu.NORMAL));
  43 +// deviceManagerMenuList.add(new DeviceManagerMenu("远程控制", "手机可远程控制音箱播放的内容,但仅限听见中国", DeviceManagerMenu.SWITCH_NORMAL));
  44 +// deviceManagerMenuList.add(new DeviceManagerMenu("小家音箱播放", "音箱可作为蓝牙音箱,播放手机内所有声音", DeviceManagerMenu.SWITCH_NORMAL));
  45 +//
  46 +// adapter=new DeviceManagerMenuAdapter(getContext(),deviceManagerMenuList);
  47 +// fragment.binding.rvMenu.setLayoutManager(new LinearLayoutManager(getContext()));
  48 +// fragment.binding.rvMenu.setAdapter(adapter);
  49 +// ((DefaultItemAnimator) fragment.binding.rvMenu.getItemAnimator()).setSupportsChangeAnimations(false);
  50 +
  51 +
  52 + //音箱名称
  53 + fragment.binding.llDeviceName.setOnClickListener(new View.OnClickListener() {
  54 + @Override
  55 + public void onClick(View view) {
  56 + ChangeDeviceNameActivity.startActivity(getContext());
  57 + }
  58 + });
  59 + //wifi设置
  60 + fragment.binding.llWifiSetting.setOnClickListener(new View.OnClickListener() {
  61 + @Override
  62 + public void onClick(View view) {
  63 +
  64 + }
  65 + });
  66 + //设备信息
  67 + fragment.binding.llDeviceInfo.setOnClickListener(new View.OnClickListener() {
  68 + @Override
  69 + public void onClick(View view) {
  70 +
  71 + }
  72 + });
  73 + //固件升级
  74 + fragment.binding.llDeviceUpdate.setOnClickListener(new View.OnClickListener() {
  75 + @Override
  76 + public void onClick(View view) {
  77 + FirmwareUpdateActivity.startActivity(getContext());
  78 + }
  79 + });
  80 + }
  81 +
  82 + public void initData(DeviceDetail deviceDetail){
  83 + this.deviceDetail = deviceDetail;
  84 + //设置音箱名称
  85 + fragment.binding.tvDeviceName.setText(deviceDetail.getDeviceName());
  86 + //设置wifi
  87 + fragment.binding.tvWifiName.setText(deviceDetail.getWifiName());
  88 + //设置固件版本号
  89 + fragment.binding.tvCurrentVersion.setText(deviceDetail.getVer());
  90 + }
  91 +
  92 + /**
  93 + * 显示loading
  94 + */
  95 + public void showLoadingView() {
  96 + if (fragment.binding.emptyLayout == null) {
  97 + return;
  98 + }
  99 + fragment.binding.emptyLayout.show(true);
  100 + }
  101 +
  102 + /**
  103 + * 隐藏loading
  104 + */
  105 + public void hideLoadingView() {
  106 + if (fragment.binding.emptyLayout == null) {
  107 + return;
  108 + }
  109 + fragment.binding.emptyLayout.hide();
  110 + }
  111 +
  112 + /**
  113 + * 显示重试页面
  114 + *
  115 + * @param errorCode
  116 + * @param listener
  117 + */
  118 + public void showRetryView(int errorCode, View.OnClickListener listener) {
  119 + //显示空视图
  120 + fragment.binding.emptyLayout.setVisibility(View.VISIBLE);
  121 +
  122 + if (fragment.binding.emptyLayout == null) return;
  123 + String titleText = "";
  124 + String detailText = "";
  125 + if (errorCode == -3) {
  126 + titleText = getContext().getString(R.string.msg_failed_network_title);
  127 + detailText = getContext().getString(R.string.msg_failed_network_detail);
  128 + } else {
  129 + titleText = getContext().getString(R.string.msg_failed_other_title);
  130 + detailText = getContext().getString(R.string.msg_failed_other_detail);
  131 + }
  132 + fragment.binding.emptyLayout.show(false, titleText, detailText, getContext().getString(R.string.retry), R.drawable.wufalianjie, listener);
41 } 133 }
42 } 134 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/UserManagerView.java
@@ -3,11 +3,16 @@ package com.cnlive.strike.xiaojiaspeaker.frame.view; @@ -3,11 +3,16 @@ package com.cnlive.strike.xiaojiaspeaker.frame.view;
3 import android.app.Activity; 3 import android.app.Activity;
4 import android.graphics.Color; 4 import android.graphics.Color;
5 import android.graphics.Typeface; 5 import android.graphics.Typeface;
  6 +import android.support.v4.content.ContextCompat;
6 import android.support.v7.widget.LinearLayoutManager; 7 import android.support.v7.widget.LinearLayoutManager;
  8 +import android.text.TextUtils;
7 import android.view.View; 9 import android.view.View;
  10 +import android.widget.Button;
8 11
  12 +import com.cnlive.libs.base.util.AlertUtil;
9 import com.cnlive.strike.xiaojiaspeaker.R; 13 import com.cnlive.strike.xiaojiaspeaker.R;
10 import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo; 14 import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo;
  15 +import com.cnlive.strike.xiaojiaspeaker.frame.presenter.UserManagerPresenter;
11 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo; 16 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo;
12 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean; 17 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean;
13 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; 18 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
@@ -35,6 +40,8 @@ public class UserManagerView implements MvpView { @@ -35,6 +40,8 @@ public class UserManagerView implements MvpView {
35 private List<RoleInfo> roleInfoList; 40 private List<RoleInfo> roleInfoList;
36 private EditRoleDialog editRoleDialog; 41 private EditRoleDialog editRoleDialog;
37 private SelectDialog deleteDialog; 42 private SelectDialog deleteDialog;
  43 + private Button btn_invit;
  44 + private String currentSelectFamilyId;
38 private String test = "{\n" + 45 private String test = "{\n" +
39 "\t\"familyRoleList\": [{\n" + 46 "\t\"familyRoleList\": [{\n" +
40 "\t\t\t\"family_id\": \"fb8f160efc61431f96e8111e0cbfd349\",\n" + 47 "\t\t\t\"family_id\": \"fb8f160efc61431f96e8111e0cbfd349\",\n" +
@@ -81,26 +88,44 @@ public class UserManagerView implements MvpView { @@ -81,26 +88,44 @@ public class UserManagerView implements MvpView {
81 return fragment == null ? null : fragment.getActivity(); 88 return fragment == null ? null : fragment.getActivity();
82 } 89 }
83 90
84 - public void initView(List<FamilyRoleBean.FamilyRoleListBean> familyRoleList) {  
85 - this.familyRoleList = familyRoleList;  
86 - FamilyRoleBean bean1 = GsonUtil.GsonToBean(test, FamilyRoleBean.class);  
87 -// if (null != familyRoleList) {  
88 - for (FamilyRoleBean.FamilyRoleListBean bean : bean1.getFamilyRoleList()) {  
89 - if ("管理员".equals(bean.getRoleName())) {  
90 - bean.setType(FamilyRoleBean.FamilyRoleListBean.HOST);  
91 - } else {  
92 - bean.setType(FamilyRoleBean.FamilyRoleListBean.MEMBER); 91 + public void setCurrentSelectFamily(String selectFamily) {
  92 + currentSelectFamilyId = selectFamily;
  93 + }
  94 +
  95 + public void initView(FamilyRoleBean familyRoleBean) {
  96 + this.familyRoleList = familyRoleBean.getFamilyRoleList();
  97 +// FamilyRoleBean bean1 = GsonUtil.GsonToBean(test, FamilyRoleBean.class);
  98 + if (null != familyRoleList) {
  99 + for (FamilyRoleBean.FamilyRoleListBean bean : familyRoleList) {
  100 + if ("管理员".equals(bean.getRoleName())) {
  101 + bean.setType(FamilyRoleBean.FamilyRoleListBean.HOST);
  102 + } else {
  103 + bean.setType(FamilyRoleBean.FamilyRoleListBean.MEMBER);
  104 + }
  105 + }
  106 + }
  107 + for (int i = 0; i < familyRoleList.size(); i++) {
  108 + if ("管理员".equals(familyRoleList.get(i).getRoleName())) {
  109 + FamilyRoleBean.FamilyRoleListBean bean = familyRoleList.get(i);
  110 + familyRoleList.remove(i);
  111 + familyRoleList.add(0, bean);
93 } 112 }
94 } 113 }
95 - for (int i = 0; i < bean1.getFamilyRoleList().size(); i++) {  
96 - if ("管理员".equals(bean1.getFamilyRoleList().get(i).getRoleName())) {  
97 - FamilyRoleBean.FamilyRoleListBean bean = bean1.getFamilyRoleList().get(i);  
98 - bean1.getFamilyRoleList().remove(i);  
99 - bean1.getFamilyRoleList().add(0, bean); 114 + //判断是否是管理者
  115 + if (FamilyRoleBean.HOST == familyRoleBean.getIsMaster()) {
  116 + //是否显示按钮
  117 + if (null != familyRoleList && familyRoleList.size() > 1) {
  118 + fragment.binding.llBtn.setVisibility(View.GONE);
  119 + } else {
  120 + fragment.binding.llBtn.setVisibility(View.VISIBLE);
100 } 121 }
  122 + adapter = new UserManagerAdapter(getContext(), familyRoleList, true);
  123 + //是否显示使用者按钮
  124 + addAdminBtn();
  125 + } else {
  126 + adapter = new UserManagerAdapter(getContext(), familyRoleList, false);
  127 +
101 } 128 }
102 -// }  
103 - adapter = new UserManagerAdapter(getContext(), bean1.getFamilyRoleList(), true);  
104 fragment.binding.rvUserManagerList.setLayoutManager(new LinearLayoutManager(getContext())); 129 fragment.binding.rvUserManagerList.setLayoutManager(new LinearLayoutManager(getContext()));
105 fragment.binding.rvUserManagerList.setAdapter(adapter); 130 fragment.binding.rvUserManagerList.setAdapter(adapter);
106 //编辑按钮点击事件 131 //编辑按钮点击事件
@@ -123,7 +148,16 @@ public class UserManagerView implements MvpView { @@ -123,7 +148,16 @@ public class UserManagerView implements MvpView {
123 }, "确定", new SelectDialog.DialogInterface() { 148 }, "确定", new SelectDialog.DialogInterface() {
124 @Override 149 @Override
125 public void onClick(SelectDialog dialog) { 150 public void onClick(SelectDialog dialog) {
126 - dialog.dismiss(); 151 + fragment.getPresenter().changeMemberRole(getContext(), bean.getSid() + "", bean.getFamily_id(), null, new UserManagerPresenter.OnResposeListener() {
  152 + @Override
  153 + public void onSuccess() {
  154 + dialog.dismiss();
  155 + familyRoleList.remove(position);
  156 + if (null != adapter) {
  157 + adapter.notifyDataSetChanged();
  158 + }
  159 + }
  160 + });
127 } 161 }
128 }); 162 });
129 deleteDialog.setRightBtnColor(R.color.btn_green); 163 deleteDialog.setRightBtnColor(R.color.btn_green);
@@ -150,6 +184,21 @@ public class UserManagerView implements MvpView { @@ -150,6 +184,21 @@ public class UserManagerView implements MvpView {
150 }); 184 });
151 } 185 }
152 186
  187 + public void addAdminBtn() {
  188 + //添加邀请者按钮
  189 + btn_invit = fragment.binding.topbar.addRightTextButton("邀请使用者", R.id.rightBtn);
  190 + btn_invit.setTextSize(15);
  191 + btn_invit.setTextColor(ContextCompat.getColor(getContext(), R.color.color_282828));
  192 + btn_invit.setOnClickListener(new View.OnClickListener() {
  193 + @Override
  194 + public void onClick(View view) {
  195 + if (null != getContext()) {
  196 + showPop(btn_invit);
  197 + }
  198 + }
  199 + });
  200 + }
  201 +
153 public void initRoleDialog(RoleNetBean roleNetBean, FamilyRoleBean.FamilyRoleListBean familyRoleListBean) { 202 public void initRoleDialog(RoleNetBean roleNetBean, FamilyRoleBean.FamilyRoleListBean familyRoleListBean) {
154 roleInfoList = new ArrayList<>(); 203 roleInfoList = new ArrayList<>();
155 //整理数据 204 //整理数据
@@ -191,8 +240,25 @@ public class UserManagerView implements MvpView { @@ -191,8 +240,25 @@ public class UserManagerView implements MvpView {
191 } 240 }
192 241
193 @Override 242 @Override
194 - public void onSaveClick(EditRoleDialog dialog) {  
195 - dialog.dismiss(); 243 + public void onSaveClick(EditRoleDialog dialog, String selectSid, String selectRole, String selectRoleName) {
  244 + if (!TextUtils.isEmpty(selectSid) && !TextUtils.isEmpty(selectRole) && !TextUtils.isEmpty(currentSelectFamilyId)) {
  245 + fragment.getPresenter().changeMemberRole(getContext(), selectSid, familyRoleListBean.getFamily_id(), selectRole, new UserManagerPresenter.OnResposeListener() {
  246 + @Override
  247 + public void onSuccess() {
  248 + dialog.dismiss();
  249 + if (!TextUtils.isEmpty(selectRole) && !TextUtils.isEmpty(selectRoleName)) {
  250 + familyRoleListBean.setId(Integer.parseInt(selectRole));
  251 + familyRoleListBean.setRoleName(selectRoleName);
  252 + if (null != adapter) {
  253 + adapter.notifyDataSetChanged();
  254 + }
  255 + }
  256 + }
  257 + });
  258 + } else {
  259 + AlertUtil.showDeftToast(getContext(), "设置失败,请稍后重试");
  260 + dialog.dismiss();
  261 + }
196 } 262 }
197 }); 263 });
198 } 264 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/netWork/ApiServiceXiaoJia.java
1 package com.cnlive.strike.xiaojiaspeaker.netWork; 1 package com.cnlive.strike.xiaojiaspeaker.netWork;
2 2
3 3
  4 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.DeviceDetail;
4 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean; 5 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean;
5 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean; 6 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean;
6 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.NetworkResultBean; 7 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.NetworkResultBean;
7 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; 8 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
8 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.SubscriptionBaseInfo; 9 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
9 10
10 import java.util.Map; 11 import java.util.Map;
11 12
12 import io.reactivex.Observable; 13 import io.reactivex.Observable;
13 import retrofit2.adapter.rxjava2.Result; 14 import retrofit2.adapter.rxjava2.Result;
  15 +import retrofit2.http.GET;
14 import retrofit2.http.POST; 16 import retrofit2.http.POST;
15 import retrofit2.http.QueryMap; 17 import retrofit2.http.QueryMap;
16 18
@@ -19,7 +21,7 @@ import retrofit2.http.QueryMap; @@ -19,7 +21,7 @@ import retrofit2.http.QueryMap;
19 */ 21 */
20 public interface ApiServiceXiaoJia { 22 public interface ApiServiceXiaoJia {
21 @POST("Daren/sound/getSetRoleList.action") 23 @POST("Daren/sound/getSetRoleList.action")
22 - Observable<Result<SubscriptionBaseInfo<RoleNetBean>>> getSetRoleList(@QueryMap() Map<String, String> maps); 24 + Observable<Result<APIBaseInfo<RoleNetBean>>> getSetRoleList(@QueryMap() Map<String, String> maps);
23 25
24 /** 26 /**
25 * 获取家庭id 27 * 获取家庭id
@@ -30,7 +32,7 @@ public interface ApiServiceXiaoJia { @@ -30,7 +32,7 @@ public interface ApiServiceXiaoJia {
30 * @return 32 * @return
31 */ 33 */
32 @POST("Daren/sound/getFamilyList.action") 34 @POST("Daren/sound/getFamilyList.action")
33 - Observable<Result<SubscriptionBaseInfo<FamilyListBean>>> getFamilyList(@QueryMap() Map<String, String> maps); 35 + Observable<Result<APIBaseInfo<FamilyListBean>>> getFamilyList(@QueryMap() Map<String, String> maps);
34 36
35 37
36 /** 38 /**
@@ -42,7 +44,7 @@ public interface ApiServiceXiaoJia { @@ -42,7 +44,7 @@ public interface ApiServiceXiaoJia {
42 * @return 44 * @return
43 */ 45 */
44 @POST("/Daren/sound/getNetworkResult.action") 46 @POST("/Daren/sound/getNetworkResult.action")
45 - Observable<Result<SubscriptionBaseInfo<NetworkResultBean>>> getNetworkResult(@QueryMap() Map<String, String> maps); 47 + Observable<Result<APIBaseInfo<NetworkResultBean>>> getNetworkResult(@QueryMap() Map<String, String> maps);
46 48
47 49
48 /** 50 /**
@@ -54,8 +56,39 @@ public interface ApiServiceXiaoJia { @@ -54,8 +56,39 @@ public interface ApiServiceXiaoJia {
54 * @return 56 * @return
55 */ 57 */
56 @POST("/Daren/sound/getFamilyRole.action") 58 @POST("/Daren/sound/getFamilyRole.action")
57 - Observable<Result<SubscriptionBaseInfo<FamilyRoleBean>>> getFamilyRole(@QueryMap() Map<String, String> maps); 59 + Observable<Result<APIBaseInfo<FamilyRoleBean>>> getFamilyRole(@QueryMap() Map<String, String> maps);
58 60
  61 + /**
  62 + * 修改或移出家庭成员身份
  63 + * sid Integer true 修改身份sid
  64 + * familyId String true 家庭id
  65 + * role Integer false 修改身份id
  66 + *
  67 + * @param maps
  68 + * @return
  69 + */
  70 + @POST("/Daren/sound/updateFamilyMemberRole.action")
  71 + Observable<Result<APIBaseInfo>> changeMemberRole(@QueryMap() Map<String, String> maps);
59 72
  73 + /**
  74 + * 获取设备详情信息
  75 + * devIdStringtrue设备id
  76 + *
  77 + * @param maps
  78 + * @return
  79 + */
  80 + @GET("/Daren/sound/getDeviceDetailMsg.action")
  81 + Observable<Result<APIBaseInfo<DeviceDetail>>> getDeviceDetailMsg(@QueryMap() Map<String, String> maps);
  82 +
  83 + /**
  84 + * 修改音箱名称
  85 + * devId String true 设备id
  86 + * newName String true 新设备名称
  87 + *
  88 + * @param maps
  89 + * @return
  90 + */
  91 + @POST("/Daren/sound/updateDeviceName.action")
  92 + Observable<Result<APIBaseInfo>> changeDeviceName(@QueryMap() Map<String, String> maps);
60 } 93 }
61 94
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/netWork/bean/SubscriptionBaseInfo.java renamed to module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/netWork/bean/APIBaseInfo.java
@@ -5,7 +5,7 @@ import com.cnlive.libs.data.network.model.IBaseInfo; @@ -5,7 +5,7 @@ import com.cnlive.libs.data.network.model.IBaseInfo;
5 /** 5 /**
6 * Created by Lynn on 2019/3/27. 6 * Created by Lynn on 2019/3/27.
7 */ 7 */
8 -public class SubscriptionBaseInfo<T> implements IBaseInfo { 8 +public class APIBaseInfo<T> implements IBaseInfo {
9 private String errorCode = "0"; 9 private String errorCode = "0";
10 private String errorMessage = ""; 10 private String errorMessage = "";
11 11
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/netWork/bean/DeviceDetail.java 0 → 100644
  1 +package com.cnlive.strike.xiaojiaspeaker.netWork.bean;
  2 +
  3 +/**
  4 + * 设备详情页面
  5 + */
  6 +public class DeviceDetail {
  7 +
  8 + /**
  9 + * deviceName : 布丁
  10 + * iP :
  11 + * mAC :
  12 + * sN : 400011F000000002
  13 + * updateVer :
  14 + * ver : XiaoJiaSmartSpeaker_1.0.1.20190926
  15 + * wifiName :
  16 + */
  17 +
  18 + private String deviceName;
  19 + private String iP;
  20 + private String mAC;
  21 + private String sN;
  22 + private String updateVer;
  23 + private String ver;
  24 + private String wifiName;
  25 +
  26 + public String getDeviceName() {
  27 + return deviceName;
  28 + }
  29 +
  30 + public void setDeviceName(String deviceName) {
  31 + this.deviceName = deviceName;
  32 + }
  33 +
  34 + public String getIP() {
  35 + return iP;
  36 + }
  37 +
  38 + public void setIP(String iP) {
  39 + this.iP = iP;
  40 + }
  41 +
  42 + public String getMAC() {
  43 + return mAC;
  44 + }
  45 +
  46 + public void setMAC(String mAC) {
  47 + this.mAC = mAC;
  48 + }
  49 +
  50 + public String getSN() {
  51 + return sN;
  52 + }
  53 +
  54 + public void setSN(String sN) {
  55 + this.sN = sN;
  56 + }
  57 +
  58 + public String getUpdateVer() {
  59 + return updateVer;
  60 + }
  61 +
  62 + public void setUpdateVer(String updateVer) {
  63 + this.updateVer = updateVer;
  64 + }
  65 +
  66 + public String getVer() {
  67 + return ver;
  68 + }
  69 +
  70 + public void setVer(String ver) {
  71 + this.ver = ver;
  72 + }
  73 +
  74 + public String getWifiName() {
  75 + return wifiName;
  76 + }
  77 +
  78 + public void setWifiName(String wifiName) {
  79 + this.wifiName = wifiName;
  80 + }
  81 +}
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/netWork/bean/FamilyListBean.java
@@ -162,6 +162,15 @@ public class FamilyListBean implements Serializable { @@ -162,6 +162,15 @@ public class FamilyListBean implements Serializable {
162 private boolean power; 162 private boolean power;
163 private boolean isdefense; 163 private boolean isdefense;
164 private String mcid; 164 private String mcid;
  165 + private int parentPosition;
  166 +
  167 + public int getParentPosition() {
  168 + return parentPosition;
  169 + }
  170 +
  171 + public void setParentPosition(int parentPosition) {
  172 + this.parentPosition = parentPosition;
  173 + }
165 174
166 public DetailBean getDetail() { 175 public DetailBean getDetail() {
167 return detail; 176 return detail;
@@ -315,7 +324,7 @@ public class FamilyListBean implements Serializable { @@ -315,7 +324,7 @@ public class FamilyListBean implements Serializable {
315 this.mcid = mcid; 324 this.mcid = mcid;
316 } 325 }
317 326
318 - public static class DetailBean implements Serializable { 327 + public static class DetailBean implements Serializable {
319 /** 328 /**
320 * insurance : -1 329 * insurance : -1
321 * users : [{"inrange":false,"manager":true,"headimg":"","name":"135****4805","userid":"12:3f2e8e64833ebee51a49a0d0000616d2"}] 330 * users : [{"inrange":false,"manager":true,"headimg":"","name":"135****4805","userid":"12:3f2e8e64833ebee51a49a0d0000616d2"}]
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/netWork/result/SubscriptionRequest.java
@@ -9,7 +9,7 @@ import com.cnlive.libs.data.network.Subscriber; @@ -9,7 +9,7 @@ import com.cnlive.libs.data.network.Subscriber;
9 import com.cnlive.libs.data.network.interceptor.NetPPEncryptInterceptor; 9 import com.cnlive.libs.data.network.interceptor.NetPPEncryptInterceptor;
10 import com.cnlive.libs.data.network.interceptor.NetPPPayEncryptInterceptor; 10 import com.cnlive.libs.data.network.interceptor.NetPPPayEncryptInterceptor;
11 import com.cnlive.libs.data.network.interceptor.SignEncryptInterceptor; 11 import com.cnlive.libs.data.network.interceptor.SignEncryptInterceptor;
12 -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.SubscriptionBaseInfo; 12 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.APIBaseInfo;
13 13
14 import io.reactivex.android.schedulers.AndroidSchedulers; 14 import io.reactivex.android.schedulers.AndroidSchedulers;
15 import io.reactivex.disposables.Disposable; 15 import io.reactivex.disposables.Disposable;
@@ -22,7 +22,7 @@ import static com.cnlive.libs.base.logic.Config.SUCCESS; @@ -22,7 +22,7 @@ import static com.cnlive.libs.base.logic.Config.SUCCESS;
22 /** 22 /**
23 * Created by Lynn on 2019/3/27. 23 * Created by Lynn on 2019/3/27.
24 */ 24 */
25 -public class SubscriptionRequest<Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends SubscriptionBaseInfo> { 25 +public class SubscriptionRequest<Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends APIBaseInfo> {
26 private static final String SP_CMS_URL_DEBUT = "http://cmstest.cnlive.com:8768/"; 26 private static final String SP_CMS_URL_DEBUT = "http://cmstest.cnlive.com:8768/";
27 private static final String SP_CMS_URL = "http://cms.cnlive.com:8768/"; 27 private static final String SP_CMS_URL = "http://cms.cnlive.com:8768/";
28 28
@@ -51,22 +51,22 @@ public class SubscriptionRequest&lt;Observable extends io.reactivex.Observable&lt;Resu @@ -51,22 +51,22 @@ public class SubscriptionRequest&lt;Observable extends io.reactivex.Observable&lt;Resu
51 return baseEndpoint(); 51 return baseEndpoint();
52 } 52 }
53 53
54 - public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends SubscriptionBaseInfo> 54 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends APIBaseInfo>
55 SubscriptionRequest<Observable, BaseData> service(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) { 55 SubscriptionRequest<Observable, BaseData> service(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
56 return service(clazz, api, new SignEncryptInterceptor()); 56 return service(clazz, api, new SignEncryptInterceptor());
57 } 57 }
58 58
59 - public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends SubscriptionBaseInfo> 59 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends APIBaseInfo>
60 SubscriptionRequest<Observable, BaseData> serviceEncrypt(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) { 60 SubscriptionRequest<Observable, BaseData> serviceEncrypt(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
61 return service(clazz, api, new NetPPEncryptInterceptor()); 61 return service(clazz, api, new NetPPEncryptInterceptor());
62 } 62 }
63 63
64 - public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends SubscriptionBaseInfo> 64 + public static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends APIBaseInfo>
65 SubscriptionRequest<Observable, BaseData> servicePayEncrypt(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) { 65 SubscriptionRequest<Observable, BaseData> servicePayEncrypt(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api) {
66 return service(clazz, api, new NetPPPayEncryptInterceptor()); 66 return service(clazz, api, new NetPPPayEncryptInterceptor());
67 } 67 }
68 68
69 - private static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends SubscriptionBaseInfo> 69 + private static <Service, Observable extends io.reactivex.Observable<Result<BaseData>>, BaseData extends APIBaseInfo>
70 SubscriptionRequest<Observable, BaseData> service(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api, Interceptor... interceptor) { 70 SubscriptionRequest<Observable, BaseData> service(Class<Service> clazz, ApiBuild.Api<Service, Observable, BaseData> api, Interceptor... interceptor) {
71 71
72 SubscriptionRequest<Observable, BaseData> request = new SubscriptionRequest<Observable, BaseData>(); 72 SubscriptionRequest<Observable, BaseData> request = new SubscriptionRequest<Observable, BaseData>();
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/ChangeDeviceNameActivity.java
@@ -15,6 +15,8 @@ import com.cnlive.libs.base.util.StatusBarUtil2; @@ -15,6 +15,8 @@ import com.cnlive.libs.base.util.StatusBarUtil2;
15 import com.cnlive.strike.xiaojiaspeaker.R; 15 import com.cnlive.strike.xiaojiaspeaker.R;
16 import com.cnlive.strike.xiaojiaspeaker.databinding.ActivityChangeDeviceNameBinding; 16 import com.cnlive.strike.xiaojiaspeaker.databinding.ActivityChangeDeviceNameBinding;
17 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean; 17 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean;
  18 +import com.cnlive.strike.xiaojiaspeaker.ui.fragment.ChangeDeviceNameFragment;
  19 +import com.cnlive.strike.xiaojiaspeaker.ui.fragment.DeviceManagerFragment;
18 20
19 import java.io.Serializable; 21 import java.io.Serializable;
20 22
@@ -28,56 +30,8 @@ public class ChangeDeviceNameActivity extends AppCompatActivity { @@ -28,56 +30,8 @@ public class ChangeDeviceNameActivity extends AppCompatActivity {
28 protected void onCreate(Bundle savedInstanceState) { 30 protected void onCreate(Bundle savedInstanceState) {
29 super.onCreate(savedInstanceState); 31 super.onCreate(savedInstanceState);
30 binding = DataBindingUtil.setContentView(this, R.layout.activity_change_device_name); 32 binding = DataBindingUtil.setContentView(this, R.layout.activity_change_device_name);
31 - initTopBar();  
32 - initView();  
33 - }  
34 -  
35 - private void initView() {  
36 - //编辑框  
37 - binding.etName.addTextChangedListener(new TextWatcher() {  
38 - @Override  
39 - public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {  
40 -  
41 - }  
42 -  
43 - @Override  
44 - public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {  
45 - if (null != charSequence && charSequence.length() > 0) {  
46 - binding.ivClose.setVisibility(View.VISIBLE);  
47 - setBtnClick();  
48 - } else {  
49 - binding.ivClose.setVisibility(View.GONE);  
50 - setBtnCantClick();  
51 - }  
52 - }  
53 -  
54 - @Override  
55 - public void afterTextChanged(Editable editable) { 33 + getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, ChangeDeviceNameFragment.newInstance()).commitAllowingStateLoss();
56 34
57 - }  
58 - });  
59 - //清除按钮点击事件  
60 - binding.ivClose.setOnClickListener(new View.OnClickListener() {  
61 - @Override  
62 - public void onClick(View view) {  
63 - binding.etName.setText("");  
64 - }  
65 - });  
66 - }  
67 -  
68 - private void initTopBar() {  
69 - StatusBarUtil.setStatusBarWrite(this);  
70 - StatusBarUtil2.setColor(this, ContextCompat.getColor(this, R.color.white), 0);  
71 - if (null != binding) {  
72 - binding.topbar.setTitle("更改音箱名称");  
73 - //设置返回按钮  
74 - binding.topbar.addLeftImageButton(R.drawable.icon_back, R.id.left_back).setOnClickListener(new View.OnClickListener() {  
75 - @Override  
76 - public void onClick(View view) {  
77 - finish();  
78 - }  
79 - });  
80 - }  
81 } 35 }
82 36
83 public static void startActivity(Activity activity) { 37 public static void startActivity(Activity activity) {
@@ -85,23 +39,5 @@ public class ChangeDeviceNameActivity extends AppCompatActivity { @@ -85,23 +39,5 @@ public class ChangeDeviceNameActivity extends AppCompatActivity {
85 activity.startActivity(intent); 39 activity.startActivity(intent);
86 } 40 }
87 41
88 - /**  
89 - * 设置绑定按钮不可点击  
90 - */  
91 - private void setBtnCantClick() {  
92 - if (binding.btnNext.isClickable()) {  
93 - binding.btnNext.setClickable(false);  
94 - binding.btnNext.setBackground(ContextCompat.getDrawable(ChangeDeviceNameActivity.this, R.drawable.shape_btn_press));  
95 - }  
96 - }  
97 42
98 - /**  
99 - * 设置绑定按钮可点击  
100 - */  
101 - private void setBtnClick() {  
102 - if (!binding.btnNext.isClickable()) {  
103 - binding.btnNext.setClickable(true);  
104 - binding.btnNext.setBackground(ContextCompat.getDrawable(ChangeDeviceNameActivity.this, R.drawable.selector_btn_green));  
105 - }  
106 - }  
107 } 43 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/DeviceDetailActivity.java
@@ -6,6 +6,7 @@ import android.databinding.DataBindingUtil; @@ -6,6 +6,7 @@ import android.databinding.DataBindingUtil;
6 import android.support.v4.content.ContextCompat; 6 import android.support.v4.content.ContextCompat;
7 import android.support.v7.app.AppCompatActivity; 7 import android.support.v7.app.AppCompatActivity;
8 import android.os.Bundle; 8 import android.os.Bundle;
  9 +import android.text.TextUtils;
9 import android.view.View; 10 import android.view.View;
10 11
11 import com.cnlive.libs.base.util.StatusBarUtil; 12 import com.cnlive.libs.base.util.StatusBarUtil;
@@ -33,23 +34,29 @@ public class DeviceDetailActivity extends AppCompatActivity { @@ -33,23 +34,29 @@ public class DeviceDetailActivity extends AppCompatActivity {
33 initTopBar(allDeviceInfo.getName()); 34 initTopBar(allDeviceInfo.getName());
34 } 35 }
35 } 36 }
36 - initView();  
37 - 37 + if (null != getIntent().getExtras()) {
  38 + String currentSelectFamilyId = getIntent().getExtras().getString("currentSelectFamilyId");
  39 + if (!TextUtils.isEmpty(currentSelectFamilyId)) {
  40 + initView(currentSelectFamilyId);
  41 + }
  42 + }
38 } 43 }
39 44
40 - private void initView() { 45 + private void initView(String currentSelectFamilyId) {
41 //使用者管理 46 //使用者管理
42 binding.rlUserManager.setOnClickListener(new View.OnClickListener() { 47 binding.rlUserManager.setOnClickListener(new View.OnClickListener() {
43 @Override 48 @Override
44 public void onClick(View view) { 49 public void onClick(View view) {
45 - UserManagerActivity.StartActivity(DeviceDetailActivity.this); 50 + if (!TextUtils.isEmpty(currentSelectFamilyId)) {
  51 + UserManagerActivity.StartActivity(DeviceDetailActivity.this, currentSelectFamilyId);
  52 + }
46 } 53 }
47 }); 54 });
48 //设备管理 55 //设备管理
49 binding.rlDeviceManager.setOnClickListener(new View.OnClickListener() { 56 binding.rlDeviceManager.setOnClickListener(new View.OnClickListener() {
50 @Override 57 @Override
51 public void onClick(View view) { 58 public void onClick(View view) {
52 - DeviceManagerActivity.startActivity(DeviceDetailActivity.this); 59 + DeviceManagerActivity.startActivity(DeviceDetailActivity.this,allDeviceInfo);
53 } 60 }
54 }); 61 });
55 //设备说明 62 //设备说明
@@ -76,9 +83,10 @@ public class DeviceDetailActivity extends AppCompatActivity { @@ -76,9 +83,10 @@ public class DeviceDetailActivity extends AppCompatActivity {
76 } 83 }
77 } 84 }
78 85
79 - public static void startActivity(Activity activity, FamilyListBean.UsersBeanX.DeviceListBean allDeviceInfo) { 86 + public static void startActivity(Activity activity, FamilyListBean.UsersBeanX.DeviceListBean allDeviceInfo, String currentSelectFamilyId) {
80 Intent intent = new Intent(activity, DeviceDetailActivity.class); 87 Intent intent = new Intent(activity, DeviceDetailActivity.class);
81 intent.putExtra("allDeviceInfo", (Serializable) allDeviceInfo); 88 intent.putExtra("allDeviceInfo", (Serializable) allDeviceInfo);
  89 + intent.putExtra("currentSelectFamilyId", currentSelectFamilyId);
82 activity.startActivity(intent); 90 activity.startActivity(intent);
83 } 91 }
84 } 92 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/DeviceManagerActivity.java
@@ -6,12 +6,14 @@ import android.databinding.DataBindingUtil; @@ -6,12 +6,14 @@ import android.databinding.DataBindingUtil;
6 import android.support.v4.content.ContextCompat; 6 import android.support.v4.content.ContextCompat;
7 import android.support.v7.app.AppCompatActivity; 7 import android.support.v7.app.AppCompatActivity;
8 import android.os.Bundle; 8 import android.os.Bundle;
  9 +import android.text.TextUtils;
9 import android.view.View; 10 import android.view.View;
10 11
11 import com.cnlive.libs.base.util.StatusBarUtil; 12 import com.cnlive.libs.base.util.StatusBarUtil;
12 import com.cnlive.libs.base.util.StatusBarUtil2; 13 import com.cnlive.libs.base.util.StatusBarUtil2;
13 import com.cnlive.strike.xiaojiaspeaker.R; 14 import com.cnlive.strike.xiaojiaspeaker.R;
14 import com.cnlive.strike.xiaojiaspeaker.databinding.ActivityDeviceManagerBinding; 15 import com.cnlive.strike.xiaojiaspeaker.databinding.ActivityDeviceManagerBinding;
  16 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean;
15 import com.cnlive.strike.xiaojiaspeaker.ui.fragment.DeviceManagerFragment; 17 import com.cnlive.strike.xiaojiaspeaker.ui.fragment.DeviceManagerFragment;
16 import com.cnlive.strike.xiaojiaspeaker.ui.fragment.SelectWifiFragment; 18 import com.cnlive.strike.xiaojiaspeaker.ui.fragment.SelectWifiFragment;
17 19
@@ -27,58 +29,65 @@ public class DeviceManagerActivity extends AppCompatActivity { @@ -27,58 +29,65 @@ public class DeviceManagerActivity extends AppCompatActivity {
27 protected void onCreate(Bundle savedInstanceState) { 29 protected void onCreate(Bundle savedInstanceState) {
28 super.onCreate(savedInstanceState); 30 super.onCreate(savedInstanceState);
29 binding = DataBindingUtil.setContentView(this, R.layout.activity_device_manager); 31 binding = DataBindingUtil.setContentView(this, R.layout.activity_device_manager);
30 -// getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, DeviceManagerFragment.newInstance()).commitAllowingStateLoss();  
31 - initTopBar();  
32 - initView();  
33 - }  
34 -  
35 - private void initView() {  
36 - //音箱名称  
37 - binding.llDeviceName.setOnClickListener(new View.OnClickListener() {  
38 - @Override  
39 - public void onClick(View view) {  
40 - ChangeDeviceNameActivity.startActivity(DeviceManagerActivity.this);  
41 - }  
42 - });  
43 - //wifi设置  
44 - binding.llWifiSetting.setOnClickListener(new View.OnClickListener() {  
45 - @Override  
46 - public void onClick(View view) {  
47 -  
48 - }  
49 - });  
50 - //设备信息  
51 - binding.llDeviceInfo.setOnClickListener(new View.OnClickListener() {  
52 - @Override  
53 - public void onClick(View view) {  
54 -  
55 - }  
56 - });  
57 - //固件升级  
58 - binding.llDeviceUpdate.setOnClickListener(new View.OnClickListener() {  
59 - @Override  
60 - public void onClick(View view) {  
61 - FirmwareUpdateActivity.startActivity(DeviceManagerActivity.this); 32 + if (null!=getIntent().getExtras()){
  33 + FamilyListBean.UsersBeanX.DeviceListBean currentDeviceInfo= (FamilyListBean.UsersBeanX.DeviceListBean) getIntent().getExtras().getSerializable("currentDeviceInfo");
  34 + if (null!=currentDeviceInfo){
  35 + getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, DeviceManagerFragment.newInstance(currentDeviceInfo)).commitAllowingStateLoss();
62 } 36 }
63 - });  
64 - }  
65 -  
66 - private void initTopBar() {  
67 - StatusBarUtil.setStatusBarWrite(this);  
68 - StatusBarUtil2.setColor(this, ContextCompat.getColor(this, R.color.white), 0);  
69 - if (null != binding) {  
70 - binding.topbar.setTitle("设备管理");  
71 - //设置返回按钮  
72 - binding.topbar.addLeftImageButton(R.drawable.icon_back, R.id.left_back).setOnClickListener(new View.OnClickListener() {  
73 - @Override  
74 - public void onClick(View view) {  
75 - finish();  
76 - }  
77 - });  
78 } 37 }
  38 +// initTopBar();
  39 +// initView();
79 } 40 }
80 41
81 - public static void startActivity(Activity activity) {  
82 - activity.startActivity(new Intent(activity, DeviceManagerActivity.class)); 42 +// private void initView() {
  43 +// //音箱名称
  44 +// binding.llDeviceName.setOnClickListener(new View.OnClickListener() {
  45 +// @Override
  46 +// public void onClick(View view) {
  47 +// ChangeDeviceNameActivity.startActivity(DeviceManagerActivity.this);
  48 +// }
  49 +// });
  50 +// //wifi设置
  51 +// binding.llWifiSetting.setOnClickListener(new View.OnClickListener() {
  52 +// @Override
  53 +// public void onClick(View view) {
  54 +//
  55 +// }
  56 +// });
  57 +// //设备信息
  58 +// binding.llDeviceInfo.setOnClickListener(new View.OnClickListener() {
  59 +// @Override
  60 +// public void onClick(View view) {
  61 +//
  62 +// }
  63 +// });
  64 +// //固件升级
  65 +// binding.llDeviceUpdate.setOnClickListener(new View.OnClickListener() {
  66 +// @Override
  67 +// public void onClick(View view) {
  68 +// FirmwareUpdateActivity.startActivity(DeviceManagerActivity.this);
  69 +// }
  70 +// });
  71 +// }
  72 +//
  73 +// private void initTopBar() {
  74 +// StatusBarUtil.setStatusBarWrite(this);
  75 +// StatusBarUtil2.setColor(this, ContextCompat.getColor(this, R.color.white), 0);
  76 +// if (null != binding) {
  77 +// binding.topbar.setTitle("设备管理");
  78 +// //设置返回按钮
  79 +// binding.topbar.addLeftImageButton(R.drawable.icon_back, R.id.left_back).setOnClickListener(new View.OnClickListener() {
  80 +// @Override
  81 +// public void onClick(View view) {
  82 +// finish();
  83 +// }
  84 +// });
  85 +// }
  86 +// }
  87 +
  88 + public static void startActivity(Activity activity, FamilyListBean.UsersBeanX.DeviceListBean currentDeviceInfo) {
  89 + Intent intent=new Intent(activity, DeviceManagerActivity.class);
  90 + intent.putExtra("currentDeviceInfo",currentDeviceInfo);
  91 + activity.startActivity(intent);
83 } 92 }
84 } 93 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/UserManagerActivity.java
@@ -4,6 +4,7 @@ import android.app.Activity; @@ -4,6 +4,7 @@ import android.app.Activity;
4 import android.content.Intent; 4 import android.content.Intent;
5 import android.support.v7.app.AppCompatActivity; 5 import android.support.v7.app.AppCompatActivity;
6 import android.os.Bundle; 6 import android.os.Bundle;
  7 +import android.text.TextUtils;
7 8
8 import com.clj.fastble.data.BleDevice; 9 import com.clj.fastble.data.BleDevice;
9 import com.cnlive.strike.xiaojiaspeaker.R; 10 import com.cnlive.strike.xiaojiaspeaker.R;
@@ -16,12 +17,17 @@ public class UserManagerActivity extends AppCompatActivity { @@ -16,12 +17,17 @@ public class UserManagerActivity extends AppCompatActivity {
16 protected void onCreate(Bundle savedInstanceState) { 17 protected void onCreate(Bundle savedInstanceState) {
17 super.onCreate(savedInstanceState); 18 super.onCreate(savedInstanceState);
18 setContentView(R.layout.activity_user_manager); 19 setContentView(R.layout.activity_user_manager);
19 - getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, UserManagerFragment.newInstance()).commitAllowingStateLoss();  
20 - 20 + if (null != getIntent().getExtras()) {
  21 + String currentSelectFamilyId = getIntent().getExtras().getString("currentSelectFamilyId");
  22 + if (!TextUtils.isEmpty(currentSelectFamilyId)) {
  23 + getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, UserManagerFragment.newInstance(currentSelectFamilyId)).commitAllowingStateLoss();
  24 + }
  25 + }
21 } 26 }
22 27
23 - public static void StartActivity(Activity activity) { 28 + public static void StartActivity(Activity activity, String currentSelectFamilyId) {
24 Intent intent = new Intent(activity, UserManagerActivity.class); 29 Intent intent = new Intent(activity, UserManagerActivity.class);
  30 + intent.putExtra("currentSelectFamilyId", currentSelectFamilyId);
25 activity.startActivity(intent); 31 activity.startActivity(intent);
26 } 32 }
27 } 33 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/adapter/AllRoleDetailAdapter.java
@@ -29,6 +29,11 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { @@ -29,6 +29,11 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter {
29 private Map<String, Boolean> allowSelectMap; 29 private Map<String, Boolean> allowSelectMap;
30 private String TAG = "AllRoleDetailAdapter"; 30 private String TAG = "AllRoleDetailAdapter";
31 private OnAllRoleClickListener onAllRoleClickListener; 31 private OnAllRoleClickListener onAllRoleClickListener;
  32 + private OnDialogRoleClickListener onDialogRoleClickListener;
  33 +
  34 + public void setOnDialogRoleClickListener(OnDialogRoleClickListener onDialogRoleClickListener) {
  35 + this.onDialogRoleClickListener = onDialogRoleClickListener;
  36 + }
32 37
33 public void setOnAllRoleClickListener(OnAllRoleClickListener onAllRoleClickListener) { 38 public void setOnAllRoleClickListener(OnAllRoleClickListener onAllRoleClickListener) {
34 this.onAllRoleClickListener = onAllRoleClickListener; 39 this.onAllRoleClickListener = onAllRoleClickListener;
@@ -118,9 +123,12 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { @@ -118,9 +123,12 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter {
118 binding.checkBox.toggle(); 123 binding.checkBox.toggle();
119 //开始设置全局状态 124 //开始设置全局状态
120 if (binding.checkBox.isChecked()) { 125 if (binding.checkBox.isChecked()) {
121 - if (null!=onAllRoleClickListener){ 126 + if (null != onAllRoleClickListener) {
122 onAllRoleClickListener.onSelect(allRoleList.get(position).getId()); 127 onAllRoleClickListener.onSelect(allRoleList.get(position).getId());
123 } 128 }
  129 + if (null != onDialogRoleClickListener) {
  130 + onDialogRoleClickListener.onSelect(allRoleList.get(position));
  131 + }
124 //添加到选中的集合 132 //添加到选中的集合
125 if (!selectId.equals(currentRoleId)) { 133 if (!selectId.equals(currentRoleId)) {
126 //重置状态 134 //重置状态
@@ -128,9 +136,12 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { @@ -128,9 +136,12 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter {
128 setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId(currentRoleId); 136 setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId(currentRoleId);
129 } 137 }
130 } else { 138 } else {
131 - if (null!=onAllRoleClickListener){ 139 + if (null != onAllRoleClickListener) {
132 onAllRoleClickListener.onCancel(); 140 onAllRoleClickListener.onCancel();
133 } 141 }
  142 + if (null != onDialogRoleClickListener) {
  143 + onDialogRoleClickListener.onCancel();
  144 + }
134 setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId(""); 145 setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId("");
135 } 146 }
136 //设置全局不允许选择 147 //设置全局不允许选择
@@ -145,4 +156,10 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { @@ -145,4 +156,10 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter {
145 156
146 void onSelect(int roleId); 157 void onSelect(int roleId);
147 } 158 }
  159 +
  160 + public interface OnDialogRoleClickListener {
  161 + void onCancel();
  162 +
  163 + void onSelect(RoleNetBean.RoleListBean bean);
  164 + }
148 } 165 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/adapter/SetRoleAdapter.java
@@ -13,6 +13,7 @@ import com.cnlive.strike.application.GlideApp; @@ -13,6 +13,7 @@ import com.cnlive.strike.application.GlideApp;
13 import com.cnlive.strike.xiaojiaspeaker.R; 13 import com.cnlive.strike.xiaojiaspeaker.R;
14 import com.cnlive.strike.xiaojiaspeaker.databinding.ItemListSetRoleBinding; 14 import com.cnlive.strike.xiaojiaspeaker.databinding.ItemListSetRoleBinding;
15 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo; 15 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo;
  16 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
16 17
17 import java.util.ArrayList; 18 import java.util.ArrayList;
18 import java.util.HashMap; 19 import java.util.HashMap;
@@ -28,6 +29,11 @@ public class SetRoleAdapter extends RecyclerView.Adapter { @@ -28,6 +29,11 @@ public class SetRoleAdapter extends RecyclerView.Adapter {
28 private int gridCount = -1; 29 private int gridCount = -1;
29 private int isShowItemUserInfo = View.VISIBLE; 30 private int isShowItemUserInfo = View.VISIBLE;
30 private OnSelectListener onSelectListener; 31 private OnSelectListener onSelectListener;
  32 + private OnDialogRoleClickListener onDialogRoleClickListener;
  33 +
  34 + public void setOnDialogRoleClickListener(OnDialogRoleClickListener onDialogRoleClickListener) {
  35 + this.onDialogRoleClickListener = onDialogRoleClickListener;
  36 + }
31 37
32 public void setOnSelectListener(OnSelectListener onSelectListener) { 38 public void setOnSelectListener(OnSelectListener onSelectListener) {
33 this.onSelectListener = onSelectListener; 39 this.onSelectListener = onSelectListener;
@@ -95,18 +101,34 @@ public class SetRoleAdapter extends RecyclerView.Adapter { @@ -95,18 +101,34 @@ public class SetRoleAdapter extends RecyclerView.Adapter {
95 adapter.setOnAllRoleClickListener(new AllRoleDetailAdapter.OnAllRoleClickListener() { 101 adapter.setOnAllRoleClickListener(new AllRoleDetailAdapter.OnAllRoleClickListener() {
96 @Override 102 @Override
97 public void onCancel() { 103 public void onCancel() {
98 - if (null!=onSelectListener){ 104 + if (null != onSelectListener) {
99 onSelectListener.onCancel(); 105 onSelectListener.onCancel();
100 } 106 }
101 } 107 }
102 108
103 @Override 109 @Override
104 public void onSelect(int roleId) { 110 public void onSelect(int roleId) {
105 - if (null!=onSelectListener){ 111 + if (null != onSelectListener) {
106 onSelectListener.onSelect(roleId); 112 onSelectListener.onSelect(roleId);
107 } 113 }
108 } 114 }
109 }); 115 });
  116 + //对话框
  117 + adapter.setOnDialogRoleClickListener(new AllRoleDetailAdapter.OnDialogRoleClickListener() {
  118 + @Override
  119 + public void onCancel() {
  120 + if (null!=onDialogRoleClickListener){
  121 + onDialogRoleClickListener.onCancel();
  122 + }
  123 + }
  124 +
  125 + @Override
  126 + public void onSelect(RoleNetBean.RoleListBean bean) {
  127 + if (null!=onDialogRoleClickListener){
  128 + onDialogRoleClickListener.onSelect(bean);
  129 + }
  130 + }
  131 + });
110 } 132 }
111 133
112 @Override 134 @Override
@@ -133,4 +155,10 @@ public class SetRoleAdapter extends RecyclerView.Adapter { @@ -133,4 +155,10 @@ public class SetRoleAdapter extends RecyclerView.Adapter {
133 155
134 void onCancel(); 156 void onCancel();
135 } 157 }
  158 +
  159 + public interface OnDialogRoleClickListener {
  160 + void onCancel();
  161 +
  162 + void onSelect(RoleNetBean.RoleListBean bean);
  163 + }
136 } 164 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/AllDeviceFragment.java
@@ -11,9 +11,11 @@ import com.cnlive.libs.base.util.StatusBarUtil; @@ -11,9 +11,11 @@ import com.cnlive.libs.base.util.StatusBarUtil;
11 import com.cnlive.libs.base.util.StatusBarUtil2; 11 import com.cnlive.libs.base.util.StatusBarUtil2;
12 import com.cnlive.strike.ui.widget.UIPopup; 12 import com.cnlive.strike.ui.widget.UIPopup;
13 import com.cnlive.strike.xiaojiaspeaker.R; 13 import com.cnlive.strike.xiaojiaspeaker.R;
  14 +import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo;
14 import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentAllDeviceBinding; 15 import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentAllDeviceBinding;
15 import com.cnlive.strike.xiaojiaspeaker.frame.presenter.AllDeviceFragmentPresenter; 16 import com.cnlive.strike.xiaojiaspeaker.frame.presenter.AllDeviceFragmentPresenter;
16 import com.cnlive.strike.xiaojiaspeaker.frame.view.AllDeviceFragmentView; 17 import com.cnlive.strike.xiaojiaspeaker.frame.view.AllDeviceFragmentView;
  18 +import com.cnlive.strike.xiaojiaspeaker.ui.activity.BlueToothStep1Activity;
17 import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenuInfo; 19 import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenuInfo;
18 import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenu; 20 import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenu;
19 import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton; 21 import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
@@ -47,7 +49,7 @@ public class AllDeviceFragment extends MvpBindingFragment&lt;AllDeviceFragmentView, @@ -47,7 +49,7 @@ public class AllDeviceFragment extends MvpBindingFragment&lt;AllDeviceFragmentView,
47 initTopBar(); 49 initTopBar();
48 if (null != getMvpView()) { 50 if (null != getMvpView()) {
49 getMvpView().initView(); 51 getMvpView().initView();
50 - getPresenter().getFamilyList(getActivity(),"123456","13585544805"); 52 + getPresenter().getFamilyList(getActivity(), XiaoJIaCommInfo.getUserId(getActivity()), XiaoJIaCommInfo.getUserPhone(getActivity()));
51 } 53 }
52 } 54 }
53 55
@@ -68,8 +70,10 @@ public class AllDeviceFragment extends MvpBindingFragment&lt;AllDeviceFragmentView, @@ -68,8 +70,10 @@ public class AllDeviceFragment extends MvpBindingFragment&lt;AllDeviceFragmentView,
68 addButton.setOnClickListener(new View.OnClickListener() { 70 addButton.setOnClickListener(new View.OnClickListener() {
69 @Override 71 @Override
70 public void onClick(View view) { 72 public void onClick(View view) {
71 - if (null!=getMvpView()){  
72 - getMvpView().showPop(addButton); 73 + if (null != getMvpView()) {
  74 +// getMvpView().showPop(addButton);
  75 + BlueToothStep1Activity.startActivity(getActivity());
  76 +
73 } 77 }
74 } 78 }
75 }); 79 });
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/ChangeDeviceNameFragment.java 0 → 100644
  1 +package com.cnlive.strike.xiaojiaspeaker.ui.fragment;
  2 +
  3 +import android.os.Bundle;
  4 +import android.support.annotation.Nullable;
  5 +import android.support.v4.content.ContextCompat;
  6 +import android.view.View;
  7 +
  8 +import com.cnlive.libs.base.frame.fragment.MvpBindingFragment;
  9 +import com.cnlive.libs.base.util.StatusBarUtil;
  10 +import com.cnlive.libs.base.util.StatusBarUtil2;
  11 +import com.cnlive.strike.xiaojiaspeaker.R;
  12 +import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentChangeDeviceNameBinding;
  13 +import com.cnlive.strike.xiaojiaspeaker.frame.presenter.ChangeDeviceNamePresenter;
  14 +import com.cnlive.strike.xiaojiaspeaker.frame.view.ChangeDeviceNameView;
  15 +
  16 +public class ChangeDeviceNameFragment extends MvpBindingFragment<ChangeDeviceNameView, ChangeDeviceNamePresenter, Object, FragmentChangeDeviceNameBinding> {
  17 + public static ChangeDeviceNameFragment newInstance() {
  18 + ChangeDeviceNameFragment fragment = new ChangeDeviceNameFragment();
  19 + return fragment;
  20 + }
  21 +
  22 + @Override
  23 + protected int getLayoutId() {
  24 + return R.layout.fragment_change_device_name;
  25 + }
  26 +
  27 + @Override
  28 + public void onActivityCreated(@Nullable Bundle savedInstanceState) {
  29 + super.onActivityCreated(savedInstanceState);
  30 +
  31 + }
  32 +
  33 + @Override
  34 + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
  35 + super.onViewCreated(view, savedInstanceState);
  36 + initTopBar();
  37 + if (null != getMvpView()) {
  38 + getMvpView().initView();
  39 + }
  40 + }
  41 +
  42 + private void initTopBar() {
  43 + StatusBarUtil.setStatusBarWrite(getActivity());
  44 + StatusBarUtil2.setColor(getActivity(), ContextCompat.getColor(getActivity(), R.color.white), 0);
  45 + if (null != binding) {
  46 + binding.topbar.setTitle("更改音箱名称");
  47 + //设置返回按钮
  48 + binding.topbar.addLeftImageButton(R.drawable.icon_back, R.id.left_back).setOnClickListener(new View.OnClickListener() {
  49 + @Override
  50 + public void onClick(View view) {
  51 + getActivity().finish();
  52 + }
  53 + });
  54 + }
  55 + }
  56 +}
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/DeviceManagerFragment.java
@@ -3,6 +3,7 @@ package com.cnlive.strike.xiaojiaspeaker.ui.fragment; @@ -3,6 +3,7 @@ package com.cnlive.strike.xiaojiaspeaker.ui.fragment;
3 import android.os.Bundle; 3 import android.os.Bundle;
4 import android.support.annotation.Nullable; 4 import android.support.annotation.Nullable;
5 import android.support.v4.content.ContextCompat; 5 import android.support.v4.content.ContextCompat;
  6 +import android.text.TextUtils;
6 import android.view.View; 7 import android.view.View;
7 8
8 import com.cnlive.libs.base.frame.fragment.MvpBindingFragment; 9 import com.cnlive.libs.base.frame.fragment.MvpBindingFragment;
@@ -12,6 +13,7 @@ import com.cnlive.strike.xiaojiaspeaker.R; @@ -12,6 +13,7 @@ import com.cnlive.strike.xiaojiaspeaker.R;
12 import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentDeviceManagerBinding; 13 import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentDeviceManagerBinding;
13 import com.cnlive.strike.xiaojiaspeaker.frame.presenter.DeviceManagerFragmentPresenter; 14 import com.cnlive.strike.xiaojiaspeaker.frame.presenter.DeviceManagerFragmentPresenter;
14 import com.cnlive.strike.xiaojiaspeaker.frame.view.DeviceManagerFragmentView; 15 import com.cnlive.strike.xiaojiaspeaker.frame.view.DeviceManagerFragmentView;
  16 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean;
15 17
16 /** 18 /**
17 * 设备管理 19 * 设备管理
@@ -19,8 +21,12 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.DeviceManagerFragmentView; @@ -19,8 +21,12 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.DeviceManagerFragmentView;
19 * @author ys 21 * @author ys
20 */ 22 */
21 public class DeviceManagerFragment extends MvpBindingFragment<DeviceManagerFragmentView, DeviceManagerFragmentPresenter, Object, FragmentDeviceManagerBinding> { 23 public class DeviceManagerFragment extends MvpBindingFragment<DeviceManagerFragmentView, DeviceManagerFragmentPresenter, Object, FragmentDeviceManagerBinding> {
22 - public static DeviceManagerFragment newInstance() { 24 +
  25 + public static DeviceManagerFragment newInstance(FamilyListBean.UsersBeanX.DeviceListBean currentDeviceInfo) {
23 DeviceManagerFragment fragment = new DeviceManagerFragment(); 26 DeviceManagerFragment fragment = new DeviceManagerFragment();
  27 + Bundle bundle=new Bundle();
  28 + bundle.putSerializable("currentDeviceInfo",currentDeviceInfo);
  29 + fragment.setArguments(bundle);
24 return fragment; 30 return fragment;
25 } 31 }
26 32
@@ -41,7 +47,13 @@ public class DeviceManagerFragment extends MvpBindingFragment&lt;DeviceManagerFragm @@ -41,7 +47,13 @@ public class DeviceManagerFragment extends MvpBindingFragment&lt;DeviceManagerFragm
41 super.onViewCreated(view, savedInstanceState); 47 super.onViewCreated(view, savedInstanceState);
42 initTopBar(); 48 initTopBar();
43 if (null != getMvpView()) { 49 if (null != getMvpView()) {
44 - getMvpView().initView(); 50 + if (null!=getArguments()){
  51 + FamilyListBean.UsersBeanX.DeviceListBean currentDeviceInfo= (FamilyListBean.UsersBeanX.DeviceListBean) getArguments().getSerializable("currentDeviceInfo");
  52 + if (null!=currentDeviceInfo&&!TextUtils.isEmpty(currentDeviceInfo.getMcid())){
  53 + getMvpView().initView(currentDeviceInfo);
  54 + getPresenter().getDeviceDetailMsg(getActivity(),currentDeviceInfo.getMcid());
  55 + }
  56 + }
45 } 57 }
46 } 58 }
47 59
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/UserManagerFragment.java
@@ -10,6 +10,7 @@ import com.cnlive.libs.base.frame.fragment.MvpBindingFragment; @@ -10,6 +10,7 @@ import com.cnlive.libs.base.frame.fragment.MvpBindingFragment;
10 import com.cnlive.libs.base.util.StatusBarUtil; 10 import com.cnlive.libs.base.util.StatusBarUtil;
11 import com.cnlive.libs.base.util.StatusBarUtil2; 11 import com.cnlive.libs.base.util.StatusBarUtil2;
12 import com.cnlive.strike.xiaojiaspeaker.R; 12 import com.cnlive.strike.xiaojiaspeaker.R;
  13 +import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo;
13 import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentUserManagerBinding; 14 import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentUserManagerBinding;
14 import com.cnlive.strike.xiaojiaspeaker.frame.presenter.UserManagerPresenter; 15 import com.cnlive.strike.xiaojiaspeaker.frame.presenter.UserManagerPresenter;
15 import com.cnlive.strike.xiaojiaspeaker.frame.view.UserManagerView; 16 import com.cnlive.strike.xiaojiaspeaker.frame.view.UserManagerView;
@@ -18,10 +19,13 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.UserManagerView; @@ -18,10 +19,13 @@ import com.cnlive.strike.xiaojiaspeaker.frame.view.UserManagerView;
18 * 使用者管理 19 * 使用者管理
19 */ 20 */
20 public class UserManagerFragment extends MvpBindingFragment<UserManagerView, UserManagerPresenter, Object, FragmentUserManagerBinding> { 21 public class UserManagerFragment extends MvpBindingFragment<UserManagerView, UserManagerPresenter, Object, FragmentUserManagerBinding> {
21 - private Button btn_invit;  
22 22
23 - public static UserManagerFragment newInstance() { 23 +
  24 + public static UserManagerFragment newInstance(String currentSelectFamilyId) {
24 UserManagerFragment fragment = new UserManagerFragment(); 25 UserManagerFragment fragment = new UserManagerFragment();
  26 + Bundle bundle = new Bundle();
  27 + bundle.putString("currentSelectFamilyId", currentSelectFamilyId);
  28 + fragment.setArguments(bundle);
25 return fragment; 29 return fragment;
26 } 30 }
27 31
@@ -41,11 +45,18 @@ public class UserManagerFragment extends MvpBindingFragment&lt;UserManagerView, Use @@ -41,11 +45,18 @@ public class UserManagerFragment extends MvpBindingFragment&lt;UserManagerView, Use
41 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 45 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
42 super.onViewCreated(view, savedInstanceState); 46 super.onViewCreated(view, savedInstanceState);
43 initTopBar(); 47 initTopBar();
44 -// getPresenter().getFamilyRole(getActivity(), "123456", XiaoJIaCommInfo.getFamilyId(getActivity()));  
45 - if (null != getMvpView()) {  
46 - getMvpView().initPopView();  
47 - getMvpView().initView(null); 48 + if (null != getArguments()) {
  49 + String currentSelectFamilyId = getArguments().getString("currentSelectFamilyId");
  50 + if (null != getMvpView()) {
  51 + if (null != currentSelectFamilyId) {
  52 + getMvpView().setCurrentSelectFamily(currentSelectFamilyId);
  53 + }
  54 + getMvpView().initPopView();
  55 +// getMvpView().initView(null);
  56 + }
48 } 57 }
  58 + getPresenter().getFamilyRole(getActivity(), XiaoJIaCommInfo.getUserId(getActivity()), XiaoJIaCommInfo.getFamilyId(getActivity()), XiaoJIaCommInfo.getUserPhone(getActivity()));
  59 +
49 } 60 }
50 61
51 private void initTopBar() { 62 private void initTopBar() {
@@ -60,18 +71,7 @@ public class UserManagerFragment extends MvpBindingFragment&lt;UserManagerView, Use @@ -60,18 +71,7 @@ public class UserManagerFragment extends MvpBindingFragment&lt;UserManagerView, Use
60 } 71 }
61 } 72 }
62 }); 73 });
63 - //添加邀请者按钮  
64 - btn_invit = binding.topbar.addRightTextButton("邀请使用者", R.id.rightBtn);  
65 - btn_invit.setTextSize(15);  
66 - btn_invit.setTextColor(ContextCompat.getColor(getContext(),R.color.color_282828));  
67 - btn_invit.setOnClickListener(new View.OnClickListener() {  
68 - @Override  
69 - public void onClick(View view) {  
70 - if (null != getMvpView()) {  
71 - getMvpView().showPop(btn_invit);  
72 - }  
73 - }  
74 - }); 74 +
75 } 75 }
76 } 76 }
77 } 77 }
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/widget/EditRoleDialog.java
@@ -19,6 +19,7 @@ import com.cnlive.strike.application.GlideApp; @@ -19,6 +19,7 @@ import com.cnlive.strike.application.GlideApp;
19 import com.cnlive.strike.xiaojiaspeaker.R; 19 import com.cnlive.strike.xiaojiaspeaker.R;
20 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo; 20 import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo;
21 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean; 21 import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean;
  22 +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean;
22 import com.cnlive.strike.xiaojiaspeaker.ui.adapter.SetRoleAdapter; 23 import com.cnlive.strike.xiaojiaspeaker.ui.adapter.SetRoleAdapter;
23 24
24 import java.util.List; 25 import java.util.List;
@@ -45,11 +46,17 @@ public class EditRoleDialog extends Dialog { @@ -45,11 +46,17 @@ public class EditRoleDialog extends Dialog {
45 private List<RoleInfo> roleInfoList; 46 private List<RoleInfo> roleInfoList;
46 private SetRoleAdapter setRoleAdapter; 47 private SetRoleAdapter setRoleAdapter;
47 private OnClickListener onClickListener; 48 private OnClickListener onClickListener;
48 - 49 + private String selectRole;
  50 + private String selectSid;
  51 + private String selectRoleName;
49 public void setOnClickListener(OnClickListener onClickListener) { 52 public void setOnClickListener(OnClickListener onClickListener) {
50 this.onClickListener = onClickListener; 53 this.onClickListener = onClickListener;
51 } 54 }
52 55
  56 + public SetRoleAdapter getSetRoleAdapter() {
  57 + return setRoleAdapter;
  58 + }
  59 +
53 public void setData(List<RoleInfo> roleInfoList, FamilyRoleBean.FamilyRoleListBean bean) { 60 public void setData(List<RoleInfo> roleInfoList, FamilyRoleBean.FamilyRoleListBean bean) {
54 setRoleAdapter = new SetRoleAdapter(context, roleInfoList); 61 setRoleAdapter = new SetRoleAdapter(context, roleInfoList);
55 setRoleAdapter.setGridCount(3); 62 setRoleAdapter.setGridCount(3);
@@ -58,6 +65,19 @@ public class EditRoleDialog extends Dialog { @@ -58,6 +65,19 @@ public class EditRoleDialog extends Dialog {
58 rv_role.setAdapter(setRoleAdapter); 65 rv_role.setAdapter(setRoleAdapter);
59 GlideApp.with(context).load(bean.getUserMsg().getImage()).placeholder(R.drawable.xiaojia_touxiang).into(iv_icon); 66 GlideApp.with(context).load(bean.getUserMsg().getImage()).placeholder(R.drawable.xiaojia_touxiang).into(iv_icon);
60 tv_user_name.setText(bean.getUserMsg().getNickName()); 67 tv_user_name.setText(bean.getUserMsg().getNickName());
  68 + setRoleAdapter.setOnDialogRoleClickListener(new SetRoleAdapter.OnDialogRoleClickListener() {
  69 + @Override
  70 + public void onCancel() {
  71 +
  72 + }
  73 +
  74 + @Override
  75 + public void onSelect(RoleNetBean.RoleListBean bean) {
  76 + selectSid = roleInfoList.get(bean.getParentPosition()).getUid();
  77 + selectRole = bean.getId() + "";
  78 + selectRoleName=bean.getRoleName();
  79 + }
  80 + });
61 } 81 }
62 82
63 public EditRoleDialog(@NonNull Context context) { 83 public EditRoleDialog(@NonNull Context context) {
@@ -93,7 +113,7 @@ public class EditRoleDialog extends Dialog { @@ -93,7 +113,7 @@ public class EditRoleDialog extends Dialog {
93 btn_cancel.setOnClickListener(new View.OnClickListener() { 113 btn_cancel.setOnClickListener(new View.OnClickListener() {
94 @Override 114 @Override
95 public void onClick(View view) { 115 public void onClick(View view) {
96 - if (null!=onClickListener){ 116 + if (null != onClickListener) {
97 onClickListener.onCancelClick(EditRoleDialog.this); 117 onClickListener.onCancelClick(EditRoleDialog.this);
98 } 118 }
99 } 119 }
@@ -101,8 +121,8 @@ public class EditRoleDialog extends Dialog { @@ -101,8 +121,8 @@ public class EditRoleDialog extends Dialog {
101 btn_ok.setOnClickListener(new View.OnClickListener() { 121 btn_ok.setOnClickListener(new View.OnClickListener() {
102 @Override 122 @Override
103 public void onClick(View view) { 123 public void onClick(View view) {
104 - if (null!=onClickListener){  
105 - onClickListener.onSaveClick(EditRoleDialog.this); 124 + if (null != onClickListener && null != setRoleAdapter) {
  125 + onClickListener.onSaveClick(EditRoleDialog.this, selectSid, selectRole,selectRoleName);
106 } 126 }
107 } 127 }
108 }); 128 });
@@ -111,7 +131,7 @@ public class EditRoleDialog extends Dialog { @@ -111,7 +131,7 @@ public class EditRoleDialog extends Dialog {
111 public interface OnClickListener { 131 public interface OnClickListener {
112 void onCancelClick(EditRoleDialog dialog); 132 void onCancelClick(EditRoleDialog dialog);
113 133
114 - void onSaveClick(EditRoleDialog dialog); 134 + void onSaveClick(EditRoleDialog dialog,String selectSid, String selectRole, String selectRoleName);
115 135
116 } 136 }
117 137
module_xiaojiaSoundBox/src/main/res/layout/activity_change_device_name.xml
@@ -3,85 +3,16 @@ @@ -3,85 +3,16 @@
3 xmlns:app="http://schemas.android.com/apk/res-auto" 3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"> 4 xmlns:tools="http://schemas.android.com/tools">
5 5
6 - <LinearLayout 6 + <RelativeLayout
7 android:layout_width="match_parent" 7 android:layout_width="match_parent"
8 android:layout_height="match_parent" 8 android:layout_height="match_parent"
9 android:orientation="vertical" 9 android:orientation="vertical"
10 - tools:context=".ui.activity.ChangeDeviceNameActivity"> 10 + tools:context=".ui.activity.AllDeviceActivity">
11 11
12 - <com.qmuiteam.qmui.widget.QMUITopBar  
13 - android:id="@+id/topbar" 12 + <RelativeLayout
  13 + android:id="@+id/fragment_container"
14 android:layout_width="match_parent" 14 android:layout_width="match_parent"
15 - android:layout_height="?attr/qmui_topbar_height"  
16 - android:background="@color/white" /> 15 + android:layout_height="match_parent"></RelativeLayout>
17 16
18 - <LinearLayout  
19 - android:layout_width="match_parent"  
20 - android:layout_height="50dp"  
21 - android:layout_marginLeft="10dp"  
22 - android:layout_marginTop="20dp"  
23 - android:gravity="center_vertical">  
24 -  
25 - <TextView  
26 - android:layout_width="wrap_content"  
27 - android:layout_height="wrap_content"  
28 - android:text="音箱名称"  
29 - android:textColor="@color/color_282828"  
30 - android:textSize="15sp"  
31 - android:textStyle="bold" />  
32 -  
33 - <EditText  
34 - android:id="@+id/et_name"  
35 - android:layout_width="0dp"  
36 - android:layout_height="match_parent"  
37 - android:layout_marginLeft="10dp"  
38 - android:layout_marginRight="10dp"  
39 - android:layout_weight="1"  
40 - android:background="@null"  
41 - android:maxLength="40"  
42 - android:hint="请输入要修改的名称"  
43 - android:textColor="@color/color_282828"  
44 - android:textSize="14sp" />  
45 -  
46 - <ImageView  
47 - android:id="@+id/iv_close"  
48 - android:layout_width="wrap_content"  
49 - android:layout_height="wrap_content"  
50 - android:layout_marginRight="20dp"  
51 - android:background="@drawable/icon_gray_close"  
52 - android:visibility="invisible" />  
53 - </LinearLayout>  
54 -  
55 - <View  
56 - android:layout_width="match_parent"  
57 - android:layout_height="1dp"  
58 - android:layout_marginLeft="10dp"  
59 - android:layout_marginRight="10dp"  
60 - android:background="@color/line" />  
61 -  
62 - <TextView  
63 - android:layout_width="wrap_content"  
64 - android:layout_height="wrap_content"  
65 - android:layout_marginLeft="10dp"  
66 - android:layout_marginTop="10dp"  
67 - android:text="40个字符以内,支持汉字、字母、数字或下划线"  
68 - android:textColor="@color/color_999999"  
69 - android:textSize="12sp" />  
70 -  
71 - <Button  
72 - android:id="@+id/btn_next"  
73 - android:layout_width="match_parent"  
74 - android:layout_height="40dp"  
75 - android:layout_alignParentBottom="true"  
76 - android:layout_centerHorizontal="true"  
77 - android:layout_marginLeft="30dp"  
78 - android:layout_marginTop="20dp"  
79 - android:layout_marginRight="30dp"  
80 - android:background="@drawable/shape_xiaojia_btn_gray"  
81 - android:clickable="false"  
82 - android:text="保存"  
83 - android:textColor="@color/white"  
84 - android:textSize="16sp"  
85 - android:textStyle="bold" />  
86 - </LinearLayout> 17 + </RelativeLayout>
87 </layout> 18 </layout>
88 \ No newline at end of file 19 \ No newline at end of file
module_xiaojiaSoundBox/src/main/res/layout/activity_device_manager.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <layout> 2 <layout>
3 3
4 - <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
5 - xmlns:app="http://schemas.android.com/apk/res-auto"  
6 - xmlns:tools="http://schemas.android.com/tools"  
7 - android:layout_width="match_parent"  
8 - android:layout_height="match_parent"  
9 - android:background="@color/color_F2F2F2"  
10 - android:orientation="vertical"  
11 - tools:context=".ui.activity.SearchDeviceActivity">  
12 -  
13 - <com.qmuiteam.qmui.widget.QMUITopBar  
14 - android:id="@+id/topbar" 4 +<!-- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"-->
  5 +<!-- xmlns:app="http://schemas.android.com/apk/res-auto"-->
  6 +<!-- xmlns:tools="http://schemas.android.com/tools"-->
  7 +<!-- android:layout_width="match_parent"-->
  8 +<!-- android:layout_height="match_parent"-->
  9 +<!-- android:background="@color/color_F2F2F2"-->
  10 +<!-- android:orientation="vertical"-->
  11 +<!-- tools:context=".ui.activity.SearchDeviceActivity">-->
  12 +
  13 +<!-- <com.qmuiteam.qmui.widget.QMUITopBar-->
  14 +<!-- android:id="@+id/topbar"-->
  15 +<!-- android:layout_width="match_parent"-->
  16 +<!-- android:layout_height="?attr/qmui_topbar_height" />-->
  17 +
  18 +<!-- <ScrollView-->
  19 +<!-- android:layout_width="match_parent"-->
  20 +<!-- android:layout_height="wrap_content"-->
  21 +<!-- android:layout_below="@id/topbar">-->
  22 +
  23 +<!-- <LinearLayout-->
  24 +<!-- android:layout_width="match_parent"-->
  25 +<!-- android:layout_height="wrap_content"-->
  26 +<!-- android:orientation="vertical">-->
  27 +<!-- &lt;!&ndash;音箱名称&ndash;&gt;-->
  28 +<!-- <LinearLayout-->
  29 +<!-- android:id="@+id/ll_device_name"-->
  30 +<!-- android:layout_width="match_parent"-->
  31 +<!-- android:layout_height="50dp"-->
  32 +<!-- android:layout_marginTop="10dp"-->
  33 +<!-- android:layout_marginBottom="10dp"-->
  34 +<!-- android:background="@drawable/selectable_item_white"-->
  35 +<!-- android:clickable="true">-->
  36 +
  37 +<!-- <LinearLayout-->
  38 +<!-- android:layout_width="wrap_content"-->
  39 +<!-- android:layout_height="match_parent"-->
  40 +<!-- android:gravity="center|left">-->
  41 +
  42 +<!-- <TextView-->
  43 +<!-- android:id="@+id/tv_menu_title"-->
  44 +<!-- android:layout_width="wrap_content"-->
  45 +<!-- android:layout_height="wrap_content"-->
  46 +<!-- android:layout_centerVertical="true"-->
  47 +<!-- android:layout_marginLeft="10dp"-->
  48 +<!-- android:layout_marginRight="10dp"-->
  49 +<!-- android:maxLines="1"-->
  50 +<!-- android:text="音箱名称"-->
  51 +<!-- android:textColor="@color/color_282828"-->
  52 +<!-- android:textSize="16sp" />-->
  53 +<!-- </LinearLayout>-->
  54 +
  55 +<!-- <LinearLayout-->
  56 +<!-- android:layout_width="0dp"-->
  57 +<!-- android:layout_height="match_parent"-->
  58 +<!-- android:layout_weight="1"-->
  59 +<!-- android:gravity="center|right">-->
  60 +
  61 +<!-- <TextView-->
  62 +<!-- android:id="@+id/tv_menu_detail"-->
  63 +<!-- android:layout_width="wrap_content"-->
  64 +<!-- android:layout_height="wrap_content"-->
  65 +<!-- android:layout_centerVertical="true"-->
  66 +<!-- android:layout_marginLeft="10dp"-->
  67 +<!-- android:layout_marginRight="10dp"-->
  68 +<!-- android:layout_toEndOf="@id/iv_right"-->
  69 +<!-- android:layout_toRightOf="@id/tv_menu_title"-->
  70 +<!-- android:gravity="center|right"-->
  71 +<!-- android:maxLines="1"-->
  72 +<!-- android:textColor="@color/color_C3C3C3"-->
  73 +<!-- android:textSize="14sp" />-->
  74 +
  75 +<!-- <ImageView-->
  76 +<!-- android:id="@+id/iv_right"-->
  77 +<!-- android:layout_width="7dp"-->
  78 +<!-- android:layout_height="13dp"-->
  79 +<!-- android:layout_marginRight="10dp"-->
  80 +<!-- android:background="@drawable/icon_item_right_arrow" />-->
  81 +
  82 +<!-- </LinearLayout>-->
  83 +
  84 +<!-- </LinearLayout>-->
  85 +<!-- &lt;!&ndash; WIFI设置&ndash;&gt;-->
  86 +<!-- <LinearLayout-->
  87 +<!-- android:id="@+id/ll_wifi_setting"-->
  88 +<!-- android:layout_width="match_parent"-->
  89 +<!-- android:layout_height="50dp"-->
  90 +<!-- android:layout_marginTop="10dp"-->
  91 +<!-- android:layout_marginBottom="10dp"-->
  92 +<!-- android:background="@drawable/selectable_item_white"-->
  93 +<!-- android:clickable="true">-->
  94 +
  95 +<!-- <LinearLayout-->
  96 +<!-- android:layout_width="wrap_content"-->
  97 +<!-- android:layout_height="match_parent"-->
  98 +<!-- android:gravity="center|left">-->
  99 +
  100 +<!-- <TextView-->
  101 +<!-- android:id="@+id/tv_wifi_title"-->
  102 +<!-- android:layout_width="wrap_content"-->
  103 +<!-- android:layout_height="wrap_content"-->
  104 +<!-- android:layout_centerVertical="true"-->
  105 +<!-- android:layout_marginLeft="10dp"-->
  106 +<!-- android:layout_marginRight="10dp"-->
  107 +<!-- android:maxLines="1"-->
  108 +<!-- android:text="WIFI设置"-->
  109 +<!-- android:textColor="@color/color_282828"-->
  110 +<!-- android:textSize="16sp" />-->
  111 +<!-- </LinearLayout>-->
  112 +
  113 +<!-- <LinearLayout-->
  114 +<!-- android:layout_width="0dp"-->
  115 +<!-- android:layout_height="match_parent"-->
  116 +<!-- android:layout_weight="1"-->
  117 +<!-- android:gravity="center|right">-->
  118 +
  119 +<!-- <TextView-->
  120 +<!-- android:id="@+id/tv_wifi_detail"-->
  121 +<!-- android:layout_width="wrap_content"-->
  122 +<!-- android:layout_height="wrap_content"-->
  123 +<!-- android:layout_centerVertical="true"-->
  124 +<!-- android:layout_marginLeft="10dp"-->
  125 +<!-- android:layout_marginRight="10dp"-->
  126 +<!-- android:layout_toEndOf="@id/iv_right"-->
  127 +<!-- android:layout_toRightOf="@id/tv_menu_title"-->
  128 +<!-- android:gravity="center|right"-->
  129 +<!-- android:maxLines="1"-->
  130 +<!-- android:textColor="@color/color_C3C3C3"-->
  131 +<!-- android:textSize="14sp" />-->
  132 +
  133 +<!-- <ImageView-->
  134 +<!-- android:layout_width="7dp"-->
  135 +<!-- android:layout_height="13dp"-->
  136 +<!-- android:layout_marginRight="10dp"-->
  137 +<!-- android:background="@drawable/icon_item_right_arrow" />-->
  138 +
  139 +<!-- </LinearLayout>-->
  140 +
  141 +<!-- </LinearLayout>-->
  142 +<!-- &lt;!&ndash; 设备信息&ndash;&gt;-->
  143 +<!-- <LinearLayout-->
  144 +<!-- android:id="@+id/ll_device_info"-->
  145 +<!-- android:layout_width="match_parent"-->
  146 +<!-- android:layout_height="50dp"-->
  147 +<!-- android:layout_marginTop="10dp"-->
  148 +<!-- android:layout_marginBottom="10dp"-->
  149 +<!-- android:background="@drawable/selectable_item_white"-->
  150 +<!-- android:clickable="true">-->
  151 +
  152 +<!-- <LinearLayout-->
  153 +<!-- android:layout_width="wrap_content"-->
  154 +<!-- android:layout_height="match_parent"-->
  155 +<!-- android:gravity="center|left">-->
  156 +
  157 +<!-- <TextView-->
  158 +<!-- android:id="@+id/tv_device_info"-->
  159 +<!-- android:layout_width="wrap_content"-->
  160 +<!-- android:layout_height="wrap_content"-->
  161 +<!-- android:layout_centerVertical="true"-->
  162 +<!-- android:layout_marginLeft="10dp"-->
  163 +<!-- android:layout_marginRight="10dp"-->
  164 +<!-- android:maxLines="1"-->
  165 +<!-- android:text="设备信息"-->
  166 +<!-- android:textColor="@color/color_282828"-->
  167 +<!-- android:textSize="16sp" />-->
  168 +<!-- </LinearLayout>-->
  169 +
  170 +<!-- <LinearLayout-->
  171 +<!-- android:layout_width="0dp"-->
  172 +<!-- android:layout_height="match_parent"-->
  173 +<!-- android:layout_weight="1"-->
  174 +<!-- android:gravity="center|right">-->
  175 +
  176 +<!-- <TextView-->
  177 +<!-- android:id="@+id/tv_device_info_detail"-->
  178 +<!-- android:layout_width="wrap_content"-->
  179 +<!-- android:layout_height="wrap_content"-->
  180 +<!-- android:layout_centerVertical="true"-->
  181 +<!-- android:layout_marginLeft="10dp"-->
  182 +<!-- android:layout_marginRight="10dp"-->
  183 +<!-- android:layout_toEndOf="@id/iv_right"-->
  184 +<!-- android:layout_toRightOf="@id/tv_menu_title"-->
  185 +<!-- android:gravity="center|right"-->
  186 +<!-- android:maxLines="1"-->
  187 +<!-- android:textColor="@color/color_C3C3C3"-->
  188 +<!-- android:textSize="14sp" />-->
  189 +
  190 +<!-- <ImageView-->
  191 +<!-- android:layout_width="7dp"-->
  192 +<!-- android:layout_height="13dp"-->
  193 +<!-- android:layout_marginRight="10dp"-->
  194 +<!-- android:background="@drawable/icon_item_right_arrow" />-->
  195 +
  196 +<!-- </LinearLayout>-->
  197 +
  198 +<!-- </LinearLayout>-->
  199 +<!-- &lt;!&ndash; 固件升级&ndash;&gt;-->
  200 +<!-- <LinearLayout-->
  201 +<!-- android:id="@+id/ll_device_update"-->
  202 +<!-- android:layout_width="match_parent"-->
  203 +<!-- android:layout_height="50dp"-->
  204 +<!-- android:layout_marginTop="10dp"-->
  205 +<!-- android:layout_marginBottom="10dp"-->
  206 +<!-- android:background="@drawable/selectable_item_white"-->
  207 +<!-- android:clickable="true">-->
  208 +
  209 +<!-- <LinearLayout-->
  210 +<!-- android:layout_width="wrap_content"-->
  211 +<!-- android:layout_height="match_parent"-->
  212 +<!-- android:gravity="center|left">-->
  213 +
  214 +<!-- <TextView-->
  215 +<!-- android:id="@+id/tv_device_update"-->
  216 +<!-- android:layout_width="wrap_content"-->
  217 +<!-- android:layout_height="wrap_content"-->
  218 +<!-- android:layout_centerVertical="true"-->
  219 +<!-- android:layout_marginLeft="10dp"-->
  220 +<!-- android:layout_marginRight="10dp"-->
  221 +<!-- android:maxLines="1"-->
  222 +<!-- android:text="固件升级"-->
  223 +<!-- android:textColor="@color/color_282828"-->
  224 +<!-- android:textSize="16sp" />-->
  225 +<!-- </LinearLayout>-->
  226 +
  227 +<!-- <LinearLayout-->
  228 +<!-- android:layout_width="0dp"-->
  229 +<!-- android:layout_height="match_parent"-->
  230 +<!-- android:layout_weight="1"-->
  231 +<!-- android:gravity="center|right">-->
  232 +
  233 +<!-- <TextView-->
  234 +<!-- android:id="@+id/tv_device_update_detail"-->
  235 +<!-- android:layout_width="wrap_content"-->
  236 +<!-- android:layout_height="wrap_content"-->
  237 +<!-- android:layout_centerVertical="true"-->
  238 +<!-- android:layout_marginLeft="10dp"-->
  239 +<!-- android:layout_marginRight="10dp"-->
  240 +<!-- android:layout_toEndOf="@id/iv_right"-->
  241 +<!-- android:layout_toRightOf="@id/tv_menu_title"-->
  242 +<!-- android:gravity="center|right"-->
  243 +<!-- android:maxLines="1"-->
  244 +<!-- android:textColor="@color/color_C3C3C3"-->
  245 +<!-- android:textSize="14sp" />-->
  246 +
  247 +<!-- <ImageView-->
  248 +<!-- android:layout_width="7dp"-->
  249 +<!-- android:layout_height="13dp"-->
  250 +<!-- android:layout_marginRight="10dp"-->
  251 +<!-- android:background="@drawable/icon_item_right_arrow" />-->
  252 +
  253 +<!-- </LinearLayout>-->
  254 +
  255 +<!-- </LinearLayout>-->
  256 +<!-- </LinearLayout>-->
  257 +<!-- </ScrollView>-->
  258 +
  259 +<!-- <TextView-->
  260 +<!-- android:layout_width="match_parent"-->
  261 +<!-- android:layout_height="60dp"-->
  262 +<!-- android:layout_alignParentBottom="true"-->
  263 +<!-- android:background="@drawable/selectable_item_white"-->
  264 +<!-- android:clickable="true"-->
  265 +<!-- android:gravity="center"-->
  266 +<!-- android:text="删除设备"-->
  267 +<!-- android:textColor="@color/color_EB3D3F"-->
  268 +<!-- android:textSize="15sp" />-->
  269 +<!-- &lt;!&ndash; <RelativeLayout&ndash;&gt;-->
  270 +<!-- &lt;!&ndash; android:id="@+id/fragment_container"&ndash;&gt;-->
  271 +<!-- &lt;!&ndash; android:layout_width="match_parent"&ndash;&gt;-->
  272 +<!-- &lt;!&ndash; android:layout_height="match_parent"></RelativeLayout>&ndash;&gt;-->
  273 +<!-- </RelativeLayout>-->
  274 + <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  275 + xmlns:app="http://schemas.android.com/apk/res-auto"
  276 + xmlns:tools="http://schemas.android.com/tools"
15 android:layout_width="match_parent" 277 android:layout_width="match_parent"
16 - android:layout_height="?attr/qmui_topbar_height" /> 278 + android:layout_height="match_parent"
  279 + android:orientation="vertical"
  280 + tools:context=".ui.activity.AllDeviceActivity">
17 281
18 - <ScrollView  
19 - android:layout_width="match_parent"  
20 - android:layout_height="wrap_content"  
21 - android:layout_below="@id/topbar">  
22 -  
23 - <LinearLayout 282 + <RelativeLayout
  283 + android:id="@+id/fragment_container"
24 android:layout_width="match_parent" 284 android:layout_width="match_parent"
25 - android:layout_height="wrap_content"  
26 - android:orientation="vertical">  
27 - <!--音箱名称-->  
28 - <LinearLayout  
29 - android:id="@+id/ll_device_name"  
30 - android:layout_width="match_parent"  
31 - android:layout_height="50dp"  
32 - android:layout_marginTop="10dp"  
33 - android:layout_marginBottom="10dp"  
34 - android:background="@drawable/selectable_item_white"  
35 - android:clickable="true">  
36 -  
37 - <LinearLayout  
38 - android:layout_width="wrap_content"  
39 - android:layout_height="match_parent"  
40 - android:gravity="center|left">  
41 -  
42 - <TextView  
43 - android:id="@+id/tv_menu_title"  
44 - android:layout_width="wrap_content"  
45 - android:layout_height="wrap_content"  
46 - android:layout_centerVertical="true"  
47 - android:layout_marginLeft="10dp"  
48 - android:layout_marginRight="10dp"  
49 - android:maxLines="1"  
50 - android:text="音箱名称"  
51 - android:textColor="@color/color_282828"  
52 - android:textSize="16sp" />  
53 - </LinearLayout>  
54 -  
55 - <LinearLayout  
56 - android:layout_width="0dp"  
57 - android:layout_height="match_parent"  
58 - android:layout_weight="1"  
59 - android:gravity="center|right">  
60 -  
61 - <TextView  
62 - android:id="@+id/tv_menu_detail"  
63 - android:layout_width="wrap_content"  
64 - android:layout_height="wrap_content"  
65 - android:layout_centerVertical="true"  
66 - android:layout_marginLeft="10dp"  
67 - android:layout_marginRight="10dp"  
68 - android:layout_toEndOf="@id/iv_right"  
69 - android:layout_toRightOf="@id/tv_menu_title"  
70 - android:gravity="center|right"  
71 - android:maxLines="1"  
72 - android:textColor="@color/color_C3C3C3"  
73 - android:textSize="14sp" />  
74 -  
75 - <ImageView  
76 - android:id="@+id/iv_right"  
77 - android:layout_width="7dp"  
78 - android:layout_height="13dp"  
79 - android:layout_marginRight="10dp"  
80 - android:background="@drawable/icon_item_right_arrow" />  
81 -  
82 - </LinearLayout>  
83 -  
84 - </LinearLayout>  
85 - <!-- WIFI设置-->  
86 - <LinearLayout  
87 - android:id="@+id/ll_wifi_setting"  
88 - android:layout_width="match_parent"  
89 - android:layout_height="50dp"  
90 - android:layout_marginTop="10dp"  
91 - android:layout_marginBottom="10dp"  
92 - android:background="@drawable/selectable_item_white"  
93 - android:clickable="true">  
94 -  
95 - <LinearLayout  
96 - android:layout_width="wrap_content"  
97 - android:layout_height="match_parent"  
98 - android:gravity="center|left">  
99 -  
100 - <TextView  
101 - android:id="@+id/tv_wifi_title"  
102 - android:layout_width="wrap_content"  
103 - android:layout_height="wrap_content"  
104 - android:layout_centerVertical="true"  
105 - android:layout_marginLeft="10dp"  
106 - android:layout_marginRight="10dp"  
107 - android:maxLines="1"  
108 - android:text="WIFI设置"  
109 - android:textColor="@color/color_282828"  
110 - android:textSize="16sp" />  
111 - </LinearLayout>  
112 -  
113 - <LinearLayout  
114 - android:layout_width="0dp"  
115 - android:layout_height="match_parent"  
116 - android:layout_weight="1"  
117 - android:gravity="center|right">  
118 -  
119 - <TextView  
120 - android:id="@+id/tv_wifi_detail"  
121 - android:layout_width="wrap_content"  
122 - android:layout_height="wrap_content"  
123 - android:layout_centerVertical="true"  
124 - android:layout_marginLeft="10dp"  
125 - android:layout_marginRight="10dp"  
126 - android:layout_toEndOf="@id/iv_right"  
127 - android:layout_toRightOf="@id/tv_menu_title"  
128 - android:gravity="center|right"  
129 - android:maxLines="1"  
130 - android:textColor="@color/color_C3C3C3"  
131 - android:textSize="14sp" />  
132 -  
133 - <ImageView  
134 - android:layout_width="7dp"  
135 - android:layout_height="13dp"  
136 - android:layout_marginRight="10dp"  
137 - android:background="@drawable/icon_item_right_arrow" />  
138 -  
139 - </LinearLayout>  
140 -  
141 - </LinearLayout>  
142 - <!-- 设备信息-->  
143 - <LinearLayout  
144 - android:id="@+id/ll_device_info"  
145 - android:layout_width="match_parent"  
146 - android:layout_height="50dp"  
147 - android:layout_marginTop="10dp"  
148 - android:layout_marginBottom="10dp"  
149 - android:background="@drawable/selectable_item_white"  
150 - android:clickable="true">  
151 -  
152 - <LinearLayout  
153 - android:layout_width="wrap_content"  
154 - android:layout_height="match_parent"  
155 - android:gravity="center|left">  
156 -  
157 - <TextView  
158 - android:id="@+id/tv_device_info"  
159 - android:layout_width="wrap_content"  
160 - android:layout_height="wrap_content"  
161 - android:layout_centerVertical="true"  
162 - android:layout_marginLeft="10dp"  
163 - android:layout_marginRight="10dp"  
164 - android:maxLines="1"  
165 - android:text="设备信息"  
166 - android:textColor="@color/color_282828"  
167 - android:textSize="16sp" />  
168 - </LinearLayout>  
169 -  
170 - <LinearLayout  
171 - android:layout_width="0dp"  
172 - android:layout_height="match_parent"  
173 - android:layout_weight="1"  
174 - android:gravity="center|right">  
175 -  
176 - <TextView  
177 - android:id="@+id/tv_device_info_detail"  
178 - android:layout_width="wrap_content"  
179 - android:layout_height="wrap_content"  
180 - android:layout_centerVertical="true"  
181 - android:layout_marginLeft="10dp"  
182 - android:layout_marginRight="10dp"  
183 - android:layout_toEndOf="@id/iv_right"  
184 - android:layout_toRightOf="@id/tv_menu_title"  
185 - android:gravity="center|right"  
186 - android:maxLines="1"  
187 - android:textColor="@color/color_C3C3C3"  
188 - android:textSize="14sp" />  
189 -  
190 - <ImageView  
191 - android:layout_width="7dp"  
192 - android:layout_height="13dp"  
193 - android:layout_marginRight="10dp"  
194 - android:background="@drawable/icon_item_right_arrow" />  
195 -  
196 - </LinearLayout>  
197 -  
198 - </LinearLayout>  
199 - <!-- 固件升级-->  
200 - <LinearLayout  
201 - android:id="@+id/ll_device_update"  
202 - android:layout_width="match_parent"  
203 - android:layout_height="50dp"  
204 - android:layout_marginTop="10dp"  
205 - android:layout_marginBottom="10dp"  
206 - android:background="@drawable/selectable_item_white"  
207 - android:clickable="true">  
208 -  
209 - <LinearLayout  
210 - android:layout_width="wrap_content"  
211 - android:layout_height="match_parent"  
212 - android:gravity="center|left">  
213 -  
214 - <TextView  
215 - android:id="@+id/tv_device_update"  
216 - android:layout_width="wrap_content"  
217 - android:layout_height="wrap_content"  
218 - android:layout_centerVertical="true"  
219 - android:layout_marginLeft="10dp"  
220 - android:layout_marginRight="10dp"  
221 - android:maxLines="1"  
222 - android:text="固件升级"  
223 - android:textColor="@color/color_282828"  
224 - android:textSize="16sp" />  
225 - </LinearLayout>  
226 -  
227 - <LinearLayout  
228 - android:layout_width="0dp"  
229 - android:layout_height="match_parent"  
230 - android:layout_weight="1"  
231 - android:gravity="center|right">  
232 -  
233 - <TextView  
234 - android:id="@+id/tv_device_update_detail"  
235 - android:layout_width="wrap_content"  
236 - android:layout_height="wrap_content"  
237 - android:layout_centerVertical="true"  
238 - android:layout_marginLeft="10dp"  
239 - android:layout_marginRight="10dp"  
240 - android:layout_toEndOf="@id/iv_right"  
241 - android:layout_toRightOf="@id/tv_menu_title"  
242 - android:gravity="center|right"  
243 - android:maxLines="1"  
244 - android:textColor="@color/color_C3C3C3"  
245 - android:textSize="14sp" />  
246 -  
247 - <ImageView  
248 - android:layout_width="7dp"  
249 - android:layout_height="13dp"  
250 - android:layout_marginRight="10dp"  
251 - android:background="@drawable/icon_item_right_arrow" />  
252 -  
253 - </LinearLayout>  
254 -  
255 - </LinearLayout>  
256 - </LinearLayout>  
257 - </ScrollView>  
258 -  
259 - <TextView  
260 - android:layout_width="match_parent"  
261 - android:layout_height="60dp"  
262 - android:layout_alignParentBottom="true"  
263 - android:background="@drawable/selectable_item_white"  
264 - android:clickable="true"  
265 - android:gravity="center"  
266 - android:text="删除设备"  
267 - android:textColor="@color/color_EB3D3F"  
268 - android:textSize="15sp" />  
269 - <!-- <RelativeLayout-->  
270 - <!-- android:id="@+id/fragment_container"-->  
271 - <!-- android:layout_width="match_parent"-->  
272 - <!-- android:layout_height="match_parent"></RelativeLayout>-->  
273 - </RelativeLayout> 285 + android:layout_height="match_parent"></RelativeLayout>
  286 +
  287 + </RelativeLayout>
274 </layout> 288 </layout>
275 \ No newline at end of file 289 \ No newline at end of file
module_xiaojiaSoundBox/src/main/res/layout/fragment_change_device_name.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<layout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + xmlns:tools="http://schemas.android.com/tools">
  5 +
  6 + <LinearLayout
  7 + android:layout_width="match_parent"
  8 + android:layout_height="match_parent"
  9 + android:orientation="vertical"
  10 + tools:context=".ui.activity.ChangeDeviceNameActivity">
  11 +
  12 + <com.qmuiteam.qmui.widget.QMUITopBar
  13 + android:id="@+id/topbar"
  14 + android:layout_width="match_parent"
  15 + android:layout_height="?attr/qmui_topbar_height"
  16 + android:background="@color/white" />
  17 +
  18 + <LinearLayout
  19 + android:layout_width="match_parent"
  20 + android:layout_height="50dp"
  21 + android:layout_marginLeft="10dp"
  22 + android:layout_marginTop="20dp"
  23 + android:gravity="center_vertical">
  24 +
  25 + <TextView
  26 + android:layout_width="wrap_content"
  27 + android:layout_height="wrap_content"
  28 + android:text="音箱名称"
  29 + android:textColor="@color/color_282828"
  30 + android:textSize="15sp"
  31 + android:textStyle="bold" />
  32 +
  33 + <EditText
  34 + android:id="@+id/et_name"
  35 + android:layout_width="0dp"
  36 + android:layout_height="match_parent"
  37 + android:layout_marginLeft="10dp"
  38 + android:layout_marginRight="10dp"
  39 + android:layout_weight="1"
  40 + android:background="@null"
  41 + android:maxLength="40"
  42 + android:hint="请输入要修改的名称"
  43 + android:textColor="@color/color_282828"
  44 + android:textSize="14sp" />
  45 +
  46 + <ImageView
  47 + android:id="@+id/iv_close"
  48 + android:layout_width="wrap_content"
  49 + android:layout_height="wrap_content"
  50 + android:layout_marginRight="20dp"
  51 + android:background="@drawable/icon_gray_close"
  52 + android:visibility="invisible" />
  53 + </LinearLayout>
  54 +
  55 + <View
  56 + android:layout_width="match_parent"
  57 + android:layout_height="1dp"
  58 + android:layout_marginLeft="10dp"
  59 + android:layout_marginRight="10dp"
  60 + android:background="@color/line" />
  61 +
  62 + <TextView
  63 + android:layout_width="wrap_content"
  64 + android:layout_height="wrap_content"
  65 + android:layout_marginLeft="10dp"
  66 + android:layout_marginTop="10dp"
  67 + android:text="40个字符以内,支持汉字、字母、数字或下划线"
  68 + android:textColor="@color/color_999999"
  69 + android:textSize="12sp" />
  70 +
  71 + <Button
  72 + android:id="@+id/btn_next"
  73 + android:layout_width="match_parent"
  74 + android:layout_height="40dp"
  75 + android:layout_alignParentBottom="true"
  76 + android:layout_centerHorizontal="true"
  77 + android:layout_marginLeft="30dp"
  78 + android:layout_marginTop="20dp"
  79 + android:layout_marginRight="30dp"
  80 + android:background="@drawable/shape_xiaojia_btn_gray"
  81 + android:clickable="false"
  82 + android:text="保存"
  83 + android:textColor="@color/white"
  84 + android:textSize="16sp"
  85 + android:textStyle="bold" />
  86 + </LinearLayout>
  87 +</layout>
0 \ No newline at end of file 88 \ No newline at end of file
module_xiaojiaSoundBox/src/main/res/layout/fragment_device_manager.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <layout xmlns:android="http://schemas.android.com/apk/res/android" 2 <layout xmlns:android="http://schemas.android.com/apk/res/android"
3 - xmlns:app="http://schemas.android.com/apk/res-auto"> 3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + xmlns:tools="http://schemas.android.com/tools">
4 5
5 <LinearLayout 6 <LinearLayout
6 android:layout_width="match_parent" 7 android:layout_width="match_parent"
7 android:layout_height="match_parent" 8 android:layout_height="match_parent"
8 - android:background="@color/color_F2F2F2"  
9 android:orientation="vertical"> 9 android:orientation="vertical">
10 10
11 <com.qmuiteam.qmui.widget.QMUITopBar 11 <com.qmuiteam.qmui.widget.QMUITopBar
12 android:id="@+id/topbar" 12 android:id="@+id/topbar"
13 android:layout_width="match_parent" 13 android:layout_width="match_parent"
14 android:layout_height="?attr/qmui_topbar_height" /> 14 android:layout_height="?attr/qmui_topbar_height" />
  15 + <!-- <LinearLayout-->
  16 + <!-- android:layout_width="match_parent"-->
  17 + <!-- android:layout_height="match_parent"-->
  18 + <!-- android:background="@color/color_F2F2F2"-->
  19 + <!-- android:orientation="vertical">-->
15 20
16 - <android.support.v7.widget.RecyclerView  
17 - android:id="@+id/rv_menu"  
18 - android:layout_width="match_parent"  
19 - android:layout_height="0dp"  
20 - android:layout_weight="1"  
21 - android:overScrollMode="never" /> 21 + <!-- <com.qmuiteam.qmui.widget.QMUITopBar-->
  22 + <!-- android:id="@+id/topbar"-->
  23 + <!-- android:layout_width="match_parent"-->
  24 + <!-- android:layout_height="?attr/qmui_topbar_height" />-->
22 25
23 - <View  
24 - android:layout_width="match_parent"  
25 - android:layout_height="1dp"  
26 - android:background="@color/line_15" /> 26 + <!-- <android.support.v7.widget.RecyclerView-->
  27 + <!-- android:id="@+id/rv_menu"-->
  28 + <!-- android:layout_width="match_parent"-->
  29 + <!-- android:layout_height="0dp"-->
  30 + <!-- android:layout_weight="1"-->
  31 + <!-- android:overScrollMode="never" />-->
  32 +
  33 + <!-- <View-->
  34 + <!-- android:layout_width="match_parent"-->
  35 + <!-- android:layout_height="1dp"-->
  36 + <!-- android:background="@color/line_15" />-->
  37 +
  38 + <!-- <TextView-->
  39 + <!-- android:layout_width="match_parent"-->
  40 + <!-- android:layout_height="60dp"-->
  41 + <!-- android:background="@drawable/selectable_item_white"-->
  42 + <!-- android:gravity="center"-->
  43 + <!-- android:text="删除设备"-->
  44 + <!-- android:clickable="true"-->
  45 + <!-- android:textColor="@color/color_EB3D3F"-->
  46 + <!-- android:textSize="15sp" />-->
  47 +
  48 + <!-- </LinearLayout>-->
27 49
28 - <TextView 50 + <FrameLayout
29 android:layout_width="match_parent" 51 android:layout_width="match_parent"
30 - android:layout_height="60dp"  
31 - android:background="@drawable/selectable_item_white"  
32 - android:gravity="center"  
33 - android:text="删除设备"  
34 - android:clickable="true"  
35 - android:textColor="@color/color_EB3D3F"  
36 - android:textSize="15sp" /> 52 + android:layout_height="match_parent">
  53 +
  54 + <RelativeLayout
  55 + android:layout_width="match_parent"
  56 + android:layout_height="match_parent"
  57 + android:background="@color/color_F2F2F2"
  58 + android:orientation="vertical"
  59 + tools:context=".ui.activity.SearchDeviceActivity">
  60 +
  61 +
  62 + <ScrollView
  63 + android:layout_width="match_parent"
  64 + android:layout_height="wrap_content">
  65 +
  66 + <LinearLayout
  67 + android:layout_width="match_parent"
  68 + android:layout_height="wrap_content"
  69 + android:orientation="vertical">
  70 + <!--音箱名称-->
  71 + <LinearLayout
  72 + android:id="@+id/ll_device_name"
  73 + android:layout_width="match_parent"
  74 + android:layout_height="50dp"
  75 + android:layout_marginTop="10dp"
  76 + android:layout_marginBottom="10dp"
  77 + android:background="@drawable/selectable_item_white"
  78 + android:clickable="true">
  79 +
  80 + <LinearLayout
  81 + android:layout_width="wrap_content"
  82 + android:layout_height="match_parent"
  83 + android:gravity="center|left">
  84 +
  85 + <TextView
  86 + android:id="@+id/tv_menu_title"
  87 + android:layout_width="wrap_content"
  88 + android:layout_height="wrap_content"
  89 + android:layout_centerVertical="true"
  90 + android:layout_marginLeft="10dp"
  91 + android:layout_marginRight="10dp"
  92 + android:maxLines="1"
  93 + android:text="音箱名称"
  94 + android:textColor="@color/color_282828"
  95 + android:textSize="16sp" />
  96 + </LinearLayout>
  97 +
  98 + <LinearLayout
  99 + android:layout_width="0dp"
  100 + android:layout_height="match_parent"
  101 + android:layout_weight="1"
  102 + android:gravity="center|right">
  103 +
  104 + <TextView
  105 + android:id="@+id/tv_device_name"
  106 + android:layout_width="wrap_content"
  107 + android:layout_height="wrap_content"
  108 + android:layout_centerVertical="true"
  109 + android:layout_marginLeft="10dp"
  110 + android:layout_marginRight="10dp"
  111 + android:layout_toEndOf="@id/iv_right"
  112 + android:layout_toRightOf="@id/tv_menu_title"
  113 + android:gravity="center|right"
  114 + android:maxLines="1"
  115 + android:textColor="@color/color_C3C3C3"
  116 + android:textSize="14sp" />
  117 +
  118 + <ImageView
  119 + android:id="@+id/iv_right"
  120 + android:layout_width="7dp"
  121 + android:layout_height="13dp"
  122 + android:layout_marginRight="10dp"
  123 + android:background="@drawable/icon_item_right_arrow" />
  124 +
  125 + </LinearLayout>
  126 +
  127 + </LinearLayout>
  128 + <!-- WIFI设置-->
  129 + <LinearLayout
  130 + android:id="@+id/ll_wifi_setting"
  131 + android:layout_width="match_parent"
  132 + android:layout_height="50dp"
  133 + android:layout_marginTop="10dp"
  134 + android:layout_marginBottom="10dp"
  135 + android:background="@drawable/selectable_item_white"
  136 + android:clickable="true">
  137 +
  138 + <LinearLayout
  139 + android:layout_width="wrap_content"
  140 + android:layout_height="match_parent"
  141 + android:gravity="center|left">
  142 +
  143 + <TextView
  144 + android:layout_width="wrap_content"
  145 + android:layout_height="wrap_content"
  146 + android:layout_centerVertical="true"
  147 + android:layout_marginLeft="10dp"
  148 + android:layout_marginRight="10dp"
  149 + android:maxLines="1"
  150 + android:text="WIFI设置"
  151 + android:textColor="@color/color_282828"
  152 + android:textSize="16sp" />
  153 + </LinearLayout>
  154 +
  155 + <LinearLayout
  156 + android:layout_width="0dp"
  157 + android:layout_height="match_parent"
  158 + android:layout_weight="1"
  159 + android:gravity="center|right">
  160 +
  161 + <TextView
  162 + android:id="@+id/tv_wifi_name"
  163 + android:layout_width="wrap_content"
  164 + android:layout_height="wrap_content"
  165 + android:layout_centerVertical="true"
  166 + android:layout_marginLeft="10dp"
  167 + android:layout_marginRight="10dp"
  168 + android:layout_toEndOf="@id/iv_right"
  169 + android:layout_toRightOf="@id/tv_menu_title"
  170 + android:gravity="center|right"
  171 + android:maxLines="1"
  172 + android:textColor="@color/color_C3C3C3"
  173 + android:textSize="14sp" />
  174 +
  175 + <ImageView
  176 + android:layout_width="7dp"
  177 + android:layout_height="13dp"
  178 + android:layout_marginRight="10dp"
  179 + android:background="@drawable/icon_item_right_arrow" />
  180 +
  181 + </LinearLayout>
  182 +
  183 + </LinearLayout>
  184 + <!-- 设备信息-->
  185 + <LinearLayout
  186 + android:id="@+id/ll_device_info"
  187 + android:layout_width="match_parent"
  188 + android:layout_height="50dp"
  189 + android:layout_marginTop="10dp"
  190 + android:layout_marginBottom="10dp"
  191 + android:background="@drawable/selectable_item_white"
  192 + android:clickable="true">
  193 +
  194 + <LinearLayout
  195 + android:layout_width="wrap_content"
  196 + android:layout_height="match_parent"
  197 + android:gravity="center|left">
  198 +
  199 + <TextView
  200 + android:id="@+id/tv_device_info"
  201 + android:layout_width="wrap_content"
  202 + android:layout_height="wrap_content"
  203 + android:layout_centerVertical="true"
  204 + android:layout_marginLeft="10dp"
  205 + android:layout_marginRight="10dp"
  206 + android:maxLines="1"
  207 + android:text="设备信息"
  208 + android:textColor="@color/color_282828"
  209 + android:textSize="16sp" />
  210 + </LinearLayout>
  211 +
  212 + <LinearLayout
  213 + android:layout_width="0dp"
  214 + android:layout_height="match_parent"
  215 + android:layout_weight="1"
  216 + android:gravity="center|right">
  217 +
  218 + <TextView
  219 + android:id="@+id/tv_device_info_detail"
  220 + android:layout_width="wrap_content"
  221 + android:layout_height="wrap_content"
  222 + android:layout_centerVertical="true"
  223 + android:layout_marginLeft="10dp"
  224 + android:layout_marginRight="10dp"
  225 + android:layout_toEndOf="@id/iv_right"
  226 + android:layout_toRightOf="@id/tv_menu_title"
  227 + android:gravity="center|right"
  228 + android:maxLines="1"
  229 + android:textColor="@color/color_C3C3C3"
  230 + android:textSize="14sp" />
  231 +
  232 + <ImageView
  233 + android:layout_width="7dp"
  234 + android:layout_height="13dp"
  235 + android:layout_marginRight="10dp"
  236 + android:background="@drawable/icon_item_right_arrow" />
  237 +
  238 + </LinearLayout>
  239 +
  240 + </LinearLayout>
  241 + <!-- 固件升级-->
  242 + <LinearLayout
  243 + android:id="@+id/ll_device_update"
  244 + android:layout_width="match_parent"
  245 + android:layout_height="50dp"
  246 + android:layout_marginTop="10dp"
  247 + android:layout_marginBottom="10dp"
  248 + android:background="@drawable/selectable_item_white"
  249 + android:clickable="true">
  250 +
  251 + <LinearLayout
  252 + android:layout_width="wrap_content"
  253 + android:layout_height="match_parent"
  254 + android:gravity="center|left">
  255 +
  256 + <TextView
  257 + android:id="@+id/tv_device_update"
  258 + android:layout_width="wrap_content"
  259 + android:layout_height="wrap_content"
  260 + android:layout_centerVertical="true"
  261 + android:layout_marginLeft="10dp"
  262 + android:layout_marginRight="10dp"
  263 + android:maxLines="1"
  264 + android:text="固件升级"
  265 + android:textColor="@color/color_282828"
  266 + android:textSize="16sp" />
  267 + </LinearLayout>
  268 +
  269 + <LinearLayout
  270 + android:layout_width="0dp"
  271 + android:layout_height="match_parent"
  272 + android:layout_weight="1"
  273 + android:gravity="center|right">
  274 +
  275 + <TextView
  276 + android:id="@+id/tv_current_version"
  277 + android:layout_width="wrap_content"
  278 + android:layout_height="wrap_content"
  279 + android:layout_centerVertical="true"
  280 + android:layout_marginLeft="10dp"
  281 + android:layout_marginRight="10dp"
  282 + android:layout_toEndOf="@id/iv_right"
  283 + android:layout_toRightOf="@id/tv_menu_title"
  284 + android:gravity="center|right"
  285 + android:maxLines="1"
  286 + android:textColor="@color/color_C3C3C3"
  287 + android:textSize="14sp" />
  288 +
  289 + <ImageView
  290 + android:layout_width="7dp"
  291 + android:layout_height="13dp"
  292 + android:layout_marginRight="10dp"
  293 + android:background="@drawable/icon_item_right_arrow" />
  294 +
  295 + </LinearLayout>
  296 +
  297 + </LinearLayout>
  298 + </LinearLayout>
  299 + </ScrollView>
  300 +
  301 + <TextView
  302 + android:layout_width="match_parent"
  303 + android:layout_height="60dp"
  304 + android:layout_alignParentBottom="true"
  305 + android:background="@drawable/selectable_item_white"
  306 + android:clickable="true"
  307 + android:gravity="center"
  308 + android:text="删除设备"
  309 + android:textColor="@color/color_EB3D3F"
  310 + android:textSize="15sp" />
  311 + <!-- <RelativeLayout-->
  312 + <!-- android:id="@+id/fragment_container"-->
  313 + <!-- android:layout_width="match_parent"-->
  314 + <!-- android:layout_height="match_parent"></RelativeLayout>-->
  315 + </RelativeLayout>
  316 +
  317 + <com.cnlive.strike.ui.widget.UIEmptyView
  318 + android:id="@+id/empty_layout"
  319 + android:layout_width="match_parent"
  320 + android:layout_height="match_parent"
  321 + android:background="@color/color_fff"
  322 + android:visibility="gone" />
  323 + </FrameLayout>
37 324
38 </LinearLayout> 325 </LinearLayout>
39 </layout> 326 </layout>
40 \ No newline at end of file 327 \ No newline at end of file
module_xiaojiaSoundBox/src/main/res/layout/fragment_user_manager.xml
@@ -55,10 +55,12 @@ @@ -55,10 +55,12 @@
55 android:layout_weight="1" /> 55 android:layout_weight="1" />
56 56
57 <LinearLayout 57 <LinearLayout
  58 + android:id="@+id/ll_btn"
58 android:layout_width="match_parent" 59 android:layout_width="match_parent"
59 android:layout_height="wrap_content" 60 android:layout_height="wrap_content"
60 android:gravity="center" 61 android:gravity="center"
61 - android:orientation="vertical"> 62 + android:orientation="vertical"
  63 + android:visibility="gone">
62 64
63 <Button 65 <Button
64 android:id="@+id/btn_invit_friend" 66 android:id="@+id/btn_invit_friend"