From 7a3e13eedecdcfa5e19ac690bc7e22e658ab7292 Mon Sep 17 00:00:00 2001
From: Ming <18642047181@163.com>
Date: Fri, 1 Apr 2022 23:53:35 +0800
Subject: [PATCH] =?UTF-8?q?[function]=E6=8E=92=E5=BA=8F=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 8 +-
.../skipping/activity/begin/BeginActivity.kt | 17 +--
.../activity/detail/DetailActivity.java | 32 ++---
.../skipping/activity/home/HomeActivity.kt | 5 +-
.../com/skipping/fragment/pair/DeviceBean.kt | 21 +++-
.../com/skipping/fragment/pair/PairAdaper.kt | 61 +++++++++-
.../skipping/fragment/pair/PairFragment.kt | 69 ++++++++---
.../skipping/fragment/pair/PairPresenter.kt | 24 +++-
app/src/main/java/com/skipping/net/API.java | 6 +
.../java/com/skipping/net/DeviceCode.java | 27 +++++
.../com/skipping/utils/ConnectManager.java | 112 +++++++++++++++---
.../com/skipping/view/dialog/DialogTool.kt | 24 ++--
app/src/main/res/layout/fragment_pair.xml | 36 +++++-
app/src/main/res/layout/pair_item.xml | 95 +++++++++++----
app/src/main/res/values/colors.xml | 1 +
15 files changed, 435 insertions(+), 103 deletions(-)
create mode 100644 app/src/main/java/com/skipping/net/DeviceCode.java
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dbc3e42..213a2b9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,7 +20,13 @@
-
+
+
+
+
+
+
+
() {
}
}
begin_listRL.setOnClickListener {
- dialog = DialogTool(this).buildList(this, choseGradeBeanList) {
+ dialog = DialogTool().buildList(this, choseGradeBeanList) {
adaper.list = it.bean
adaper.notifyDataSetChanged()
begin_list.text = it.content
diff --git a/app/src/main/java/com/skipping/activity/detail/DetailActivity.java b/app/src/main/java/com/skipping/activity/detail/DetailActivity.java
index 82ed4ec..83f4e4b 100644
--- a/app/src/main/java/com/skipping/activity/detail/DetailActivity.java
+++ b/app/src/main/java/com/skipping/activity/detail/DetailActivity.java
@@ -60,28 +60,28 @@ public class DetailActivity extends BaseActivity {
adapter.setOnClickListener(new DetailAdapter.OnClick() {
@Override
public void click(int position) {
- connectManager.pairDevice(position);
+// connectManager.pairDevice(position);
}
});
MMKV kv = MMKV.defaultMMKV();
concise = new Concise(Contants.BASE_URL) {
}.addHeader("Token", kv.decodeString(Contants.TOKEN));
ErrorToken.intercept(this, concise);
-// concise.request(DetailActivity.this, concise.api.detailActivity(id), new CallBack>() {
-// @Override
-// public void onSuccess(BaseBean listBaseBean) {
-// idTV.setText(listBaseBean.getData().getId() + "");
-// name.setText(listBaseBean.getData().getActivityName() + "");
-// adapter.setData(listBaseBean.getData().getCandidates().get(0));
-// adapter.notifyDataSetChanged();
-//
-// }
-//
-// @Override
-// public void onFailed(Throwable e) {
-//
-// }
-// });
+ concise.request(DetailActivity.this, concise.api.detailActivity(id), new CallBack>() {
+ @Override
+ public void onSuccess(BaseBean listBaseBean) {
+ idTV.setText(listBaseBean.getData().getId() + "");
+ name.setText(listBaseBean.getData().getActivityName() + "");
+ adapter.setData(listBaseBean.getData().getCandidates().get(0));
+ adapter.notifyDataSetChanged();
+
+ }
+
+ @Override
+ public void onFailed(Throwable e) {
+
+ }
+ });
List list = new ArrayList<>();
DetailActivityBean.CandidatesBean bean1 = new DetailActivityBean.CandidatesBean();
diff --git a/app/src/main/java/com/skipping/activity/home/HomeActivity.kt b/app/src/main/java/com/skipping/activity/home/HomeActivity.kt
index 0a167f3..14ffe2f 100644
--- a/app/src/main/java/com/skipping/activity/home/HomeActivity.kt
+++ b/app/src/main/java/com/skipping/activity/home/HomeActivity.kt
@@ -19,9 +19,9 @@ import com.skipping.activity.perform.PerformActivity
import com.skipping.activity.setting.SettingActivity
import com.skipping.net.ActivityBean
import com.skipping.net.GradleBean
+import com.skipping.utils.ConnectManager
import com.skipping.utils.DateUtils
import com.skipping.utils.ScreenUtil
-import com.skipping.view.bubblewindow.BubbleWindow
import com.skipping.view.dialog.DialogBean
import com.skipping.view.dialog.DialogTool
import kotlinx.android.synthetic.main.activity_detail.view.*
@@ -58,6 +58,7 @@ class HomeActivity : BaseActivity() {
}
override fun initData() {
+ ConnectManager.getSingleton()
setting_btn.setOnClickListener {
startActivity(Intent(this@HomeActivity, SettingActivity::class.java))
}
@@ -68,7 +69,7 @@ class HomeActivity : BaseActivity() {
p.getClassList()
choseClass.setOnClickListener {
- dialog = DialogTool(this).buildList(this, choseGradeBeanList) {
+ dialog = DialogTool().buildList(this, choseGradeBeanList) {
choseCla = it.bean
chooseIV.text = it.bean.groupName + "班"
activityNameEdit?.setText(it.bean.groupName + "班活动")
diff --git a/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt b/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt
index 6e312fd..894f03f 100644
--- a/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt
+++ b/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt
@@ -1,11 +1,28 @@
package com.skipping.fragment.pair
+import com.libs.utils.LogUtil
+import com.loop.loopminisdk.LoopDevice
+import com.loop.loopminisdk.LoopHost
+
/**
* @author Ming
* 3/27/22
*
*/
class DeviceBean {
- var id: Int? = null
- var mac: String? = null
+ var Code: String? = null
+ get() {
+ if (field?.get(0) == '0') {
+ LogUtil.e("123123")
+ return field?.replace("0", "")
+ }
+ return field
+ }
+
+ var loopDevice: LoopDevice? = null
+
+
+ override fun toString(): String {
+ return "DeviceBean(Code=$Code, loopDevice=$loopDevice)"
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/fragment/pair/PairAdaper.kt b/app/src/main/java/com/skipping/fragment/pair/PairAdaper.kt
index 3456d88..ea01c7a 100644
--- a/app/src/main/java/com/skipping/fragment/pair/PairAdaper.kt
+++ b/app/src/main/java/com/skipping/fragment/pair/PairAdaper.kt
@@ -5,35 +5,74 @@ import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.LinearLayout
import android.widget.TextView
+import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.RecyclerView
import com.loop.loopminisdk.LoopDevice
+import com.loop.loopminisdk.LoopMini
import com.skipping.R
+import com.skipping.net.ActivityBean
/**
* @author Ming
* 3/25/22
*
*/
-class PairAdaper(context: Context?,list: List) : RecyclerView.Adapter() {
+class PairAdaper(context: Context?, list: List) : RecyclerView.Adapter() {
var list = list
var context = context
lateinit var onClick: () -> Unit
+ lateinit var onClickConnect: (bean: DeviceBean) -> Unit
+ var status = STATUS.con
- fun setData(list: List){
+ fun setData(list: List) {
this.list = list
notifyDataSetChanged()
}
+ fun changeStatus(st: STATUS) {
+ status = st
+ notifyDataSetChanged()
+ }
+
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PairAdaper.Holder {
return Holder(LayoutInflater.from(context).inflate(R.layout.pair_item, parent, false))
}
override fun onBindViewHolder(holder: PairAdaper.Holder, position: Int) {
- holder.pair_item_tv1.text = list[position].loopDeviceId.toString()
- holder.pair_item_tv2.text = list[position].macList.toString()
- holder.pair_item_tv3.text = list[position].power.toString()
+ holder.pair_item_tv1.text = list[position].Code
+ if (list[position].loopDevice?.macList == null) {
+ holder.pair_item_tv2.text = ""
+ holder.pair_item_tv4.text = "未配对"
+ holder.pair_item_tv4.setTextColor(ContextCompat.getColor(context!!, R.color.color_d71345))
+ } else {
+ holder.pair_item_tv2.text = LoopMini.bytesToHexString(list[position].loopDevice?.macList)
+ holder.pair_item_tv4.text = "已配对"
+ holder.pair_item_tv4.setTextColor(ContextCompat.getColor(context!!, R.color.color_3d3d3d))
+ }
+ if (list[position].loopDevice?.power == null) {
+ holder.pair_item_tv3.text = ""
+ } else {
+ holder.pair_item_tv3.text = list[position].loopDevice?.power.toString()
+ }
+
+ when (status) {
+ STATUS.con -> {
+ holder.pair_item_tv3.visibility = View.GONE
+ holder.pair_item_ll.visibility = View.VISIBLE
+ }
+ STATUS.uncon -> {
+ holder.pair_item_tv3.visibility = View.VISIBLE
+ holder.pair_item_ll.visibility = View.GONE
+ }
+ }
+
+ holder.pair_item_tv5.setOnClickListener {
+ onClickConnect.invoke(list[position])
+ }
+
}
override fun getItemCount(): Int {
@@ -44,5 +83,17 @@ class PairAdaper(context: Context?,list: List) : RecyclerView.Adapte
var pair_item_tv1 = itemView.findViewById(R.id.pair_item_tv1)
var pair_item_tv2 = itemView.findViewById(R.id.pair_item_tv2)
var pair_item_tv3 = itemView.findViewById(R.id.pair_item_tv3)
+ var pair_item_tv4 = itemView.findViewById(R.id.pair_item_tv4)
+ var pair_item_tv5 = itemView.findViewById(R.id.pair_item_tv5)
+ var pair_item_ll = itemView.findViewById(R.id.pair_item_ll)
+ }
+
+ fun setOnConnectClickListener(onClickConnect: (bean: DeviceBean) -> Unit) {
+ this.onClickConnect = onClickConnect
+ }
+
+
+ enum class STATUS {
+ con, uncon
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt b/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt
index f1e81de..7baaee7 100644
--- a/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt
+++ b/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt
@@ -1,15 +1,18 @@
package com.skipping.fragment.pair
+import android.app.Dialog
import android.os.Bundle
import android.view.View
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import com.libs.fragment.BaseFragment
import com.libs.utils.LogUtil
-import com.loop.loopminisdk.LoopDevice
import com.loop.loopminisdk.LoopMini
import com.skipping.R
+import com.skipping.net.DeviceCode
import com.skipping.utils.ConnectManager
+import com.skipping.view.dialog.DialogTool
+import com.skipping.view.dialog.Status
import kotlinx.android.synthetic.main.activity_perform.*
import kotlinx.android.synthetic.main.fragment_pair.*
@@ -20,19 +23,18 @@ import kotlinx.android.synthetic.main.fragment_pair.*
*/
class PairFragment : BaseFragment() {
var position = 0
- var deviceList: MutableList = ArrayList()
lateinit var manager: ConnectManager
- lateinit var adaper:PairAdaper
+ lateinit var adaper: PairAdaper
override fun getLayoutId(): Int {
return R.layout.fragment_pair;
}
override fun initView(view: View?, savedInstanceState: Bundle?) {
+ initPresnter()
pairStatus.setOnClickListener {
- manager.host
+ LogUtil.e("列表", manager.deviceBeanList)
}
-
pair_btn.setOnClickListener {
if (position == 0) {
return@setOnClickListener
@@ -42,6 +44,9 @@ class PairFragment : BaseFragment() {
pair_btn.setTextColor(ContextCompat.getColor(activity!!, R.color.black))
connect_btn.setBackgroundResource(R.drawable.connect_btn_unclicked)
connect_btn.setTextColor(ContextCompat.getColor(activity!!, R.color.white))
+ pair_power.visibility = View.GONE
+ pair_ll.visibility = View.VISIBLE
+ adaper.changeStatus(PairAdaper.STATUS.con)
}
connect_btn.setOnClickListener {
@@ -53,26 +58,38 @@ class PairFragment : BaseFragment() {
pair_btn.setTextColor(ContextCompat.getColor(activity!!, R.color.white))
connect_btn.setBackgroundResource(R.drawable.connect_btn_clicked)
connect_btn.setTextColor(ContextCompat.getColor(activity!!, R.color.black))
+ pair_power.visibility = View.VISIBLE
+ pair_ll.visibility = View.GONE
+ adaper.changeStatus(PairAdaper.STATUS.uncon)
+ }
+ title_host.setOnClickListener {
+ manager.openPairMode()
}
}
override fun initData() {
manager = ConnectManager.getSingleton()
+ manager.setOnflushListListener {
+ adaper.setData(manager.deviceBeanList)
+ adaper.notifyDataSetChanged()
+ }
+ showDeviceList()
+
manager.setLoopHostListener {
var bytes = it.macList
pair_address.text = "网关地址:" + LoopMini.bytesToHexString(bytes)
pair_id.text = "网关id:" + it.hostId.toString()
pair_list.layoutManager = LinearLayoutManager(activity)
- for (i in 0..it.license){
- var device = LoopDevice().apply {
- this.loopDeviceId = i
- }
- deviceList.add(device)
- }
- adaper = PairAdaper(activity,deviceList)
- pair_list.adapter = adaper
- adaper.notifyDataSetChanged()
+// for (i in 0..it.license) {
+// var device = LoopDevice().apply {
+// this.loopDeviceId = i
+// }
+// deviceList.add(device)
+// }
+// adaper = PairAdaper(activity, deviceList)
+// pair_list.adapter = adaper
+// adaper.notifyDataSetChanged()
}
}
@@ -85,4 +102,28 @@ class PairFragment : BaseFragment() {
super.onPause()
// manager.pause()
}
+
+ fun deviceList(list: List) {
+// list.forEach {
+// var deviceBean = DeviceBean()
+// deviceBean.Code = it.code
+// deviceList.add(deviceBean)
+// }
+// manager.setList(deviceList)
+// pair_list.layoutManager = LinearLayoutManager(activity)
+// adaper = PairAdaper(activity, deviceList)
+// adaper.setOnConnectClickListener {
+// manager.pairDevice(activity, it.Code?.toInt()!!)
+// }
+// pair_list.adapter = adaperpair_item_tv5
+ }
+
+ fun showDeviceList(){
+ pair_list.layoutManager = LinearLayoutManager(activity)
+ adaper = PairAdaper(activity, manager.deviceBeanList)
+ adaper.setOnConnectClickListener {
+ manager.pairDevice(activity, it.Code?.toInt()!!)
+ }
+ pair_list.adapter = adaper
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt b/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt
index 20988a1..bb5ef0e 100644
--- a/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt
+++ b/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt
@@ -1,12 +1,34 @@
package com.skipping.fragment.pair
import com.libs.fragment.BasePresenter
+import com.libs.network.CallBack
+import com.libs.network.Concise
+import com.skipping.BASE_URL
+import com.skipping.TOKEN
import com.skipping.activity.IView
+import com.skipping.net.API
+import com.skipping.net.ActivityBean
+import com.skipping.net.BaseBean
+import com.skipping.net.DeviceCode
+import com.tencent.mmkv.MMKV
/**
* @author Ming
* 3/24/22
*
*/
-class PairPresenter :BasePresenter(){
+class PairPresenter :BasePresenter(){
+ val mmkv = MMKV.defaultMMKV()
+ val concise: Concise = object : Concise(BASE_URL) {}.addHeader("Token", mmkv?.decodeString(TOKEN)).build() as Concise
+
+ fun getDeviceList(){
+ concise.request(v, concise.api.getdeviceList(), object : CallBack>> {
+ override fun onSuccess(k: BaseBean>?) {
+ v.deviceList(k?.data!!)
+ }
+
+ override fun onFailed(e: Throwable?) {
+ }
+ })
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/skipping/net/API.java b/app/src/main/java/com/skipping/net/API.java
index d653687..b3f3c4f 100644
--- a/app/src/main/java/com/skipping/net/API.java
+++ b/app/src/main/java/com/skipping/net/API.java
@@ -75,4 +75,10 @@ public interface API {
Observable score(@Body ScoreReqBean scoreReqBean);
+ /**
+ * 设备列表
+ * @return
+ */
+ @GET("rope/list")
+ Observable>> getdeviceList();
}
diff --git a/app/src/main/java/com/skipping/net/DeviceCode.java b/app/src/main/java/com/skipping/net/DeviceCode.java
new file mode 100644
index 0000000..abb9b78
--- /dev/null
+++ b/app/src/main/java/com/skipping/net/DeviceCode.java
@@ -0,0 +1,27 @@
+package com.skipping.net;
+
+/**
+ * @author Ming
+ * 4/1/22
+ */
+public class DeviceCode {
+ private String Code;
+
+ public String getCode() {
+ if (Code.getBytes()[0] == '0') {
+ return Code.replace("0", "");
+ }
+ return Code;
+ }
+
+ public void setCode(String code) {
+ Code = code;
+ }
+
+ @Override
+ public String toString() {
+ return "DeviceCode{" +
+ "Code='" + Code + '\'' +
+ '}';
+ }
+}
diff --git a/app/src/main/java/com/skipping/utils/ConnectManager.java b/app/src/main/java/com/skipping/utils/ConnectManager.java
index 31b2426..e1b2ba8 100644
--- a/app/src/main/java/com/skipping/utils/ConnectManager.java
+++ b/app/src/main/java/com/skipping/utils/ConnectManager.java
@@ -15,15 +15,27 @@ import android.widget.Button;
import android.widget.EditText;
import com.libs.fragment.BaseApplication;
+import com.libs.network.CallBack;
+import com.libs.network.Concise;
import com.libs.utils.LogUtil;
import com.libs.utils.ToastUtil;
import com.loop.loopminisdk.LoopDevice;
import com.loop.loopminisdk.LoopHost;
import com.loop.loopminisdk.LoopMessage;
import com.loop.loopminisdk.LoopMini;
+import com.skipping.APP;
+import com.skipping.Contants;
import com.skipping.R;
import com.skipping.activity.HostActivity;
+import com.skipping.fragment.pair.DeviceBean;
+import com.skipping.net.API;
+import com.skipping.net.BaseBean;
+import com.skipping.net.DeviceCode;
+import com.skipping.view.dialog.DialogTool;
+import com.skipping.view.dialog.Status;
+import com.tencent.mmkv.MMKV;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -42,8 +54,12 @@ public class ConnectManager {
private Handler mHandler;
private int position;
private OnLoopHost onLoopHost;
+ private OnflushList onflushList;
private ScheduledFuture scheduledFuture;
private static volatile ConnectManager connectManager;
+ public List deviceBeanList = new ArrayList<>();
+ private ScheduledFuture future;
+ private DialogTool dialog;
public static ConnectManager getSingleton() {
if (connectManager == null) {
@@ -56,6 +72,10 @@ public class ConnectManager {
return connectManager;
}
+ public void setList(List deviceBeanList) {
+ deviceBeanList.clear();
+ this.deviceBeanList.addAll(deviceBeanList);
+ }
private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
@@ -82,8 +102,8 @@ public class ConnectManager {
};
public ConnectManager() {
- LogUtil.e("创建");
mHandler = new DeviceHandler();
+ getdeviceList();
}
private final ServiceConnection usbConnection = new ServiceConnection() {
@@ -97,7 +117,7 @@ public class ConnectManager {
loopMax.getHostInfo();
loopMax.openPairMode();
}
- },1000);
+ }, 1000);
}
@Override
@@ -140,7 +160,22 @@ public class ConnectManager {
*
* @param id
*/
- public void pairDevice(int id) {
+ public void pairDevice(Activity activity, int id) {
+ LogUtil.e("连接到", id);
+ if (dialog != null) {
+ dialog.setStatus(Status.CONNECTING);
+ } else {
+ dialog = new DialogTool();
+ dialog.build(activity, Status.CONNECTING, String.valueOf(id));
+ dialog.dialog_reset.setOnClickListener(v -> pairDevice(activity, id));
+ dialog.dialog_cancel.setOnClickListener(v -> dialog.dismiss());
+ }
+ if (future != null) {
+ future.cancel(false);
+ }
+ future = ThreadPoolUtil.getSingleton().scheduleMain(() -> {
+ dialog.setStatus(Status.RESET);
+ }, 3000);
loopMax.pairDevice(id);
}
@@ -178,14 +213,13 @@ public class ConnectManager {
}
- public void resume(){
+ public void resume() {
setFilters();
startService(usbConnection);
}
- public void pause(){
- LogUtil.e("关闭");
+ public void pause() {
BaseApplication.getInstance().unregisterReceiver(mUsbReceiver);
BaseApplication.getInstance().unbindService(usbConnection);
}
@@ -217,8 +251,10 @@ public class ConnectManager {
super.handleMessage(msg);
switch (msg.what) {
case LoopMini.LOOP_PAIR_DEVICE_INFO:
+ case LoopMini.LOOP_GET_DEVICE_INFO:
loopDevice = (LoopDevice) msg.obj;
- addDevice(loopDevice);
+ addList(loopDevice);
+// addDevice(loopDevice);
LogUtil.e("连接LoopDevice", loopDevice.toString());
break;
case LoopMini.Loop_GET_HOST_INFO:
@@ -226,16 +262,19 @@ public class ConnectManager {
onLoopHost.connected(loopHost);
LogUtil.e("LoopHost", loopHost.toString());
break;
- case LoopMini.LOOP_GET_DEVICE_INFO:
- loopDevice = (LoopDevice) msg.obj;
- addDevice(loopDevice);
- LogUtil.e("获取LoopDevice", loopDevice.toString());
- break;
case LoopMini.LOOP_MESSAGE:
LoopMessage loopMessage = (LoopMessage) msg.obj;
LogUtil.e("LoopMessage", loopMessage.toString());
break;
}
+ if (dialog != null) {
+ ThreadPoolUtil.getSingleton().scheduleMain(new Runnable() {
+ @Override
+ public void run() {
+ dialog.dismiss();
+ }
+ }, 1000);
+ }
}
}
@@ -243,22 +282,63 @@ public class ConnectManager {
loopDeviceSet.add(loopDevice);
}
- public Set getDevice(){
+ public Set getDevice() {
return loopDeviceSet;
}
- public void setLoopHostListener(OnLoopHost onLoopHost){
+ public void setLoopHostListener(OnLoopHost onLoopHost) {
this.onLoopHost = onLoopHost;
}
- public LoopHost getHost(){
+ public void setOnflushListListener(OnflushList onflushList) {
+ this.onflushList = onflushList;
+ }
+
+ public LoopHost getHost() {
return loopHost;
}
- public interface OnLoopHost{
+ public interface OnLoopHost {
void connected(LoopHost host);
}
+ public interface OnflushList {
+ void flush();
+ }
+
+
+ private void addList(LoopDevice loopDevice) {
+ for (DeviceBean deviceBean : deviceBeanList) {
+ if (deviceBean.getCode().equals(String.valueOf(loopDevice.loopDeviceId))) {
+ deviceBean.setLoopDevice(loopDevice);
+ onflushList.flush();
+ return;
+ }
+ }
+ }
+
+
+ private void getdeviceList() {
+ MMKV mmkv = MMKV.defaultMMKV();
+ Concise concise = new Concise(Contants.BASE_URL) {
+ }.addHeader("Token", mmkv.decodeString(Contants.TOKEN)).build();
+ concise.request(concise.api.getdeviceList(), new CallBack>>() {
+ @Override
+ public void onSuccess(BaseBean> listBaseBean) {
+ for (DeviceCode datum : listBaseBean.getData()) {
+ DeviceBean deviceBean = new DeviceBean();
+ deviceBean.setCode(datum.getCode());
+ deviceBeanList.add(deviceBean);
+ }
+ }
+
+ @Override
+ public void onFailed(Throwable e) {
+
+ }
+ });
+ }
+
}
diff --git a/app/src/main/java/com/skipping/view/dialog/DialogTool.kt b/app/src/main/java/com/skipping/view/dialog/DialogTool.kt
index a302f6c..b635557 100644
--- a/app/src/main/java/com/skipping/view/dialog/DialogTool.kt
+++ b/app/src/main/java/com/skipping/view/dialog/DialogTool.kt
@@ -11,7 +11,9 @@ import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.skipping.R
+import com.skipping.fragment.pair.PairFragment
import com.skipping.utils.ThreadPoolUtil
+import org.w3c.dom.Text
import java.util.concurrent.ScheduledFuture
/**
@@ -19,21 +21,26 @@ import java.util.concurrent.ScheduledFuture
* 3/29/22
*
*/
-class DialogTool(val context: Context) {
+class DialogTool() {
lateinit var dialog_reset: TextView
lateinit var dialog_bttv: TextView
+ lateinit var dialog_cancel: TextView
lateinit var dialog_btll: LinearLayout
lateinit var dialog_iv: ImageView
+ lateinit var dialog: AlertDialog
var future: ScheduledFuture<*>? = null
- fun build(status: Status) {
- val dialog: AlertDialog = AlertDialog.Builder(context, R.style.bubble_dialog_style).create()
- val view = View.inflate(context, R.layout.dialog_view, null)
+ fun build(activity: Activity, status: Status, content: String) {
+ dialog = AlertDialog.Builder(activity, R.style.bubble_dialog_style).create()
+ val view = View.inflate(activity, R.layout.dialog_view, null)
val dialog_ll = view.findViewById(R.id.dialog_ll)
dialog_bttv = view.findViewById(R.id.dialog_bttv)
dialog_iv = view.findViewById(R.id.dialog_iv)
dialog_btll = view.findViewById(R.id.dialog_btll)
dialog_reset = view.findViewById(R.id.dialog_reset)
+ dialog_cancel = view.findViewById(R.id.dialog_cancel)
+ val dialog_content = view.findViewById(R.id.dialog_content)
+ dialog_content.text = content
when (status) {
Status.CONNECTING -> {
dialog_btll.visibility = View.GONE
@@ -49,7 +56,6 @@ class DialogTool(val context: Context) {
}
}
-
var lp = dialog_ll.layoutParams
lp.width = 630
lp.height = 344
@@ -90,8 +96,8 @@ class DialogTool(val context: Context) {
fun buildList(activity: Activity, list: List>, onClick: (bean: DialogBean) -> Unit): AlertDialog {
- val dialog: AlertDialog = AlertDialog.Builder(context, R.style.bubble_dialog_style).create()
- val view = View.inflate(context, R.layout.dialog_view_list, null)
+ dialog = AlertDialog.Builder(activity, R.style.bubble_dialog_style).create()
+ val view = View.inflate(activity, R.layout.dialog_view_list, null)
val dialog_list_ll = view.findViewById(R.id.dialog_list_ll)
val recyclerview = view.findViewById(R.id.recyclerview)
recyclerview.layoutManager = LinearLayoutManager(activity)
@@ -107,5 +113,9 @@ class DialogTool(val context: Context) {
dialog.show()
return dialog
}
+
+ fun dismiss() {
+ dialog.dismiss()
+ }
}
diff --git a/app/src/main/res/layout/fragment_pair.xml b/app/src/main/res/layout/fragment_pair.xml
index a7665f7..a7a0cd4 100644
--- a/app/src/main/res/layout/fragment_pair.xml
+++ b/app/src/main/res/layout/fragment_pair.xml
@@ -19,6 +19,7 @@
android:layout_weight="1" />
+ android:textSize="20dp"
+ android:visibility="gone" />
+
+
+
+
+
+
+
+
+
+ android:layout_height="match_parent"
+ android:overScrollMode="never" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/pair_item.xml b/app/src/main/res/layout/pair_item.xml
index aa5c75d..44c5645 100644
--- a/app/src/main/res/layout/pair_item.xml
+++ b/app/src/main/res/layout/pair_item.xml
@@ -4,29 +4,82 @@
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center"
- android:padding="20dp">
+ android:orientation="vertical">
-
+ android:background="@color/white"
+ android:gravity="center"
+ android:orientation="horizontal">
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index b2da58d..cbf3e6d 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -29,4 +29,5 @@
#8C2C2C2C
#1296DB
#464547
+ #d71345
\ No newline at end of file