[function]排序优化
This commit is contained in:
parent
745f02ef99
commit
7a3e13eede
|
|
@ -20,7 +20,13 @@
|
|||
<activity
|
||||
android:name=".activity.MainActivity2"
|
||||
android:exported="true" />
|
||||
<activity android:name=".activity.HostActivity" />
|
||||
<activity android:name=".activity.HostActivity" >
|
||||
<!-- <intent-filter>-->
|
||||
<!-- <action android:name="android.intent.action.MAIN" />-->
|
||||
|
||||
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
|
||||
<!-- </intent-filter>-->
|
||||
</activity>
|
||||
<activity android:name=".activity.NetActivity" />
|
||||
<activity
|
||||
android:name=".activity.splash.SplashActivity"
|
||||
|
|
|
|||
|
|
@ -4,35 +4,20 @@ import android.app.Activity
|
|||
import android.app.AlertDialog
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.Window
|
||||
import android.view.WindowManager
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.libs.fragment.BaseActivity
|
||||
import com.libs.fragment.BasePresenter
|
||||
import com.libs.utils.ActivityManager
|
||||
import com.skipping.*
|
||||
import com.skipping.TIMING_NAME
|
||||
import com.skipping.activity.home.HomeActivity
|
||||
import com.skipping.activity.home.HomeGridAdaper
|
||||
import com.skipping.activity.perform.PerformActivity
|
||||
import com.skipping.activity.setting.SettingActivity
|
||||
import com.skipping.net.DetailActivityBean
|
||||
import com.skipping.net.GradleBean
|
||||
import com.skipping.utils.NumberUtil
|
||||
import com.skipping.utils.ScreenUtil
|
||||
import com.skipping.utils.StatusBarUtil
|
||||
import com.skipping.utils.ThreadPoolUtil
|
||||
import com.skipping.view.bubblewindow.BubbleWindow
|
||||
import com.skipping.view.bubblewindow.Direction
|
||||
import com.skipping.view.bubblewindow.OnItemClick
|
||||
import com.skipping.view.bubblewindow.itemview.TextItemView
|
||||
import com.skipping.view.dialog.DialogBean
|
||||
import com.skipping.view.dialog.DialogTool
|
||||
import com.tencent.mmkv.MMKV
|
||||
import kotlinx.android.synthetic.main.activity_begin.*
|
||||
import kotlinx.android.synthetic.main.activity_home.*
|
||||
import kotlinx.android.synthetic.main.net_item.view.*
|
||||
import java.util.concurrent.Future
|
||||
import java.util.concurrent.ScheduledFuture
|
||||
|
||||
|
||||
|
|
@ -95,7 +80,7 @@ class BeginActivity : BaseActivity<BeginPresenter>() {
|
|||
}
|
||||
}
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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<API>(Contants.BASE_URL) {
|
||||
}.addHeader("Token", kv.decodeString(Contants.TOKEN));
|
||||
ErrorToken.intercept(this, concise);
|
||||
// concise.request(DetailActivity.this, concise.api.detailActivity(id), new CallBack<BaseBean<DetailActivityBean>>() {
|
||||
// @Override
|
||||
// public void onSuccess(BaseBean<DetailActivityBean> 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<BaseBean<DetailActivityBean>>() {
|
||||
@Override
|
||||
public void onSuccess(BaseBean<DetailActivityBean> 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<DetailActivityBean.CandidatesBean> list = new ArrayList<>();
|
||||
DetailActivityBean.CandidatesBean bean1 = new DetailActivityBean.CandidatesBean();
|
||||
|
|
|
|||
|
|
@ -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<HomePresenter>() {
|
|||
}
|
||||
|
||||
override fun initData() {
|
||||
ConnectManager.getSingleton()
|
||||
setting_btn.setOnClickListener {
|
||||
startActivity(Intent(this@HomeActivity, SettingActivity::class.java))
|
||||
}
|
||||
|
|
@ -68,7 +69,7 @@ class HomeActivity : BaseActivity<HomePresenter>() {
|
|||
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 + "班活动")
|
||||
|
|
|
|||
|
|
@ -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)"
|
||||
}
|
||||
}
|
||||
|
|
@ -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<LoopDevice>) : RecyclerView.Adapter<PairAdaper.Holder>() {
|
||||
class PairAdaper(context: Context?, list: List<DeviceBean>) : RecyclerView.Adapter<PairAdaper.Holder>() {
|
||||
var list = list
|
||||
var context = context
|
||||
lateinit var onClick: () -> Unit
|
||||
lateinit var onClickConnect: (bean: DeviceBean) -> Unit
|
||||
var status = STATUS.con
|
||||
|
||||
fun setData(list: List<LoopDevice>){
|
||||
fun setData(list: List<DeviceBean>) {
|
||||
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<LoopDevice>) : RecyclerView.Adapte
|
|||
var pair_item_tv1 = itemView.findViewById<TextView>(R.id.pair_item_tv1)
|
||||
var pair_item_tv2 = itemView.findViewById<TextView>(R.id.pair_item_tv2)
|
||||
var pair_item_tv3 = itemView.findViewById<TextView>(R.id.pair_item_tv3)
|
||||
var pair_item_tv4 = itemView.findViewById<TextView>(R.id.pair_item_tv4)
|
||||
var pair_item_tv5 = itemView.findViewById<TextView>(R.id.pair_item_tv5)
|
||||
var pair_item_ll = itemView.findViewById<LinearLayout>(R.id.pair_item_ll)
|
||||
}
|
||||
|
||||
fun setOnConnectClickListener(onClickConnect: (bean: DeviceBean) -> Unit) {
|
||||
this.onClickConnect = onClickConnect
|
||||
}
|
||||
|
||||
|
||||
enum class STATUS {
|
||||
con, uncon
|
||||
}
|
||||
}
|
||||
|
|
@ -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<PairPresenter>() {
|
||||
var position = 0
|
||||
var deviceList: MutableList<LoopDevice> = 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<PairPresenter>() {
|
|||
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<PairPresenter>() {
|
|||
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<PairPresenter>() {
|
|||
super.onPause()
|
||||
// manager.pause()
|
||||
}
|
||||
|
||||
fun deviceList(list: List<DeviceCode>) {
|
||||
// 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
|
||||
}
|
||||
}
|
||||
|
|
@ -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<IView>(){
|
||||
class PairPresenter :BasePresenter<PairFragment>(){
|
||||
val mmkv = MMKV.defaultMMKV()
|
||||
val concise: Concise<API> = object : Concise<API>(BASE_URL) {}.addHeader("Token", mmkv?.decodeString(TOKEN)).build() as Concise<API>
|
||||
|
||||
fun getDeviceList(){
|
||||
concise.request(v, concise.api.getdeviceList(), object : CallBack<BaseBean<List<DeviceCode>>> {
|
||||
override fun onSuccess(k: BaseBean<List<DeviceCode>>?) {
|
||||
v.deviceList(k?.data!!)
|
||||
}
|
||||
|
||||
override fun onFailed(e: Throwable?) {
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -75,4 +75,10 @@ public interface API {
|
|||
Observable<BaseBean> score(@Body ScoreReqBean scoreReqBean);
|
||||
|
||||
|
||||
/**
|
||||
* 设备列表
|
||||
* @return
|
||||
*/
|
||||
@GET("rope/list")
|
||||
Observable<BaseBean<List<DeviceCode>>> getdeviceList();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
|
@ -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<DeviceBean> 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<DeviceBean> 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<LoopDevice> getDevice(){
|
||||
public Set<LoopDevice> 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<API> concise = new Concise<API>(Contants.BASE_URL) {
|
||||
}.addHeader("Token", mmkv.decodeString(Contants.TOKEN)).build();
|
||||
concise.request(concise.api.getdeviceList(), new CallBack<BaseBean<List<DeviceCode>>>() {
|
||||
@Override
|
||||
public void onSuccess(BaseBean<List<DeviceCode>> listBaseBean) {
|
||||
for (DeviceCode datum : listBaseBean.getData()) {
|
||||
DeviceBean deviceBean = new DeviceBean();
|
||||
deviceBean.setCode(datum.getCode());
|
||||
deviceBeanList.add(deviceBean);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Throwable e) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<LinearLayout>(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<TextView>(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 <T> buildList(activity: Activity, list: List<DialogBean<T>>, onClick: (bean: DialogBean<T>) -> 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<LinearLayout>(R.id.dialog_list_ll)
|
||||
val recyclerview = view.findViewById<RecyclerView>(R.id.recyclerview)
|
||||
recyclerview.layoutManager = LinearLayoutManager(activity)
|
||||
|
|
@ -107,5 +113,9 @@ class DialogTool(val context: Context) {
|
|||
dialog.show()
|
||||
return dialog
|
||||
}
|
||||
|
||||
fun dismiss() {
|
||||
dialog.dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
android:layout_weight="1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title_host"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="主机连接"
|
||||
|
|
@ -135,17 +136,48 @@
|
|||
android:textSize="20dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pair_power"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="电量"
|
||||
android:textColor="@color/color_3d3d3d"
|
||||
android:textSize="20dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/pair_ll"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="状态"
|
||||
android:textColor="@color/color_3d3d3d"
|
||||
android:textSize="20dp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="操作"
|
||||
android:textColor="@color/color_3d3d3d"
|
||||
android:textSize="20dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/pair_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
android:layout_height="match_parent"
|
||||
android:overScrollMode="never" />
|
||||
</LinearLayout>
|
||||
|
|
@ -4,29 +4,82 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:background="@color/white"
|
||||
android:gravity="center"
|
||||
android:padding="20dp">
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/white"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pair_item_tv1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:paddingLeft="80dp"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:textColor="@color/color_3d3d3d"
|
||||
android:textSize="20dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pair_item_tv2"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:textColor="@color/color_3d3d3d"
|
||||
android:textSize="20dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pair_item_tv3"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:textColor="@color/color_3d3d3d"
|
||||
android:textSize="20dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/pair_item_ll"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pair_item_tv4"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:textColor="@color/color_3d3d3d"
|
||||
android:textSize="20dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pair_item_tv5"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:text="匹配"
|
||||
android:textColor="@color/color_1296DB"
|
||||
android:textSize="20dp" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:background="@color/color_50_D8D8D8" />
|
||||
</LinearLayout>
|
||||
|
|
@ -29,4 +29,5 @@
|
|||
<color name="color_45_2C2C2C">#8C2C2C2C</color>
|
||||
<color name="color_1296DB">#1296DB</color>
|
||||
<color name="color_464547">#464547</color>
|
||||
<color name="color_d71345">#d71345</color>
|
||||
</resources>
|
||||
Loading…
Reference in New Issue