Commit 7e24ab480629a9163d8c0ee047e832a975de3726
1 parent
8db8e71e
1 完成二维码分享界面搭建
Showing
28 changed files
with
787 additions
and
59 deletions
app/src/main/AndroidManifest.xml
| @@ -3,12 +3,13 @@ | @@ -3,12 +3,13 @@ | ||
| 3 | package="com.cnlive.strike.speaker"> | 3 | package="com.cnlive.strike.speaker"> |
| 4 | 4 | ||
| 5 | <application | 5 | <application |
| 6 | + android:name="com.cnlive.strike.xiaojiaspeaker.MyApp" | ||
| 6 | android:allowBackup="true" | 7 | android:allowBackup="true" |
| 7 | android:icon="@mipmap/ic_launcher" | 8 | android:icon="@mipmap/ic_launcher" |
| 8 | android:label="@string/app_name" | 9 | android:label="@string/app_name" |
| 10 | + android:networkSecurityConfig="@xml/network_security_config" | ||
| 9 | android:roundIcon="@mipmap/ic_launcher_round" | 11 | android:roundIcon="@mipmap/ic_launcher_round" |
| 10 | android:supportsRtl="true" | 12 | android:supportsRtl="true" |
| 11 | - android:networkSecurityConfig="@xml/network_security_config" | ||
| 12 | android:theme="@style/AppTheme"> | 13 | android:theme="@style/AppTheme"> |
| 13 | <activity android:name="com.cnlive.strike.xiaojiaspeaker.ToolBarTestActivity"></activity> | 14 | <activity android:name="com.cnlive.strike.xiaojiaspeaker.ToolBarTestActivity"></activity> |
| 14 | <activity android:name="com.cnlive.strike.xiaojiaspeaker.MainActivity"> | 15 | <activity android:name="com.cnlive.strike.xiaojiaspeaker.MainActivity"> |
app/src/main/java/com/cnlive/strike/xiaojiaspeaker/MainActivity.java
| @@ -5,6 +5,7 @@ import android.content.Intent; | @@ -5,6 +5,7 @@ import android.content.Intent; | ||
| 5 | import android.os.Bundle; | 5 | import android.os.Bundle; |
| 6 | import android.support.v7.app.AppCompatActivity; | 6 | import android.support.v7.app.AppCompatActivity; |
| 7 | 7 | ||
| 8 | +import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo; | ||
| 8 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.AllDeviceActivity; | 9 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.AllDeviceActivity; |
| 9 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.BlueToothStep1Activity; | 10 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.BlueToothStep1Activity; |
| 10 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.BluetoothConnActivity; | 11 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.BluetoothConnActivity; |
| @@ -12,6 +13,7 @@ import com.cnlive.strike.xiaojiaspeaker.ui.activity.ConnBluetoothSuccessActivity | @@ -12,6 +13,7 @@ import com.cnlive.strike.xiaojiaspeaker.ui.activity.ConnBluetoothSuccessActivity | ||
| 12 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.DeviceInstructionActivity; | 13 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.DeviceInstructionActivity; |
| 13 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.DeviceManagerActivity; | 14 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.DeviceManagerActivity; |
| 14 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.FirmwareUpdateActivity; | 15 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.FirmwareUpdateActivity; |
| 16 | +import com.cnlive.strike.xiaojiaspeaker.ui.activity.InvitFriendActivity; | ||
| 15 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.SearchDeviceActivity; | 17 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.SearchDeviceActivity; |
| 16 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.SelectIMFriendActivity; | 18 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.SelectIMFriendActivity; |
| 17 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.SelectWifiActivity; | 19 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.SelectWifiActivity; |
| @@ -19,10 +21,12 @@ import com.cnlive.strike.xiaojiaspeaker.ui.activity.SpeakerMainActivity; | @@ -19,10 +21,12 @@ import com.cnlive.strike.xiaojiaspeaker.ui.activity.SpeakerMainActivity; | ||
| 19 | 21 | ||
| 20 | public class MainActivity extends AppCompatActivity { | 22 | public class MainActivity extends AppCompatActivity { |
| 21 | private static final String TAG = "MainActivity"; | 23 | private static final String TAG = "MainActivity"; |
| 24 | + | ||
| 22 | @Override | 25 | @Override |
| 23 | protected void onCreate(Bundle savedInstanceState) { | 26 | protected void onCreate(Bundle savedInstanceState) { |
| 24 | super.onCreate(savedInstanceState); | 27 | super.onCreate(savedInstanceState); |
| 25 | setContentView(R.layout.activity_speaker_main); | 28 | setContentView(R.layout.activity_speaker_main); |
| 29 | + XiaoJIaCommInfo.setUserId(this, "10510277"); | ||
| 26 | // startActivity(new Intent(MainActivity.this, ToolBarTestActivity.class)); | 30 | // startActivity(new Intent(MainActivity.this, ToolBarTestActivity.class)); |
| 27 | // startActivity(new Intent(MainActivity.this, BluetoothConnActivity.class)); | 31 | // startActivity(new Intent(MainActivity.this, BluetoothConnActivity.class)); |
| 28 | // startActivity(new Intent(MainActivity.this, BlueToothStep1Activity.class)); | 32 | // startActivity(new Intent(MainActivity.this, BlueToothStep1Activity.class)); |
| @@ -34,6 +38,9 @@ public class MainActivity extends AppCompatActivity { | @@ -34,6 +38,9 @@ public class MainActivity extends AppCompatActivity { | ||
| 34 | // startActivity(new Intent(MainActivity.this, SelectWifiActivity.class)); | 38 | // startActivity(new Intent(MainActivity.this, SelectWifiActivity.class)); |
| 35 | // startActivity(new Intent(MainActivity.this, ToolBarTestActivity.class)); | 39 | // startActivity(new Intent(MainActivity.this, ToolBarTestActivity.class)); |
| 36 | // startActivity(new Intent(MainActivity.this, SelectIMFriendActivity.class)); | 40 | // startActivity(new Intent(MainActivity.this, SelectIMFriendActivity.class)); |
| 41 | +// startActivity(new Intent(MainActivity.this, InvitFriendActivity.class)); | ||
| 42 | + | ||
| 43 | + | ||
| 37 | finish(); | 44 | finish(); |
| 38 | } | 45 | } |
| 39 | 46 |
app/src/main/java/com/cnlive/strike/xiaojiaspeaker/MyApp.java
| @@ -2,6 +2,7 @@ package com.cnlive.strike.xiaojiaspeaker; | @@ -2,6 +2,7 @@ package com.cnlive.strike.xiaojiaspeaker; | ||
| 2 | 2 | ||
| 3 | import android.app.Application; | 3 | import android.app.Application; |
| 4 | 4 | ||
| 5 | +import com.alibaba.android.arouter.launcher.ARouter; | ||
| 5 | import com.cnlive.libs.base.application.AppConfig; | 6 | import com.cnlive.libs.base.application.AppConfig; |
| 6 | import com.cnlive.strike.speaker.BuildConfig; | 7 | import com.cnlive.strike.speaker.BuildConfig; |
| 7 | 8 | ||
| @@ -10,13 +11,28 @@ public class MyApp extends Application { | @@ -10,13 +11,28 @@ public class MyApp extends Application { | ||
| 10 | @Override | 11 | @Override |
| 11 | public void onCreate() { | 12 | public void onCreate() { |
| 12 | super.onCreate(); | 13 | super.onCreate(); |
| 14 | + initARouter(); | ||
| 13 | String userId = ""; | 15 | String userId = ""; |
| 14 | - AppConfig.init(this, BuildConfig.APP_ID, BuildConfig.APP_KEY, | ||
| 15 | - BuildConfig.APP_SCERET, BuildConfig.SPECIAL_GROUP_MEMBER_LIMIT, | ||
| 16 | - BuildConfig.VERSION_AS_DEBUG, "","", | ||
| 17 | - "", "", | ||
| 18 | - "","", "", | ||
| 19 | - "", "","", | ||
| 20 | - BuildConfig.BAIDU_MAP_APP_KEY, ""); | 16 | +// AppConfig.init(this, BuildConfig.APP_ID, BuildConfig.APP_KEY, |
| 17 | +// BuildConfig.APP_SCERET, BuildConfig.SPECIAL_GROUP_MEMBER_LIMIT, | ||
| 18 | +// BuildConfig.VERSION_AS_DEBUG, "","", | ||
| 19 | +// "", "", | ||
| 20 | +// "","", "", | ||
| 21 | +// "", "","", | ||
| 22 | +// BuildConfig.BAIDU_MAP_APP_KEY, ""); | ||
| 21 | } | 23 | } |
| 24 | + | ||
| 25 | + | ||
| 26 | + /** | ||
| 27 | + * 初始化阿里的路由 | ||
| 28 | + */ | ||
| 29 | + private void initARouter() { | ||
| 30 | + if (BuildConfig.DEBUG) { // 这两行必须写在init之前,否则这些配置在init过程中将无效 | ||
| 31 | + ARouter.openLog(); // 打印日志 | ||
| 32 | + ARouter.openDebug(); // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险) | ||
| 33 | + ARouter.printStackTrace(); // 打印日志的时候打印线程堆栈 | ||
| 34 | + } | ||
| 35 | + ARouter.init(this); // 尽可能早,推荐在Application中初始化 | ||
| 36 | + } | ||
| 37 | + | ||
| 22 | } | 38 | } |
module_xiaojiaSoundBox/src/main/AndroidManifest.xml
| @@ -17,7 +17,8 @@ | @@ -17,7 +17,8 @@ | ||
| 17 | <uses-permission android:name="android.permission.INTERNET" /> | 17 | <uses-permission android:name="android.permission.INTERNET" /> |
| 18 | 18 | ||
| 19 | <application> | 19 | <application> |
| 20 | - <activity android:name=".ui.activity.UserManagerActivity"></activity> | 20 | + <activity android:name=".ui.activity.InvitFriendActivity"></activity> |
| 21 | + <activity android:name=".ui.activity.UserManagerActivity" /> | ||
| 21 | <activity android:name=".ui.activity.ChangeDeviceNameActivity" /> | 22 | <activity android:name=".ui.activity.ChangeDeviceNameActivity" /> |
| 22 | <activity android:name=".ui.activity.DeviceDetailActivity" /> | 23 | <activity android:name=".ui.activity.DeviceDetailActivity" /> |
| 23 | <activity android:name=".ui.activity.SetFriendsRoleActivity" /> | 24 | <activity android:name=".ui.activity.SetFriendsRoleActivity" /> |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/commonInfo/CommInfo.java renamed to module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/commonInfo/XiaoJIaCommInfo.java
| @@ -9,7 +9,7 @@ import com.cnlive.strike.xiaojiaspeaker.util.MySpHelper; | @@ -9,7 +9,7 @@ import com.cnlive.strike.xiaojiaspeaker.util.MySpHelper; | ||
| 9 | * | 9 | * |
| 10 | * @author ys | 10 | * @author ys |
| 11 | */ | 11 | */ |
| 12 | -public class CommInfo { | 12 | +public class XiaoJIaCommInfo { |
| 13 | //用户ID | 13 | //用户ID |
| 14 | private static final String KEY_USER_ID = "xiaojia_UserId"; | 14 | private static final String KEY_USER_ID = "xiaojia_UserId"; |
| 15 | //是否显示礼物弹窗 | 15 | //是否显示礼物弹窗 |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/constants/XiaoJiaConst.java
0 → 100644
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/presenter/InvitFriendPresenter.java
0 → 100644
| 1 | +package com.cnlive.strike.xiaojiaspeaker.frame.presenter; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.util.Log; | ||
| 5 | +import android.view.View; | ||
| 6 | + | ||
| 7 | +import com.cnlive.libs.base.logic.Logic; | ||
| 8 | +import com.cnlive.libs.base.logic.callback.DataCallback; | ||
| 9 | +import com.cnlive.libs.base.logic.callback.FailureCallback; | ||
| 10 | +import com.cnlive.libs.base.logic.callback.SuccessCallback; | ||
| 11 | +import com.cnlive.strike.xiaojiaspeaker.frame.view.InvitFriendView; | ||
| 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; | ||
| 15 | +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.SubscriptionBaseInfo; | ||
| 16 | +import com.cnlive.strike.xiaojiaspeaker.netWork.result.SubscriptionRequest; | ||
| 17 | +import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil; | ||
| 18 | +import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; | ||
| 19 | + | ||
| 20 | +import java.util.HashMap; | ||
| 21 | +import java.util.Map; | ||
| 22 | + | ||
| 23 | +import io.reactivex.disposables.Disposable; | ||
| 24 | + | ||
| 25 | +public class InvitFriendPresenter extends MvpBasePresenter<InvitFriendView> { | ||
| 26 | + | ||
| 27 | + private String TAG = "InvitFriendPresenter"; | ||
| 28 | + | ||
| 29 | + /** | ||
| 30 | + * 获取角色列表 | ||
| 31 | + * | ||
| 32 | + * @param context | ||
| 33 | + * @param sids | ||
| 34 | + * @param familyId | ||
| 35 | + */ | ||
| 36 | + public void getSetRoleList(Context context, String sids, String familyId) { | ||
| 37 | + if (null == getView()) { | ||
| 38 | + return; | ||
| 39 | + } | ||
| 40 | + getView().showLoadingView(); | ||
| 41 | + Map<String, String> map = new HashMap<>(); | ||
| 42 | + map.put("sids", sids); | ||
| 43 | + map.put("familyId", familyId); | ||
| 44 | + Logic.create(map) | ||
| 45 | + .action(new Logic.Action<Map<String, String>, SubscriptionBaseInfo<RoleNetBean>>() { | ||
| 46 | + @Override | ||
| 47 | + public Disposable action(Map<String, String> paramsMap, DataCallback<SubscriptionBaseInfo<RoleNetBean>> dataCallback) { | ||
| 48 | + return SubscriptionRequest.service(ApiServiceXiaoJia.class, api -> api.getSetRoleList(paramsMap)).subscribe(context, dataCallback); | ||
| 49 | + } | ||
| 50 | + }).<SubscriptionBaseInfo<RoleNetBean>>event() | ||
| 51 | + .setSuccessCallback(new SuccessCallback<SubscriptionBaseInfo<RoleNetBean>>() { | ||
| 52 | + @Override | ||
| 53 | + public void onSuccess(SubscriptionBaseInfo<RoleNetBean> baseInfo) { | ||
| 54 | + Log.e(TAG, "onSuccess: "); | ||
| 55 | + | ||
| 56 | + if (null == getView()) { | ||
| 57 | + return; | ||
| 58 | + } | ||
| 59 | + getView().hideLoadingView(); | ||
| 60 | + getView().initView(baseInfo.getData()); | ||
| 61 | + } | ||
| 62 | + }) | ||
| 63 | + .setFailureCallback(new FailureCallback() { | ||
| 64 | + @Override | ||
| 65 | + public void onFailure(int i, String s) { | ||
| 66 | + if (null == getView()) { | ||
| 67 | + return; | ||
| 68 | + } | ||
| 69 | + //显示重试 | ||
| 70 | + getView().hideLoadingView(); | ||
| 71 | + getView().showRetryView(i, new View.OnClickListener() { | ||
| 72 | + @Override | ||
| 73 | + public void onClick(View view) { | ||
| 74 | + getSetRoleList(context, sids, familyId); | ||
| 75 | + } | ||
| 76 | + }); | ||
| 77 | + } | ||
| 78 | + }) | ||
| 79 | + | ||
| 80 | + .start(); | ||
| 81 | + } | ||
| 82 | +} |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/AllDeviceFragmentView.java
| @@ -2,26 +2,20 @@ package com.cnlive.strike.xiaojiaspeaker.frame.view; | @@ -2,26 +2,20 @@ package com.cnlive.strike.xiaojiaspeaker.frame.view; | ||
| 2 | 2 | ||
| 3 | import android.app.Activity; | 3 | import android.app.Activity; |
| 4 | import android.graphics.Color; | 4 | import android.graphics.Color; |
| 5 | -import android.support.design.widget.BottomSheetBehavior; | ||
| 6 | -import android.support.design.widget.BottomSheetDialog; | ||
| 7 | import android.support.v7.widget.LinearLayoutManager; | 5 | import android.support.v7.widget.LinearLayoutManager; |
| 8 | import android.util.Log; | 6 | import android.util.Log; |
| 9 | -import android.view.LayoutInflater; | ||
| 10 | import android.view.View; | 7 | import android.view.View; |
| 11 | 8 | ||
| 12 | import com.cnlive.strike.xiaojiaspeaker.R; | 9 | import com.cnlive.strike.xiaojiaspeaker.R; |
| 13 | -import com.cnlive.strike.xiaojiaspeaker.commonInfo.CommInfo; | ||
| 14 | -import com.cnlive.strike.xiaojiaspeaker.model.AllDeviceInfo; | 10 | +import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo; |
| 15 | import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean; | 11 | import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyListBean; |
| 16 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.BlueToothStep1Activity; | 12 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.BlueToothStep1Activity; |
| 17 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.DeviceDetailActivity; | 13 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.DeviceDetailActivity; |
| 18 | -import com.cnlive.strike.xiaojiaspeaker.ui.activity.DeviceManagerActivity; | ||
| 19 | import com.cnlive.strike.xiaojiaspeaker.ui.adapter.AllDeviceAdapter; | 14 | import com.cnlive.strike.xiaojiaspeaker.ui.adapter.AllDeviceAdapter; |
| 20 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.AllDeviceFragment; | 15 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.AllDeviceFragment; |
| 21 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenu; | 16 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenu; |
| 22 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenuInfo; | 17 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenuInfo; |
| 23 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 18 | import com.hannesdorfmann.mosby3.mvp.MvpView; |
| 24 | -import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton; | ||
| 25 | 19 | ||
| 26 | import java.util.ArrayList; | 20 | import java.util.ArrayList; |
| 27 | import java.util.List; | 21 | import java.util.List; |
| @@ -58,11 +52,11 @@ public class AllDeviceFragmentView implements MvpView { | @@ -58,11 +52,11 @@ public class AllDeviceFragmentView implements MvpView { | ||
| 58 | Log.e(TAG, "getId: " + usersBean.getUserId()); | 52 | Log.e(TAG, "getId: " + usersBean.getUserId()); |
| 59 | Log.e(TAG, "getToken: " + usersBean.getToken()); | 53 | Log.e(TAG, "getToken: " + usersBean.getToken()); |
| 60 | //存储家庭id | 54 | //存储家庭id |
| 61 | - CommInfo.setFamilyId(getContext(), usersBean.getId()); | 55 | + XiaoJIaCommInfo.setFamilyId(getContext(), usersBean.getId()); |
| 62 | //存储移动id(用于配网) | 56 | //存储移动id(用于配网) |
| 63 | - CommInfo.setCMCCId(getContext(), usersBean.getUserId()); | 57 | + XiaoJIaCommInfo.setCMCCId(getContext(), usersBean.getUserId()); |
| 64 | //存储移动token | 58 | //存储移动token |
| 65 | - CommInfo.setToken(getContext(), usersBean.getToken()); | 59 | + XiaoJIaCommInfo.setToken(getContext(), usersBean.getToken()); |
| 66 | } | 60 | } |
| 67 | //存储移动id | 61 | //存储移动id |
| 68 | if (null != usersBean.getDeviceList()) { | 62 | if (null != usersBean.getDeviceList()) { |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/InvitFriendView.java
0 → 100644
| 1 | +package com.cnlive.strike.xiaojiaspeaker.frame.view; | ||
| 2 | + | ||
| 3 | +import android.app.Activity; | ||
| 4 | +import android.graphics.Bitmap; | ||
| 5 | +import android.net.Uri; | ||
| 6 | +import android.support.v7.widget.LinearLayoutManager; | ||
| 7 | +import android.view.View; | ||
| 8 | + | ||
| 9 | +import com.alibaba.android.arouter.launcher.ARouter; | ||
| 10 | +import com.cnlive.libs.base.arouter.QrService; | ||
| 11 | +import com.cnlive.libs.base.util.SimpleDES; | ||
| 12 | +import com.cnlive.strike.application.GlideApp; | ||
| 13 | +import com.cnlive.strike.xiaojiaspeaker.R; | ||
| 14 | +import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo; | ||
| 15 | +import com.cnlive.strike.xiaojiaspeaker.constants.XiaoJiaConst; | ||
| 16 | +import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo; | ||
| 17 | +import com.cnlive.strike.xiaojiaspeaker.model.XiaoJiaQrcode; | ||
| 18 | +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean; | ||
| 19 | +import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; | ||
| 20 | +import com.cnlive.strike.xiaojiaspeaker.ui.adapter.SetRoleAdapter; | ||
| 21 | +import com.cnlive.strike.xiaojiaspeaker.ui.fragment.InvitFriendFragment; | ||
| 22 | +import com.cnlive.strike.xiaojiaspeaker.ui.widget.EditRoleDialog; | ||
| 23 | +import com.cnlive.strike.xiaojiaspeaker.ui.widget.SelectDialog; | ||
| 24 | +import com.cnlive.strike.xiaojiaspeaker.util.CommonUtils; | ||
| 25 | +import com.cnlive.strike.xiaojiaspeaker.util.DensityUtil; | ||
| 26 | +import com.cnlive.strike.xiaojiaspeaker.util.GsonUtil; | ||
| 27 | +import com.hannesdorfmann.mosby3.mvp.MvpView; | ||
| 28 | + | ||
| 29 | +import org.json.JSONException; | ||
| 30 | +import org.json.JSONObject; | ||
| 31 | + | ||
| 32 | +import java.util.ArrayList; | ||
| 33 | +import java.util.List; | ||
| 34 | + | ||
| 35 | +public class InvitFriendView implements MvpView { | ||
| 36 | + private InvitFriendFragment fragment; | ||
| 37 | + private List<RoleInfo> roleInfoList; | ||
| 38 | + private SetRoleAdapter setRoleAdapter; | ||
| 39 | + | ||
| 40 | + public InvitFriendView(InvitFriendFragment fragment) { | ||
| 41 | + this.fragment = fragment; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + public Activity getContext() { | ||
| 45 | + return fragment == null ? null : fragment.getActivity(); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + public void initView(RoleNetBean roleNetBean) { | ||
| 49 | + roleInfoList = new ArrayList<>(); | ||
| 50 | + //整理数据 | ||
| 51 | + //获取选中的联系人 | ||
| 52 | + if (null != roleNetBean.getRoleUserList()) { | ||
| 53 | + RoleInfo roleInfo = null; | ||
| 54 | + for (int i = 0; i < roleNetBean.getRoleUserList().size(); i++) { | ||
| 55 | + roleInfo = new RoleInfo(); | ||
| 56 | + roleInfo.setUid(roleNetBean.getRoleUserList().get(i).getSid()); | ||
| 57 | + roleInfo.setUserName(roleNetBean.getRoleUserList().get(i).getNick()); | ||
| 58 | + roleInfo.setUserIcon(roleNetBean.getRoleUserList().get(i).getFace()); | ||
| 59 | + List<RoleNetBean.RoleListBean> roleList = new ArrayList<>(); | ||
| 60 | + for (int j = 0; j < roleNetBean.getRoleList().size(); j++) { | ||
| 61 | + RoleNetBean.RoleListBean bean = new RoleNetBean.RoleListBean(); | ||
| 62 | + bean.setAllowUse(roleNetBean.getRoleList().get(j).isAllowUse()); | ||
| 63 | + bean.setId(roleNetBean.getRoleList().get(j).getId()); | ||
| 64 | + bean.setRoleName(roleNetBean.getRoleList().get(j).getRoleName()); | ||
| 65 | + bean.setParentPosition(i); | ||
| 66 | + roleList.add(bean); | ||
| 67 | + } | ||
| 68 | + roleInfo.setRoleList(roleList); | ||
| 69 | + roleInfoList.add(roleInfo); | ||
| 70 | + } | ||
| 71 | + } | ||
| 72 | + setRoleAdapter = new SetRoleAdapter(getContext(), roleInfoList); | ||
| 73 | +// setRoleAdapter.setGridCount(4); | ||
| 74 | + setRoleAdapter.setIsShowItemUserInfo(View.GONE); | ||
| 75 | + fragment.binding.rvRole.setLayoutManager(new LinearLayoutManager(getContext())); | ||
| 76 | + fragment.binding.rvRole.setAdapter(setRoleAdapter); | ||
| 77 | + //设置角色选中事件 | ||
| 78 | + setRoleAdapter.setOnSelectListener(new SetRoleAdapter.OnSelectListener() { | ||
| 79 | + @Override | ||
| 80 | + public void onSelect(int roleId) { | ||
| 81 | + fragment.binding.llNoQrcode.setVisibility(View.GONE); | ||
| 82 | + createQrcode(roleId); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + @Override | ||
| 86 | + public void onCancel() { | ||
| 87 | + fragment.binding.llNoQrcode.setVisibility(View.VISIBLE); | ||
| 88 | + } | ||
| 89 | + }); | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + public void createQrcode(int roleId) { | ||
| 93 | + JSONObject jsonObject = new JSONObject(); | ||
| 94 | + try { | ||
| 95 | + XiaoJiaQrcode xiaoJiaQrcode = new XiaoJiaQrcode(); | ||
| 96 | + xiaoJiaQrcode.setFamilyId(XiaoJIaCommInfo.getFamilyId(getContext())); | ||
| 97 | + xiaoJiaQrcode.setRoleId(roleId); | ||
| 98 | + xiaoJiaQrcode.setUuid(CommonUtils.getUUID()); | ||
| 99 | + | ||
| 100 | + jsonObject.put("content", GsonUtil.GsonString(xiaoJiaQrcode)); | ||
| 101 | + jsonObject.put("time", System.currentTimeMillis()); | ||
| 102 | + jsonObject.put("type", XiaoJiaConst.QRCODE_TYPE); | ||
| 103 | + | ||
| 104 | + String qrContent = jsonObject.toString(); | ||
| 105 | + String encryptionContent = SimpleDES.ebotongEncrypto(qrContent, "cnliveIm"); | ||
| 106 | + encryptionContent = encryptionContent.replaceAll("\\\n", ""); | ||
| 107 | + QrService service = (QrService) ARouter.getInstance().navigation(QrService.class); | ||
| 108 | + if (null == service) { | ||
| 109 | + return; | ||
| 110 | + } | ||
| 111 | + Bitmap bitmap = service.createQRNoIconBitmap(encryptionContent, DensityUtil.dp2px(getContext(), 245)); | ||
| 112 | +// binding.ivQr.setBackgroundDrawable(bitmap); | ||
| 113 | + if (getContext() == null) { | ||
| 114 | + return; | ||
| 115 | + } | ||
| 116 | + if (null != bitmap) { | ||
| 117 | + GlideApp.with(getContext()).load(bitmap).into(fragment.binding.ivQrcode); | ||
| 118 | + } | ||
| 119 | + | ||
| 120 | + } catch (JSONException e) { | ||
| 121 | + e.printStackTrace(); | ||
| 122 | + } | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + /** | ||
| 126 | + * 显示loading | ||
| 127 | + */ | ||
| 128 | + public void showLoadingView() { | ||
| 129 | + if (fragment.binding.emptyLayout == null) { | ||
| 130 | + return; | ||
| 131 | + } | ||
| 132 | + fragment.binding.emptyLayout.show(true); | ||
| 133 | + } | ||
| 134 | + | ||
| 135 | + /** | ||
| 136 | + * 隐藏loading | ||
| 137 | + */ | ||
| 138 | + public void hideLoadingView() { | ||
| 139 | + if (fragment.binding.emptyLayout == null) { | ||
| 140 | + return; | ||
| 141 | + } | ||
| 142 | + fragment.binding.emptyLayout.hide(); | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + /** | ||
| 146 | + * 显示重试页面 | ||
| 147 | + * | ||
| 148 | + * @param errorCode | ||
| 149 | + * @param listener | ||
| 150 | + */ | ||
| 151 | + public void showRetryView(int errorCode, View.OnClickListener listener) { | ||
| 152 | + //显示空视图 | ||
| 153 | + fragment.binding.emptyLayout.setVisibility(View.VISIBLE); | ||
| 154 | + | ||
| 155 | + if (fragment.binding.emptyLayout == null) return; | ||
| 156 | + String titleText = ""; | ||
| 157 | + String detailText = ""; | ||
| 158 | + if (errorCode == -3) { | ||
| 159 | + titleText = getContext().getString(R.string.msg_failed_network_title); | ||
| 160 | + detailText = getContext().getString(R.string.msg_failed_network_detail); | ||
| 161 | + } else { | ||
| 162 | + titleText = getContext().getString(R.string.msg_failed_other_title); | ||
| 163 | + detailText = getContext().getString(R.string.msg_failed_other_detail); | ||
| 164 | + } | ||
| 165 | + fragment.binding.emptyLayout.show(false, titleText, detailText, getContext().getString(R.string.retry), R.drawable.wufalianjie, listener); | ||
| 166 | + } | ||
| 167 | +} |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/SelectWifiFragmentView.java
| @@ -5,7 +5,6 @@ import android.bluetooth.BluetoothGatt; | @@ -5,7 +5,6 @@ import android.bluetooth.BluetoothGatt; | ||
| 5 | import android.graphics.Typeface; | 5 | import android.graphics.Typeface; |
| 6 | import android.net.wifi.ScanResult; | 6 | import android.net.wifi.ScanResult; |
| 7 | import android.os.Handler; | 7 | import android.os.Handler; |
| 8 | -import android.support.annotation.NonNull; | ||
| 9 | import android.support.v4.content.ContextCompat; | 8 | import android.support.v4.content.ContextCompat; |
| 10 | import android.support.v7.widget.LinearLayoutManager; | 9 | import android.support.v7.widget.LinearLayoutManager; |
| 11 | import android.text.TextUtils; | 10 | import android.text.TextUtils; |
| @@ -20,15 +19,13 @@ import com.clj.fastble.data.BleDevice; | @@ -20,15 +19,13 @@ import com.clj.fastble.data.BleDevice; | ||
| 20 | import com.clj.fastble.exception.BleException; | 19 | import com.clj.fastble.exception.BleException; |
| 21 | import com.cnlive.libs.base.util.AlertUtil; | 20 | import com.cnlive.libs.base.util.AlertUtil; |
| 22 | import com.cnlive.strike.xiaojiaspeaker.R; | 21 | import com.cnlive.strike.xiaojiaspeaker.R; |
| 23 | -import com.cnlive.strike.xiaojiaspeaker.commonInfo.CommInfo; | 22 | +import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo; |
| 24 | import com.cnlive.strike.xiaojiaspeaker.constants.BlufiConstants; | 23 | import com.cnlive.strike.xiaojiaspeaker.constants.BlufiConstants; |
| 25 | -import com.cnlive.strike.xiaojiaspeaker.netWork.bean.ConfigDeviceNetParam; | ||
| 26 | import com.cnlive.strike.xiaojiaspeaker.ui.adapter.WifiRecycleAdapter; | 24 | import com.cnlive.strike.xiaojiaspeaker.ui.adapter.WifiRecycleAdapter; |
| 27 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.SelectWifiFragment; | 25 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.SelectWifiFragment; |
| 28 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.TipDialog; | 26 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.TipDialog; |
| 29 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.WifiPwdDialog; | 27 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.WifiPwdDialog; |
| 30 | import com.cnlive.strike.xiaojiaspeaker.util.BlueToothUtil; | 28 | import com.cnlive.strike.xiaojiaspeaker.util.BlueToothUtil; |
| 31 | -import com.cnlive.strike.xiaojiaspeaker.util.CommonUtils; | ||
| 32 | import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil; | 29 | import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil; |
| 33 | import com.cnlive.strike.xiaojiaspeaker.util.WifiUtils; | 30 | import com.cnlive.strike.xiaojiaspeaker.util.WifiUtils; |
| 34 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 31 | import com.hannesdorfmann.mosby3.mvp.MvpView; |
| @@ -62,8 +59,8 @@ public class SelectWifiFragmentView implements MvpView { | @@ -62,8 +59,8 @@ public class SelectWifiFragmentView implements MvpView { | ||
| 62 | } | 59 | } |
| 63 | 60 | ||
| 64 | public void initWifiList(final BleDevice bleDevice) { | 61 | public void initWifiList(final BleDevice bleDevice) { |
| 65 | - this.familyId = CommInfo.getFamilyId(getContext()); | ||
| 66 | - this.cmccId = CommInfo.getCMCCId(getContext()); | 62 | + this.familyId = XiaoJIaCommInfo.getFamilyId(getContext()); |
| 63 | + this.cmccId = XiaoJIaCommInfo.getCMCCId(getContext()); | ||
| 67 | this.bleDevice = bleDevice; | 64 | this.bleDevice = bleDevice; |
| 68 | showLoading(); | 65 | showLoading(); |
| 69 | initWifiPwdDialog(); | 66 | initWifiPwdDialog(); |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/frame/view/UserManagerView.java
| @@ -7,22 +7,20 @@ import android.support.v7.widget.LinearLayoutManager; | @@ -7,22 +7,20 @@ import android.support.v7.widget.LinearLayoutManager; | ||
| 7 | import android.view.View; | 7 | import android.view.View; |
| 8 | 8 | ||
| 9 | import com.cnlive.strike.xiaojiaspeaker.R; | 9 | import com.cnlive.strike.xiaojiaspeaker.R; |
| 10 | -import com.cnlive.strike.xiaojiaspeaker.commonInfo.CommInfo; | 10 | +import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo; |
| 11 | import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo; | 11 | import com.cnlive.strike.xiaojiaspeaker.model.RoleInfo; |
| 12 | import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean; | 12 | import com.cnlive.strike.xiaojiaspeaker.netWork.bean.FamilyRoleBean; |
| 13 | import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; | 13 | import com.cnlive.strike.xiaojiaspeaker.netWork.bean.RoleNetBean; |
| 14 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.BlueToothStep1Activity; | 14 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.BlueToothStep1Activity; |
| 15 | +import com.cnlive.strike.xiaojiaspeaker.ui.activity.InvitFriendActivity; | ||
| 15 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.SelectIMFriendActivity; | 16 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.SelectIMFriendActivity; |
| 16 | -import com.cnlive.strike.xiaojiaspeaker.ui.adapter.SetRoleAdapter; | ||
| 17 | import com.cnlive.strike.xiaojiaspeaker.ui.adapter.UserManagerAdapter; | 17 | import com.cnlive.strike.xiaojiaspeaker.ui.adapter.UserManagerAdapter; |
| 18 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.UserManagerFragment; | 18 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.UserManagerFragment; |
| 19 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.EditRoleDialog; | 19 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.EditRoleDialog; |
| 20 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.SelectDialog; | 20 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.SelectDialog; |
| 21 | -import com.cnlive.strike.xiaojiaspeaker.ui.widget.TipDialog; | ||
| 22 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenu; | 21 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenu; |
| 23 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenuInfo; | 22 | import com.cnlive.strike.xiaojiaspeaker.ui.widget.popmenu.PopMenuInfo; |
| 24 | import com.cnlive.strike.xiaojiaspeaker.util.GsonUtil; | 23 | import com.cnlive.strike.xiaojiaspeaker.util.GsonUtil; |
| 25 | -import com.cnlive.strike.xiaojiaspeaker.util.utilcode.util.GsonUtils; | ||
| 26 | import com.hannesdorfmann.mosby3.mvp.MvpView; | 24 | import com.hannesdorfmann.mosby3.mvp.MvpView; |
| 27 | 25 | ||
| 28 | import java.util.ArrayList; | 26 | import java.util.ArrayList; |
| @@ -109,7 +107,7 @@ public class UserManagerView implements MvpView { | @@ -109,7 +107,7 @@ public class UserManagerView implements MvpView { | ||
| 109 | adapter.setOnEditClickListener(new UserManagerAdapter.OnEditClickListener() { | 107 | adapter.setOnEditClickListener(new UserManagerAdapter.OnEditClickListener() { |
| 110 | @Override | 108 | @Override |
| 111 | public void editClick(int position, FamilyRoleBean.FamilyRoleListBean bean) { | 109 | public void editClick(int position, FamilyRoleBean.FamilyRoleListBean bean) { |
| 112 | - fragment.getPresenter().getSetRoleList(getContext(), bean.getSid() + "", CommInfo.getFamilyId(getContext()), bean); | 110 | + fragment.getPresenter().getSetRoleList(getContext(), bean.getSid() + "", XiaoJIaCommInfo.getFamilyId(getContext()), bean); |
| 113 | } | 111 | } |
| 114 | }); | 112 | }); |
| 115 | //删除按钮点击 | 113 | //删除按钮点击 |
| @@ -143,6 +141,13 @@ public class UserManagerView implements MvpView { | @@ -143,6 +141,13 @@ public class UserManagerView implements MvpView { | ||
| 143 | SelectIMFriendActivity.startActivity(getContext()); | 141 | SelectIMFriendActivity.startActivity(getContext()); |
| 144 | } | 142 | } |
| 145 | }); | 143 | }); |
| 144 | + //二维码点击 | ||
| 145 | + fragment.binding.btnQrcode.setOnClickListener(new View.OnClickListener() { | ||
| 146 | + @Override | ||
| 147 | + public void onClick(View view) { | ||
| 148 | + InvitFriendActivity.startActivity(getContext()); | ||
| 149 | + } | ||
| 150 | + }); | ||
| 146 | } | 151 | } |
| 147 | 152 | ||
| 148 | public void initRoleDialog(RoleNetBean roleNetBean, FamilyRoleBean.FamilyRoleListBean familyRoleListBean) { | 153 | public void initRoleDialog(RoleNetBean roleNetBean, FamilyRoleBean.FamilyRoleListBean familyRoleListBean) { |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/model/XiaoJiaQrcode.java
0 → 100644
| 1 | +package com.cnlive.strike.xiaojiaspeaker.model; | ||
| 2 | + | ||
| 3 | +public class XiaoJiaQrcode { | ||
| 4 | + | ||
| 5 | + /** | ||
| 6 | + * familyId : 1111 | ||
| 7 | + * roleId : 1 | ||
| 8 | + * uuid : 2819ffac01134772ba38425a359c0594 | ||
| 9 | + */ | ||
| 10 | + | ||
| 11 | + private String familyId; | ||
| 12 | + private int roleId; | ||
| 13 | + private String uuid; | ||
| 14 | + | ||
| 15 | + public String getFamilyId() { | ||
| 16 | + return familyId; | ||
| 17 | + } | ||
| 18 | + | ||
| 19 | + public void setFamilyId(String familyId) { | ||
| 20 | + this.familyId = familyId; | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + public int getRoleId() { | ||
| 24 | + return roleId; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + public void setRoleId(int roleId) { | ||
| 28 | + this.roleId = roleId; | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + public String getUuid() { | ||
| 32 | + return uuid; | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + public void setUuid(String uuid) { | ||
| 36 | + this.uuid = uuid; | ||
| 37 | + } | ||
| 38 | +} |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/AllDeviceActivity.java
| @@ -12,6 +12,7 @@ import com.cnlive.libs.base.util.StatusBarUtil2; | @@ -12,6 +12,7 @@ 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.databinding.ActivityAllDeviceBinding; | 13 | import com.cnlive.strike.xiaojiaspeaker.databinding.ActivityAllDeviceBinding; |
| 14 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.AllDeviceFragment; | 14 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.AllDeviceFragment; |
| 15 | +import com.cnlive.strike.xiaojiaspeaker.ui.fragment.InvitFriendFragment; | ||
| 15 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.SearchDevicefragment; | 16 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.SearchDevicefragment; |
| 16 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.SelectWifiFragment; | 17 | import com.cnlive.strike.xiaojiaspeaker.ui.fragment.SelectWifiFragment; |
| 17 | 18 |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/ConnBluetoothSuccessActivity.java
| @@ -8,15 +8,13 @@ import android.support.v7.app.AppCompatActivity; | @@ -8,15 +8,13 @@ import android.support.v7.app.AppCompatActivity; | ||
| 8 | import android.os.Bundle; | 8 | import android.os.Bundle; |
| 9 | import android.view.View; | 9 | import android.view.View; |
| 10 | 10 | ||
| 11 | -import com.cnlive.libs.base.util.AlertUtil; | ||
| 12 | import com.cnlive.libs.base.util.StatusBarUtil; | 11 | import com.cnlive.libs.base.util.StatusBarUtil; |
| 13 | import com.cnlive.libs.base.util.StatusBarUtil2; | 12 | import com.cnlive.libs.base.util.StatusBarUtil2; |
| 14 | import com.cnlive.strike.xiaojiaspeaker.R; | 13 | import com.cnlive.strike.xiaojiaspeaker.R; |
| 15 | -import com.cnlive.strike.xiaojiaspeaker.commonInfo.CommInfo; | 14 | +import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo; |
| 16 | import com.cnlive.strike.xiaojiaspeaker.databinding.ActivityConnBluetoothSuccessBinding; | 15 | import com.cnlive.strike.xiaojiaspeaker.databinding.ActivityConnBluetoothSuccessBinding; |
| 17 | import com.daimajia.androidanimations.library.Techniques; | 16 | import com.daimajia.androidanimations.library.Techniques; |
| 18 | import com.daimajia.androidanimations.library.YoYo; | 17 | import com.daimajia.androidanimations.library.YoYo; |
| 19 | -import com.daimajia.androidanimations.library.zooming_exits.ZoomOutDownAnimator; | ||
| 20 | 18 | ||
| 21 | /** | 19 | /** |
| 22 | * 音箱连接成功页面 | 20 | * 音箱连接成功页面 |
| @@ -36,7 +34,7 @@ public class ConnBluetoothSuccessActivity extends AppCompatActivity { | @@ -36,7 +34,7 @@ public class ConnBluetoothSuccessActivity extends AppCompatActivity { | ||
| 36 | 34 | ||
| 37 | private void initView() { | 35 | private void initView() { |
| 38 | //判断是否显示礼物弹窗 | 36 | //判断是否显示礼物弹窗 |
| 39 | - boolean isShow = CommInfo.getIsShowConnGift(this); | 37 | + boolean isShow = XiaoJIaCommInfo.getIsShowConnGift(this); |
| 40 | if (isShow) { | 38 | if (isShow) { |
| 41 | showGift(); | 39 | showGift(); |
| 42 | } else { | 40 | } else { |
| @@ -58,7 +56,7 @@ public class ConnBluetoothSuccessActivity extends AppCompatActivity { | @@ -58,7 +56,7 @@ public class ConnBluetoothSuccessActivity extends AppCompatActivity { | ||
| 58 | .playOn(binding.llGift); | 56 | .playOn(binding.llGift); |
| 59 | binding.llGiftBlack.setVisibility(View.GONE); | 57 | binding.llGiftBlack.setVisibility(View.GONE); |
| 60 | //设置弹窗不在弹出 | 58 | //设置弹窗不在弹出 |
| 61 | - CommInfo.setIsShowConnGift(ConnBluetoothSuccessActivity.this, false); | 59 | + XiaoJIaCommInfo.setIsShowConnGift(ConnBluetoothSuccessActivity.this, false); |
| 62 | } | 60 | } |
| 63 | }); | 61 | }); |
| 64 | } | 62 | } |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/InvitFriendActivity.java
0 → 100644
| 1 | +package com.cnlive.strike.xiaojiaspeaker.ui.activity; | ||
| 2 | + | ||
| 3 | +import android.app.Activity; | ||
| 4 | +import android.content.Intent; | ||
| 5 | +import android.support.v7.app.AppCompatActivity; | ||
| 6 | +import android.os.Bundle; | ||
| 7 | + | ||
| 8 | +import com.cnlive.strike.xiaojiaspeaker.R; | ||
| 9 | +import com.cnlive.strike.xiaojiaspeaker.ui.fragment.AllDeviceFragment; | ||
| 10 | +import com.cnlive.strike.xiaojiaspeaker.ui.fragment.InvitFriendFragment; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 二维码邀请加入 | ||
| 14 | + */ | ||
| 15 | +public class InvitFriendActivity extends AppCompatActivity { | ||
| 16 | + | ||
| 17 | + @Override | ||
| 18 | + protected void onCreate(Bundle savedInstanceState) { | ||
| 19 | + super.onCreate(savedInstanceState); | ||
| 20 | + setContentView(R.layout.activity_invit_friend); | ||
| 21 | + getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, InvitFriendFragment.newInstance()).commitAllowingStateLoss(); | ||
| 22 | + | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + public static void startActivity(Activity activity) { | ||
| 26 | + Intent intent = new Intent(activity, InvitFriendActivity.class); | ||
| 27 | + activity.startActivity(intent); | ||
| 28 | + } | ||
| 29 | +} |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/adapter/AllRoleDetailAdapter.java
| @@ -28,6 +28,11 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | @@ -28,6 +28,11 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | ||
| 28 | private SetRoleAdapter setRoleAdapter; | 28 | private SetRoleAdapter setRoleAdapter; |
| 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; | ||
| 32 | + | ||
| 33 | + public void setOnAllRoleClickListener(OnAllRoleClickListener onAllRoleClickListener) { | ||
| 34 | + this.onAllRoleClickListener = onAllRoleClickListener; | ||
| 35 | + } | ||
| 31 | 36 | ||
| 32 | public AllRoleDetailAdapter(Context context, List<RoleNetBean.RoleListBean> allRoleList, SetRoleAdapter setRoleAdapter) { | 37 | public AllRoleDetailAdapter(Context context, List<RoleNetBean.RoleListBean> allRoleList, SetRoleAdapter setRoleAdapter) { |
| 33 | this.context = context; | 38 | this.context = context; |
| @@ -94,7 +99,6 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | @@ -94,7 +99,6 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | ||
| 94 | if (view.getId() == R.id.ll_root) { | 99 | if (view.getId() == R.id.ll_root) { |
| 95 | int position = getAdapterPosition(); | 100 | int position = getAdapterPosition(); |
| 96 | String selectId = setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).getSelectId(); | 101 | String selectId = setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).getSelectId(); |
| 97 | - Log.e(TAG, "onClick: " + selectId); | ||
| 98 | if (null == selectId) { | 102 | if (null == selectId) { |
| 99 | selectId = ""; | 103 | selectId = ""; |
| 100 | } | 104 | } |
| @@ -114,6 +118,9 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | @@ -114,6 +118,9 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | ||
| 114 | binding.checkBox.toggle(); | 118 | binding.checkBox.toggle(); |
| 115 | //开始设置全局状态 | 119 | //开始设置全局状态 |
| 116 | if (binding.checkBox.isChecked()) { | 120 | if (binding.checkBox.isChecked()) { |
| 121 | + if (null!=onAllRoleClickListener){ | ||
| 122 | + onAllRoleClickListener.onSelect(allRoleList.get(position).getId()); | ||
| 123 | + } | ||
| 117 | //添加到选中的集合 | 124 | //添加到选中的集合 |
| 118 | if (!selectId.equals(currentRoleId)) { | 125 | if (!selectId.equals(currentRoleId)) { |
| 119 | //重置状态 | 126 | //重置状态 |
| @@ -121,6 +128,9 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | @@ -121,6 +128,9 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | ||
| 121 | setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId(currentRoleId); | 128 | setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId(currentRoleId); |
| 122 | } | 129 | } |
| 123 | } else { | 130 | } else { |
| 131 | + if (null!=onAllRoleClickListener){ | ||
| 132 | + onAllRoleClickListener.onCancel(); | ||
| 133 | + } | ||
| 124 | setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId(""); | 134 | setRoleAdapter.getRoleInfoList().get(allRoleList.get(position).getParentPosition()).setSelectId(""); |
| 125 | } | 135 | } |
| 126 | //设置全局不允许选择 | 136 | //设置全局不允许选择 |
| @@ -130,7 +140,9 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | @@ -130,7 +140,9 @@ public class AllRoleDetailAdapter extends RecyclerView.Adapter { | ||
| 130 | } | 140 | } |
| 131 | } | 141 | } |
| 132 | 142 | ||
| 133 | - public interface onAllRoleClickListener { | ||
| 134 | - void onClick(int position); | 143 | + public interface OnAllRoleClickListener { |
| 144 | + void onCancel(); | ||
| 145 | + | ||
| 146 | + void onSelect(int roleId); | ||
| 135 | } | 147 | } |
| 136 | } | 148 | } |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/adapter/SetRoleAdapter.java
| @@ -27,6 +27,11 @@ public class SetRoleAdapter extends RecyclerView.Adapter { | @@ -27,6 +27,11 @@ public class SetRoleAdapter extends RecyclerView.Adapter { | ||
| 27 | private List<Integer> initNotAllowRoleId;//服务器初始给的不允许点击的值 | 27 | private List<Integer> initNotAllowRoleId;//服务器初始给的不允许点击的值 |
| 28 | private int gridCount = -1; | 28 | private int gridCount = -1; |
| 29 | private int isShowItemUserInfo = View.VISIBLE; | 29 | private int isShowItemUserInfo = View.VISIBLE; |
| 30 | + private OnSelectListener onSelectListener; | ||
| 31 | + | ||
| 32 | + public void setOnSelectListener(OnSelectListener onSelectListener) { | ||
| 33 | + this.onSelectListener = onSelectListener; | ||
| 34 | + } | ||
| 30 | 35 | ||
| 31 | public void setIsShowItemUserInfo(int isShowItemUserInfo) { | 36 | public void setIsShowItemUserInfo(int isShowItemUserInfo) { |
| 32 | this.isShowItemUserInfo = isShowItemUserInfo; | 37 | this.isShowItemUserInfo = isShowItemUserInfo; |
| @@ -74,19 +79,34 @@ public class SetRoleAdapter extends RecyclerView.Adapter { | @@ -74,19 +79,34 @@ public class SetRoleAdapter extends RecyclerView.Adapter { | ||
| 74 | ItemListSetRoleBinding binding = ((MyViewHolder) viewHolder).getBinding(); | 79 | ItemListSetRoleBinding binding = ((MyViewHolder) viewHolder).getBinding(); |
| 75 | binding.tvName.setText(roleInfoList.get(position).getUserName()); | 80 | binding.tvName.setText(roleInfoList.get(position).getUserName()); |
| 76 | GlideApp.with(context).load(roleInfoList.get(position).getUserIcon()).placeholder(R.drawable.touxiang).into(binding.ivIcon); | 81 | GlideApp.with(context).load(roleInfoList.get(position).getUserIcon()).placeholder(R.drawable.touxiang).into(binding.ivIcon); |
| 77 | - if (isShowItemUserInfo==View.VISIBLE){ | ||
| 78 | - binding.llUserInfo.setVisibility(View.VISIBLE); | ||
| 79 | - }else { | ||
| 80 | - binding.llUserInfo.setVisibility(View.GONE); | ||
| 81 | - } | 82 | + if (isShowItemUserInfo == View.VISIBLE) { |
| 83 | + binding.llUserInfo.setVisibility(View.VISIBLE); | ||
| 84 | + } else { | ||
| 85 | + binding.llUserInfo.setVisibility(View.GONE); | ||
| 86 | + } | ||
| 82 | //设置适配器 | 87 | //设置适配器 |
| 83 | adapter = new AllRoleDetailAdapter(context, roleInfoList.get(position).getRoleList(), this); | 88 | adapter = new AllRoleDetailAdapter(context, roleInfoList.get(position).getRoleList(), this); |
| 84 | if (-1 == gridCount) { | 89 | if (-1 == gridCount) { |
| 85 | binding.rvRoleList.setLayoutManager(new GridLayoutManager(context, 4)); | 90 | binding.rvRoleList.setLayoutManager(new GridLayoutManager(context, 4)); |
| 86 | - }else { | 91 | + } else { |
| 87 | binding.rvRoleList.setLayoutManager(new GridLayoutManager(context, gridCount)); | 92 | binding.rvRoleList.setLayoutManager(new GridLayoutManager(context, gridCount)); |
| 88 | } | 93 | } |
| 89 | binding.rvRoleList.setAdapter(adapter); | 94 | binding.rvRoleList.setAdapter(adapter); |
| 95 | + adapter.setOnAllRoleClickListener(new AllRoleDetailAdapter.OnAllRoleClickListener() { | ||
| 96 | + @Override | ||
| 97 | + public void onCancel() { | ||
| 98 | + if (null!=onSelectListener){ | ||
| 99 | + onSelectListener.onCancel(); | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + | ||
| 103 | + @Override | ||
| 104 | + public void onSelect(int roleId) { | ||
| 105 | + if (null!=onSelectListener){ | ||
| 106 | + onSelectListener.onSelect(roleId); | ||
| 107 | + } | ||
| 108 | + } | ||
| 109 | + }); | ||
| 90 | } | 110 | } |
| 91 | 111 | ||
| 92 | @Override | 112 | @Override |
| @@ -107,4 +127,10 @@ public class SetRoleAdapter extends RecyclerView.Adapter { | @@ -107,4 +127,10 @@ public class SetRoleAdapter extends RecyclerView.Adapter { | ||
| 107 | //item点击事件 | 127 | //item点击事件 |
| 108 | } | 128 | } |
| 109 | } | 129 | } |
| 130 | + | ||
| 131 | + public interface OnSelectListener { | ||
| 132 | + void onSelect(int roleId); | ||
| 133 | + | ||
| 134 | + void onCancel(); | ||
| 135 | + } | ||
| 110 | } | 136 | } |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/InvitFriendFragment.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.commonInfo.XiaoJIaCommInfo; | ||
| 13 | +import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentInvitFriendBinding; | ||
| 14 | +import com.cnlive.strike.xiaojiaspeaker.frame.presenter.InvitFriendPresenter; | ||
| 15 | +import com.cnlive.strike.xiaojiaspeaker.frame.view.InvitFriendView; | ||
| 16 | + | ||
| 17 | +/** | ||
| 18 | + * 二维码邀请加入 | ||
| 19 | + */ | ||
| 20 | +public class InvitFriendFragment extends MvpBindingFragment<InvitFriendView, InvitFriendPresenter, Object, FragmentInvitFriendBinding> { | ||
| 21 | + public static InvitFriendFragment newInstance() { | ||
| 22 | + InvitFriendFragment fragment = new InvitFriendFragment(); | ||
| 23 | + return fragment; | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | + @Override | ||
| 27 | + protected int getLayoutId() { | ||
| 28 | + return R.layout.fragment_invit_friend; | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + @Override | ||
| 32 | + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { | ||
| 33 | + super.onViewCreated(view, savedInstanceState); | ||
| 34 | + initTopBar(); | ||
| 35 | + getPresenter().getSetRoleList(getActivity(), XiaoJIaCommInfo.getUserId(getActivity()), XiaoJIaCommInfo.getFamilyId(getActivity())); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + private void initTopBar() { | ||
| 39 | + StatusBarUtil.setStatusBarWrite(getActivity()); | ||
| 40 | + StatusBarUtil2.setColor(getActivity(), ContextCompat.getColor(getActivity(), R.color.white), 0); | ||
| 41 | + if (null != binding) { | ||
| 42 | + binding.topbar.setTitle("二维码邀请加入"); | ||
| 43 | + //设置返回按钮 | ||
| 44 | + binding.topbar.addLeftImageButton(R.drawable.icon_back, R.id.left_back).setOnClickListener(new View.OnClickListener() { | ||
| 45 | + @Override | ||
| 46 | + public void onClick(View view) { | ||
| 47 | + getActivity().finish(); | ||
| 48 | + } | ||
| 49 | + }); | ||
| 50 | + | ||
| 51 | + } | ||
| 52 | + } | ||
| 53 | +} |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/SetFriendsRoleFragment.java
| @@ -9,7 +9,7 @@ import com.cnlive.libs.base.frame.fragment.MvpBindingFragment; | @@ -9,7 +9,7 @@ import com.cnlive.libs.base.frame.fragment.MvpBindingFragment; | ||
| 9 | import com.cnlive.libs.base.util.StatusBarUtil; | 9 | import com.cnlive.libs.base.util.StatusBarUtil; |
| 10 | import com.cnlive.libs.base.util.StatusBarUtil2; | 10 | import com.cnlive.libs.base.util.StatusBarUtil2; |
| 11 | import com.cnlive.strike.xiaojiaspeaker.R; | 11 | import com.cnlive.strike.xiaojiaspeaker.R; |
| 12 | -import com.cnlive.strike.xiaojiaspeaker.commonInfo.CommInfo; | 12 | +import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo; |
| 13 | import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentSetFriendRoleBinding; | 13 | import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentSetFriendRoleBinding; |
| 14 | import com.cnlive.strike.xiaojiaspeaker.frame.presenter.SetFriendsRolePresenter; | 14 | import com.cnlive.strike.xiaojiaspeaker.frame.presenter.SetFriendsRolePresenter; |
| 15 | import com.cnlive.strike.xiaojiaspeaker.frame.view.SetFriendsRoleView; | 15 | import com.cnlive.strike.xiaojiaspeaker.frame.view.SetFriendsRoleView; |
| @@ -46,7 +46,7 @@ public class SetFriendsRoleFragment extends MvpBindingFragment<SetFriendsRoleVie | @@ -46,7 +46,7 @@ public class SetFriendsRoleFragment extends MvpBindingFragment<SetFriendsRoleVie | ||
| 46 | initTopBar(); | 46 | initTopBar(); |
| 47 | if (null != getArguments()) { | 47 | if (null != getArguments()) { |
| 48 | selectUid = getArguments().getString("selectUid"); | 48 | selectUid = getArguments().getString("selectUid"); |
| 49 | - getPresenter().getSetRoleList(getActivity(), selectUid, CommInfo.getFamilyId(getActivity())); | 49 | + getPresenter().getSetRoleList(getActivity(), selectUid, XiaoJIaCommInfo.getFamilyId(getActivity())); |
| 50 | } else { | 50 | } else { |
| 51 | getActivity().finish(); | 51 | getActivity().finish(); |
| 52 | } | 52 | } |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/fragment/UserManagerFragment.java
| @@ -10,8 +10,6 @@ import com.cnlive.libs.base.frame.fragment.MvpBindingFragment; | @@ -10,8 +10,6 @@ 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.CommInfo; | ||
| 14 | -import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentDeviceManagerBinding; | ||
| 15 | import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentUserManagerBinding; | 13 | import com.cnlive.strike.xiaojiaspeaker.databinding.FragmentUserManagerBinding; |
| 16 | import com.cnlive.strike.xiaojiaspeaker.frame.presenter.UserManagerPresenter; | 14 | import com.cnlive.strike.xiaojiaspeaker.frame.presenter.UserManagerPresenter; |
| 17 | import com.cnlive.strike.xiaojiaspeaker.frame.view.UserManagerView; | 15 | import com.cnlive.strike.xiaojiaspeaker.frame.view.UserManagerView; |
| @@ -43,7 +41,7 @@ public class UserManagerFragment extends MvpBindingFragment<UserManagerView, Use | @@ -43,7 +41,7 @@ public class UserManagerFragment extends MvpBindingFragment<UserManagerView, Use | ||
| 43 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { | 41 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { |
| 44 | super.onViewCreated(view, savedInstanceState); | 42 | super.onViewCreated(view, savedInstanceState); |
| 45 | initTopBar(); | 43 | initTopBar(); |
| 46 | -// getPresenter().getFamilyRole(getActivity(), "123456", CommInfo.getFamilyId(getActivity())); | 44 | +// getPresenter().getFamilyRole(getActivity(), "123456", XiaoJIaCommInfo.getFamilyId(getActivity())); |
| 47 | if (null != getMvpView()) { | 45 | if (null != getMvpView()) { |
| 48 | getMvpView().initPopView(); | 46 | getMvpView().initPopView(); |
| 49 | getMvpView().initView(null); | 47 | getMvpView().initView(null); |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/util/DensityUtil.java
0 → 100644
| 1 | +package com.cnlive.strike.xiaojiaspeaker.util; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.content.res.Resources; | ||
| 5 | +import android.util.DisplayMetrics; | ||
| 6 | +import android.util.TypedValue; | ||
| 7 | +import android.view.WindowManager; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 像素密度计算工具 | ||
| 11 | + */ | ||
| 12 | +public class DensityUtil { | ||
| 13 | + private DensityUtil() { | ||
| 14 | + throw new UnsupportedOperationException("cannot be instantiated"); | ||
| 15 | + } | ||
| 16 | + | ||
| 17 | + public static int dp2px(Context context, float dpVal) { | ||
| 18 | + return (int) TypedValue.applyDimension(1, dpVal, context.getResources().getDisplayMetrics()); | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public static int sp2px(Context context, float spVal) { | ||
| 22 | + return (int)TypedValue.applyDimension(2, spVal, context.getResources().getDisplayMetrics()); | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + public static float px2dp(Context context, float pxVal) { | ||
| 26 | + float scale = context.getResources().getDisplayMetrics().density; | ||
| 27 | + return pxVal / scale; | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + public static float px2sp(Context context, float pxVal) { | ||
| 31 | + return pxVal / context.getResources().getDisplayMetrics().scaledDensity; | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + public static int getScreenWidth(Context context) { | ||
| 35 | + DisplayMetrics metric = new DisplayMetrics(); | ||
| 36 | + WindowManager windowManager = (WindowManager)context.getApplicationContext().getSystemService("window"); | ||
| 37 | + if (windowManager != null) { | ||
| 38 | + windowManager.getDefaultDisplay().getMetrics(metric); | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + return metric.widthPixels; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + public static int getScreenHeight(Context context) { | ||
| 45 | + DisplayMetrics metric = new DisplayMetrics(); | ||
| 46 | + WindowManager windowManager = (WindowManager)context.getApplicationContext().getSystemService("window"); | ||
| 47 | + if (windowManager != null) { | ||
| 48 | + windowManager.getDefaultDisplay().getMetrics(metric); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + return metric.heightPixels; | ||
| 52 | + } | ||
| 53 | +} | ||
| 0 | \ No newline at end of file | 54 | \ No newline at end of file |
module_xiaojiaSoundBox/src/main/res/drawable/shape_green_circle.xml
0 → 100644
module_xiaojiaSoundBox/src/main/res/layout/activity_conn_bluetooth_success.xml
| @@ -46,16 +46,29 @@ | @@ -46,16 +46,29 @@ | ||
| 46 | android:layout_height="0dp" | 46 | android:layout_height="0dp" |
| 47 | android:layout_weight="1" | 47 | android:layout_weight="1" |
| 48 | android:orientation="vertical"> | 48 | android:orientation="vertical"> |
| 49 | - | ||
| 50 | - <TextView | ||
| 51 | - android:layout_width="wrap_content" | ||
| 52 | - android:layout_height="wrap_content" | 49 | + <Button |
| 50 | + android:id="@+id/btn_next" | ||
| 51 | + android:layout_width="250dp" | ||
| 52 | + android:layout_height="40dp" | ||
| 53 | + android:layout_alignParentBottom="true" | ||
| 54 | + android:layout_centerHorizontal="true" | ||
| 53 | android:layout_gravity="center_horizontal" | 55 | android:layout_gravity="center_horizontal" |
| 54 | - android:text="@string/to_sound_say_tip" | ||
| 55 | - android:textColor="@color/color_999999" | 56 | + android:background="@drawable/selector_btn_green" |
| 57 | + android:text="邀请使用者" | ||
| 58 | + android:textColor="@color/white" | ||
| 56 | android:textSize="16sp" | 59 | android:textSize="16sp" |
| 57 | android:textStyle="bold" /> | 60 | android:textStyle="bold" /> |
| 58 | 61 | ||
| 62 | + <Button | ||
| 63 | + android:layout_width="250dp" | ||
| 64 | + android:layout_height="40dp" | ||
| 65 | + android:background="@drawable/shape_green_stroke" | ||
| 66 | + android:layout_gravity="center_horizontal" | ||
| 67 | + android:layout_marginTop="30dp" | ||
| 68 | + android:textSize="18sp" | ||
| 69 | + android:text="完成" | ||
| 70 | + android:textColor="@color/btn_green"/> | ||
| 71 | + | ||
| 59 | <TextView | 72 | <TextView |
| 60 | android:layout_width="216dp" | 73 | android:layout_width="216dp" |
| 61 | android:layout_height="wrap_content" | 74 | android:layout_height="wrap_content" |
| @@ -120,6 +133,8 @@ | @@ -120,6 +133,8 @@ | ||
| 120 | android:id="@+id/ll_gift_black" | 133 | android:id="@+id/ll_gift_black" |
| 121 | android:layout_width="match_parent" | 134 | android:layout_width="match_parent" |
| 122 | android:layout_height="match_parent" | 135 | android:layout_height="match_parent" |
| 136 | + android:orientation="vertical" | ||
| 137 | + android:visibility="gone" | ||
| 123 | android:background="#80000000"></LinearLayout> | 138 | android:background="#80000000"></LinearLayout> |
| 124 | 139 | ||
| 125 | <LinearLayout | 140 | <LinearLayout |
| @@ -128,6 +143,7 @@ | @@ -128,6 +143,7 @@ | ||
| 128 | android:layout_height="match_parent" | 143 | android:layout_height="match_parent" |
| 129 | android:clickable="true" | 144 | android:clickable="true" |
| 130 | android:gravity="center" | 145 | android:gravity="center" |
| 146 | + android:visibility="gone" | ||
| 131 | android:orientation="vertical"> | 147 | android:orientation="vertical"> |
| 132 | 148 | ||
| 133 | <ImageView | 149 | <ImageView |
module_xiaojiaSoundBox/src/main/res/layout/activity_invit_friend.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<layout> | ||
| 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:orientation="vertical" | ||
| 10 | + tools:context=".ui.activity.AllDeviceActivity"> | ||
| 11 | + | ||
| 12 | + <RelativeLayout | ||
| 13 | + android:id="@+id/fragment_container" | ||
| 14 | + android:layout_width="match_parent" | ||
| 15 | + android:layout_height="match_parent"></RelativeLayout> | ||
| 16 | + | ||
| 17 | + </RelativeLayout> | ||
| 18 | +</layout> | ||
| 0 | \ No newline at end of file | 19 | \ No newline at end of file |
module_xiaojiaSoundBox/src/main/res/layout/dialog_edit_role.xml
| @@ -57,8 +57,7 @@ | @@ -57,8 +57,7 @@ | ||
| 57 | android:id="@+id/rv_role" | 57 | android:id="@+id/rv_role" |
| 58 | android:layout_width="match_parent" | 58 | android:layout_width="match_parent" |
| 59 | android:layout_height="wrap_content" | 59 | android:layout_height="wrap_content" |
| 60 | - android:minHeight="50dp" | ||
| 61 | - android:paddingLeft="10dp" /> | 60 | + android:minHeight="50dp" /> |
| 62 | 61 | ||
| 63 | <View | 62 | <View |
| 64 | android:layout_width="match_parent" | 63 | android:layout_width="match_parent" |
module_xiaojiaSoundBox/src/main/res/layout/fragment_invit_friend.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<layout> | ||
| 3 | + | ||
| 4 | + <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 5 | + android:layout_width="match_parent" | ||
| 6 | + android:layout_height="match_parent" | ||
| 7 | + android:background="@color/white" | ||
| 8 | + android:orientation="vertical"> | ||
| 9 | + | ||
| 10 | + <com.qmuiteam.qmui.widget.QMUITopBar | ||
| 11 | + android:id="@+id/topbar" | ||
| 12 | + android:layout_width="match_parent" | ||
| 13 | + android:layout_height="?attr/qmui_topbar_height" /> | ||
| 14 | + | ||
| 15 | + <FrameLayout | ||
| 16 | + android:layout_width="match_parent" | ||
| 17 | + android:layout_height="match_parent"> | ||
| 18 | + | ||
| 19 | + <LinearLayout | ||
| 20 | + android:layout_width="match_parent" | ||
| 21 | + android:layout_height="match_parent" | ||
| 22 | + android:orientation="vertical"> | ||
| 23 | + | ||
| 24 | + | ||
| 25 | + <!--1--> | ||
| 26 | + <LinearLayout | ||
| 27 | + android:layout_width="match_parent" | ||
| 28 | + android:layout_height="wrap_content" | ||
| 29 | + android:orientation="vertical"> | ||
| 30 | + | ||
| 31 | + <TextView | ||
| 32 | + android:layout_width="wrap_content" | ||
| 33 | + android:layout_height="wrap_content" | ||
| 34 | + android:layout_marginLeft="10dp" | ||
| 35 | + android:layout_marginTop="10dp" | ||
| 36 | + android:text="选择家人角色" | ||
| 37 | + android:textColor="@color/color_282828" | ||
| 38 | + android:textSize="16sp" | ||
| 39 | + android:textStyle="bold" /> | ||
| 40 | + | ||
| 41 | + <android.support.v7.widget.RecyclerView | ||
| 42 | + android:id="@+id/rv_role" | ||
| 43 | + android:layout_width="match_parent" | ||
| 44 | + android:layout_height="wrap_content" | ||
| 45 | + android:minHeight="40dp" | ||
| 46 | + android:overScrollMode="never" /> | ||
| 47 | + </LinearLayout> | ||
| 48 | + <!--2--> | ||
| 49 | + <LinearLayout | ||
| 50 | + android:layout_width="match_parent" | ||
| 51 | + android:layout_height="0dp" | ||
| 52 | + android:layout_weight="1" | ||
| 53 | + android:orientation="vertical"> | ||
| 54 | + | ||
| 55 | + <FrameLayout | ||
| 56 | + android:layout_width="wrap_content" | ||
| 57 | + android:layout_height="wrap_content" | ||
| 58 | + android:layout_gravity="center_horizontal"> | ||
| 59 | + | ||
| 60 | + <ImageView | ||
| 61 | + android:id="@+id/iv_qrcode" | ||
| 62 | + android:layout_width="200dp" | ||
| 63 | + android:layout_height="200dp" /> | ||
| 64 | + | ||
| 65 | + <LinearLayout | ||
| 66 | + android:id="@+id/ll_no_qrcode" | ||
| 67 | + android:layout_width="200dp" | ||
| 68 | + android:layout_height="200dp" | ||
| 69 | + android:background="#E1F9D7" | ||
| 70 | + android:gravity="center" | ||
| 71 | + android:orientation="vertical"> | ||
| 72 | + | ||
| 73 | + <TextView | ||
| 74 | + android:layout_width="wrap_content" | ||
| 75 | + android:layout_height="wrap_content" | ||
| 76 | + android:text="选择家人角色" | ||
| 77 | + android:textColor="@color/color_199F18" | ||
| 78 | + android:textSize="18sp" | ||
| 79 | + android:textStyle="bold" /> | ||
| 80 | + | ||
| 81 | + <TextView | ||
| 82 | + android:layout_width="wrap_content" | ||
| 83 | + android:layout_height="wrap_content" | ||
| 84 | + android:layout_marginTop="20dp" | ||
| 85 | + android:text="生成二维码" | ||
| 86 | + android:textColor="@color/color_199F18" | ||
| 87 | + android:textSize="18sp" | ||
| 88 | + android:textStyle="bold" /> | ||
| 89 | + </LinearLayout> | ||
| 90 | + </FrameLayout> | ||
| 91 | + </LinearLayout> | ||
| 92 | + <!--3--> | ||
| 93 | + <LinearLayout | ||
| 94 | + android:layout_width="match_parent" | ||
| 95 | + android:layout_height="0dp" | ||
| 96 | + android:layout_weight="1" | ||
| 97 | + android:orientation="vertical"> | ||
| 98 | + | ||
| 99 | + <TextView | ||
| 100 | + android:layout_width="wrap_content" | ||
| 101 | + android:layout_height="wrap_content" | ||
| 102 | + android:layout_gravity="center_horizontal" | ||
| 103 | + android:layout_marginTop="20dp" | ||
| 104 | + android:text="请对方使用网家家“扫一扫”绑定" | ||
| 105 | + android:textColor="@color/color_282828" | ||
| 106 | + android:textSize="18sp" | ||
| 107 | + android:textStyle="bold" /> | ||
| 108 | + | ||
| 109 | + <LinearLayout | ||
| 110 | + android:layout_width="match_parent" | ||
| 111 | + android:layout_height="wrap_content" | ||
| 112 | + android:layout_marginTop="20dp" | ||
| 113 | + android:gravity="center"> | ||
| 114 | + | ||
| 115 | + <TextView | ||
| 116 | + android:layout_width="15dp" | ||
| 117 | + android:layout_height="15dp" | ||
| 118 | + android:background="@drawable/shape_green_circle" | ||
| 119 | + android:gravity="center" | ||
| 120 | + android:text="1" | ||
| 121 | + android:textColor="@color/white" | ||
| 122 | + android:textSize="11sp" | ||
| 123 | + android:textStyle="bold" /> | ||
| 124 | + | ||
| 125 | + <TextView | ||
| 126 | + android:layout_width="wrap_content" | ||
| 127 | + android:layout_height="wrap_content" | ||
| 128 | + android:layout_marginLeft="5dp" | ||
| 129 | + android:layout_marginRight="5dp" | ||
| 130 | + android:text="下载网家家 >" | ||
| 131 | + android:textColor="@color/color_282828" | ||
| 132 | + android:textSize="12sp" | ||
| 133 | + android:textStyle="bold" /> | ||
| 134 | + | ||
| 135 | + <TextView | ||
| 136 | + android:layout_width="15dp" | ||
| 137 | + android:layout_height="15dp" | ||
| 138 | + android:background="@drawable/shape_green_circle" | ||
| 139 | + android:gravity="center" | ||
| 140 | + android:text="2" | ||
| 141 | + android:textColor="@color/white" | ||
| 142 | + android:textSize="11sp" | ||
| 143 | + android:textStyle="bold" /> | ||
| 144 | + | ||
| 145 | + <TextView | ||
| 146 | + android:layout_width="wrap_content" | ||
| 147 | + android:layout_height="wrap_content" | ||
| 148 | + android:layout_marginLeft="5dp" | ||
| 149 | + android:layout_marginRight="5dp" | ||
| 150 | + android:text="注册/登录 >" | ||
| 151 | + android:textColor="@color/color_282828" | ||
| 152 | + android:textSize="12sp" | ||
| 153 | + android:textStyle="bold" /> | ||
| 154 | + | ||
| 155 | + <TextView | ||
| 156 | + android:layout_width="15dp" | ||
| 157 | + android:layout_height="15dp" | ||
| 158 | + android:background="@drawable/shape_green_circle" | ||
| 159 | + android:gravity="center" | ||
| 160 | + android:text="3" | ||
| 161 | + android:textColor="@color/white" | ||
| 162 | + android:textSize="11sp" | ||
| 163 | + android:textStyle="bold" /> | ||
| 164 | + | ||
| 165 | + <TextView | ||
| 166 | + android:layout_width="wrap_content" | ||
| 167 | + android:layout_height="wrap_content" | ||
| 168 | + android:layout_marginLeft="5dp" | ||
| 169 | + android:text="扫码绑定" | ||
| 170 | + android:textColor="@color/color_282828" | ||
| 171 | + android:textSize="12sp" | ||
| 172 | + android:textStyle="bold" /> | ||
| 173 | + </LinearLayout> | ||
| 174 | + <!-- --> | ||
| 175 | + <Button | ||
| 176 | + android:id="@+id/btn_share" | ||
| 177 | + android:layout_width="match_parent" | ||
| 178 | + android:layout_height="40dp" | ||
| 179 | + android:layout_alignParentBottom="true" | ||
| 180 | + android:layout_centerHorizontal="true" | ||
| 181 | + android:layout_marginLeft="20dp" | ||
| 182 | + android:layout_marginTop="30dp" | ||
| 183 | + android:layout_marginRight="20dp" | ||
| 184 | + android:background="@drawable/selector_btn_green" | ||
| 185 | + android:text="保存并分享给家人" | ||
| 186 | + android:textColor="@color/white" | ||
| 187 | + android:textSize="16sp" | ||
| 188 | + android:textStyle="bold" /> | ||
| 189 | + </LinearLayout> | ||
| 190 | + </LinearLayout> | ||
| 191 | + | ||
| 192 | + <com.cnlive.strike.ui.widget.UIEmptyView | ||
| 193 | + android:id="@+id/empty_layout" | ||
| 194 | + android:layout_width="match_parent" | ||
| 195 | + android:layout_height="match_parent" | ||
| 196 | + android:background="@color/color_fff" | ||
| 197 | + android:visibility="gone" /> | ||
| 198 | + </FrameLayout><!-- --> | ||
| 199 | + </LinearLayout> | ||
| 200 | +</layout> | ||
| 0 | \ No newline at end of file | 201 | \ No newline at end of file |
module_xiaojiaSoundBox/src/main/res/layout/item_list_set_role_check_box.xml
| @@ -3,9 +3,10 @@ | @@ -3,9 +3,10 @@ | ||
| 3 | 3 | ||
| 4 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | 4 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| 5 | android:id="@+id/ll_root" | 5 | android:id="@+id/ll_root" |
| 6 | - android:layout_width="wrap_content" | 6 | + android:layout_width="match_parent" |
| 7 | android:layout_height="wrap_content" | 7 | android:layout_height="wrap_content" |
| 8 | android:clickable="true" | 8 | android:clickable="true" |
| 9 | + android:gravity="center" | ||
| 9 | android:orientation="vertical"> | 10 | android:orientation="vertical"> |
| 10 | 11 | ||
| 11 | <CheckBox | 12 | <CheckBox |
module_xiaojiaSoundBox/src/main/res/values/colors.xml
| @@ -39,4 +39,5 @@ | @@ -39,4 +39,5 @@ | ||
| 39 | <color name="btn_close">#D3D3D3</color> | 39 | <color name="btn_close">#D3D3D3</color> |
| 40 | <color name="color_73DC41">#73DC41</color> | 40 | <color name="color_73DC41">#73DC41</color> |
| 41 | <color name="color_B2B2B2">#B2B2B2</color> | 41 | <color name="color_B2B2B2">#B2B2B2</color> |
| 42 | + <color name="color_199F18">#199F18</color> | ||
| 42 | </resources> | 43 | </resources> |