[function]排序优化

This commit is contained in:
Ming 2022-04-01 23:53:35 +08:00
parent 745f02ef99
commit 7a3e13eede
15 changed files with 435 additions and 103 deletions

View File

@ -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"

View File

@ -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

View File

@ -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();

View File

@ -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 + "班活动")

View File

@ -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)"
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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?) {
}
})
}
}

View File

@ -75,4 +75,10 @@ public interface API {
Observable<BaseBean> score(@Body ScoreReqBean scoreReqBean);
/**
* 设备列表
* @return
*/
@GET("rope/list")
Observable<BaseBean<List<DeviceCode>>> getdeviceList();
}

View File

@ -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 + '\'' +
'}';
}
}

View File

@ -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) {
}
});
}
}

View File

@ -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()
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>