diff --git a/app/src/main/java/com/skipping/activity/begin/BeginActivity.kt b/app/src/main/java/com/skipping/activity/begin/BeginActivity.kt index 8f53410..df021ed 100644 --- a/app/src/main/java/com/skipping/activity/begin/BeginActivity.kt +++ b/app/src/main/java/com/skipping/activity/begin/BeginActivity.kt @@ -6,13 +6,12 @@ import android.content.Intent import android.os.Bundle import androidx.recyclerview.widget.GridLayoutManager import com.libs.fragment.BaseActivity +import com.libs.utils.LogUtil import com.skipping.* import com.skipping.TIMING_NAME import com.skipping.net.DetailActivityBean -import com.skipping.utils.NumberUtil -import com.skipping.utils.ScreenUtil -import com.skipping.utils.ThreadPoolUtil -import com.skipping.view.bubblewindow.BubbleWindow +import com.skipping.net.ScoreReqBean +import com.skipping.utils.* import com.skipping.view.dialog.DialogBean import com.skipping.view.dialog.DialogTool import kotlinx.android.synthetic.main.activity_begin.* @@ -30,10 +29,12 @@ class BeginActivity : BaseActivity() { lateinit var adaper: BeginGridAdaper lateinit var detailBean: DetailActivityBean lateinit var future: ScheduledFuture<*> - lateinit var bubbleWindow: BubbleWindow lateinit var dialog: AlertDialog - var choseCla: List? = null var choseGradeBeanList = mutableListOf>>() + lateinit var showBean: List + var position = 0 + var scList = mutableListOf() + var complete = mutableListOf() companion object { val ID = "id" @@ -68,25 +69,41 @@ class BeginActivity : BaseActivity() { if (detailBean.activityType == TIMING) { //定时计数 var num = detailBean.activityValue + ConnectManager.getSingleton().startJumpLimitTime(num) + future = ThreadPoolUtil.getSingleton().scheduleWithFixedDelayMain({ if (num <= 0) { + ConnectManager.getSingleton().stopGetScore() +// ConnectManager.getSingleton().stopJump() future.cancel(false) + choseGradeBeanList.get(position).bean = showBean + choseGradeBeanList.get(position).bean + score() return@scheduleWithFixedDelayMain } + ConnectManager.getSingleton().getCount() num-- - begin_type.text = TIMING_NAME + ": " + num + " 秒" - }, 0, 1000) + begin_type.text = "${TIMING_NAME}: ${num} 秒" + flushScore() + }, 1000, 1000) } } begin_listRL.setOnClickListener { - dialog = DialogTool().buildList(this, choseGradeBeanList) { - adaper.list = it.bean + dialog = DialogTool().buildList(this, choseGradeBeanList) { bean, p -> + position = p + showBean = bean.bean + adaper.list = showBean adaper.notifyDataSetChanged() - begin_list.text = it.content + begin_list.text = bean.content dialog.dismiss() } + } + + + begin_type.setOnClickListener { + ConnectManager.getSingleton().getCount() } } @@ -96,7 +113,9 @@ class BeginActivity : BaseActivity() { val num = NumberUtil.numberToChinese(index + 1) choseGradeBeanList.add(DialogBean("第 $num 组", mutableList)) } + detailBean = bean + showBean = bean.candidates[0] begin_name.text = bean.activityName if (detailBean.activityType == TIMING) { begin_type.text = TIMING_NAME + ": " + bean.activityValue + " 秒" @@ -104,8 +123,56 @@ class BeginActivity : BaseActivity() { begin_type.text = NUMBER_NAME + ": " + bean.activityValue + " 个" } beginList.layoutManager = GridLayoutManager(this, 4) - adaper = BeginGridAdaper(this, bean.candidates[0]) + adaper = BeginGridAdaper(this, showBean) beginList.adapter = adaper } + fun flushScore() { + var scoreMap = ConnectManager.getSingleton().scoreMap + showBean.forEachIndexed { index, bean -> + val list = scoreMap.get(index + 1) + if (list != null) { + bean.score = list?.get(list.size - 1) + } + } + adaper.list = showBean + adaper.notifyDataSetChanged() + } + + + fun score() { + var bean = ScoreReqBean.CandidatesBean() + bean.complateTime = (System.currentTimeMillis() / 1000).toInt() + var list = mutableListOf() + choseGradeBeanList.get(position).bean.forEachIndexed() { position, it -> + var info = ScoreReqBean.CandidatesBean.InfoBean() + info.personID = it.personID + info.score = it.score + info.detail = cute() + list.add(info) + } + bean.info = list + scList.add(bean) + complete.add(position) + if (complete.size == choseGradeBeanList.size) { + p.score(intent.getBundleExtra(DATA).getString(ID).toInt(), detailBean.step, scList) + } + } + + fun cute(): List { + var list = ConnectManager.getSingleton().scoreMap.get(position + 1) + LogUtil.e("111", list) + var newList = mutableListOf() + for (i in 0..(list?.size!! / 2 - 1)) { + newList.add(list[i]) + } + LogUtil.e("222", newList) + return newList + } + + override fun onStop() { + super.onStop() + ConnectManager.getSingleton().stopJump() + } + } \ No newline at end of file diff --git a/app/src/main/java/com/skipping/activity/begin/BeginGridAdaper.kt b/app/src/main/java/com/skipping/activity/begin/BeginGridAdaper.kt index 8fcd75b..3781adf 100644 --- a/app/src/main/java/com/skipping/activity/begin/BeginGridAdaper.kt +++ b/app/src/main/java/com/skipping/activity/begin/BeginGridAdaper.kt @@ -42,6 +42,8 @@ class BeginGridAdaper(context: Context, list: List(R.id.begin_item_name) var begin_item_id = itemView.findViewById(R.id.begin_item_id) + var begin_item_num = itemView.findViewById(R.id.begin_item_num) + var begin_item_number = itemView.findViewById(R.id.begin_item_number) } diff --git a/app/src/main/java/com/skipping/activity/begin/BeginPresenter.kt b/app/src/main/java/com/skipping/activity/begin/BeginPresenter.kt index 9fa3330..739a631 100644 --- a/app/src/main/java/com/skipping/activity/begin/BeginPresenter.kt +++ b/app/src/main/java/com/skipping/activity/begin/BeginPresenter.kt @@ -5,6 +5,7 @@ import android.os.Parcelable import com.libs.fragment.BasePresenter import com.libs.network.CallBack import com.libs.network.Concise +import com.libs.utils.LogUtil import com.libs.utils.ToastUtil import com.skipping.ACCOUNT import com.skipping.BASE_URL @@ -24,7 +25,7 @@ class BeginPresenter() : BasePresenter() { val concise: Concise = object : Concise(BASE_URL) {}.addHeader("Token", mmkv?.decodeString(TOKEN)).build() as Concise fun getActivityDetail(id: String) { - concise.request(v, concise.api.detailActivity(id), object : CallBack>{ + concise.request(v, concise.api.detailActivity(id), object : CallBack> { override fun onSuccess(k: BaseBean?) { v.activityDetailResult(k?.data!!) } @@ -33,4 +34,22 @@ class BeginPresenter() : BasePresenter() { } }) } + + fun score(id:Int,step:Int,list: List) { + var bean = ScoreReqBean() + bean.id = id + bean.step = step + bean.candidates = list + LogUtil.e("提交数据",bean) + +// concise.request(v, concise.api.score(bean), object : CallBack> { +// override fun onSuccess(k: BaseBean<*>?) { +// +// } +// +// override fun onFailed(e: Throwable?) { +// } +// +// }) + } } \ No newline at end of file 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 14ffe2f..3ed85a0 100644 --- a/app/src/main/java/com/skipping/activity/home/HomeActivity.kt +++ b/app/src/main/java/com/skipping/activity/home/HomeActivity.kt @@ -13,6 +13,7 @@ import com.libs.fragment.BaseActivity import com.libs.utils.ActivityManager import com.libs.utils.LogUtil import com.libs.utils.ToastUtil +import com.loop.loopminisdk.LoopMini import com.skipping.* import com.skipping.activity.begin.BeginActivity import com.skipping.activity.perform.PerformActivity @@ -22,6 +23,7 @@ import com.skipping.net.GradleBean import com.skipping.utils.ConnectManager import com.skipping.utils.DateUtils import com.skipping.utils.ScreenUtil +import com.skipping.utils.ThreadPoolUtil import com.skipping.view.dialog.DialogBean import com.skipping.view.dialog.DialogTool import kotlinx.android.synthetic.main.activity_detail.view.* @@ -40,6 +42,7 @@ class HomeActivity : BaseActivity() { lateinit var adaper: HomeGridAdaper var position = 0 val layoutManager = GridLayoutManager(this, 3) + lateinit var manager:ConnectManager companion object { fun startHome(activity: Activity) { @@ -58,7 +61,7 @@ class HomeActivity : BaseActivity() { } override fun initData() { - ConnectManager.getSingleton() + manager = ConnectManager.getSingleton() setting_btn.setOnClickListener { startActivity(Intent(this@HomeActivity, SettingActivity::class.java)) } @@ -69,10 +72,11 @@ class HomeActivity : BaseActivity() { p.getClassList() choseClass.setOnClickListener { - dialog = DialogTool().buildList(this, choseGradeBeanList) { - choseCla = it.bean - chooseIV.text = it.bean.groupName + "班" - activityNameEdit?.setText(it.bean.groupName + "班活动") + dialog = DialogTool().buildList(this, choseGradeBeanList){ + bean, _ -> + choseCla = bean.bean + chooseIV.text = bean.bean.groupName + "班" + activityNameEdit?.setText(bean.bean.groupName + "班活动") dialog.dismiss() } } @@ -211,5 +215,10 @@ class HomeActivity : BaseActivity() { super.onRestart() } + override fun onResume() { + super.onResume() + manager.resume() + } + } \ No newline at end of file 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 894f03f..caf4ad9 100644 --- a/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt +++ b/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt @@ -3,6 +3,7 @@ package com.skipping.fragment.pair import com.libs.utils.LogUtil import com.loop.loopminisdk.LoopDevice import com.loop.loopminisdk.LoopHost +import com.loop.loopminisdk.LoopMini /** * @author Ming @@ -13,7 +14,6 @@ class DeviceBean { var Code: String? = null get() { if (field?.get(0) == '0') { - LogUtil.e("123123") return field?.replace("0", "") } return field @@ -22,6 +22,7 @@ class DeviceBean { var loopDevice: LoopDevice? = null + override fun toString(): String { return "DeviceBean(Code=$Code, loopDevice=$loopDevice)" } 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 7baaee7..7fdd733 100644 --- a/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt +++ b/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt @@ -33,6 +33,7 @@ class PairFragment : BaseFragment() { override fun initView(view: View?, savedInstanceState: Bundle?) { initPresnter() pairStatus.setOnClickListener { + manager.getpower() LogUtil.e("列表", manager.deviceBeanList) } pair_btn.setOnClickListener { @@ -47,6 +48,8 @@ class PairFragment : BaseFragment() { pair_power.visibility = View.GONE pair_ll.visibility = View.VISIBLE adaper.changeStatus(PairAdaper.STATUS.con) + manager.openPairMode() + manager.disconnectDevice() } connect_btn.setOnClickListener { @@ -61,9 +64,10 @@ class PairFragment : BaseFragment() { pair_power.visibility = View.VISIBLE pair_ll.visibility = View.GONE adaper.changeStatus(PairAdaper.STATUS.uncon) + manager.connectDevice() } title_host.setOnClickListener { - manager.openPairMode() + manager.getpower() } } @@ -74,13 +78,21 @@ class PairFragment : BaseFragment() { adaper.notifyDataSetChanged() } showDeviceList() + if (manager.host != null) { + var bytes = manager.host.macList + pair_address.text = "网关地址:" + LoopMini.bytesToHexString(bytes) + pair_id.text = "网关id:" + manager.host.hostId.toString() + pair_list.layoutManager = LinearLayoutManager(activity) + pairStatus.text = "主机已连接" + } + manager.setLoopHostListener { var bytes = it.macList pair_address.text = "网关地址:" + LoopMini.bytesToHexString(bytes) pair_id.text = "网关id:" + it.hostId.toString() pair_list.layoutManager = LinearLayoutManager(activity) - + pairStatus.text = "主机已连接" // for (i in 0..it.license) { // var device = LoopDevice().apply { // this.loopDeviceId = i @@ -93,32 +105,8 @@ class PairFragment : BaseFragment() { } } - override fun onResume() { - super.onResume() - manager.resume() - } - override fun onPause() { - 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(){ + fun showDeviceList() { pair_list.layoutManager = LinearLayoutManager(activity) adaper = PairAdaper(activity, manager.deviceBeanList) adaper.setOnConnectClickListener { 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 bb5ef0e..c1fb0d4 100644 --- a/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt +++ b/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt @@ -18,17 +18,5 @@ import com.tencent.mmkv.MMKV * */ 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/DetailActivityBean.java b/app/src/main/java/com/skipping/net/DetailActivityBean.java index e4fc1d3..505a172 100644 --- a/app/src/main/java/com/skipping/net/DetailActivityBean.java +++ b/app/src/main/java/com/skipping/net/DetailActivityBean.java @@ -133,7 +133,7 @@ public class DetailActivityBean implements Serializable { private String Name; private String StudentID; private Integer Score; - private Object Detail; + private List Detail; public String getPersonID() { return PersonID; @@ -167,11 +167,11 @@ public class DetailActivityBean implements Serializable { Score = score; } - public Object getDetail() { + public List getDetail() { return Detail; } - public void setDetail(Object detail) { + public void setDetail(List detail) { Detail = detail; } diff --git a/app/src/main/java/com/skipping/utils/ConnectManager.java b/app/src/main/java/com/skipping/utils/ConnectManager.java index e1b2ba8..fb29bec 100644 --- a/app/src/main/java/com/skipping/utils/ConnectManager.java +++ b/app/src/main/java/com/skipping/utils/ConnectManager.java @@ -36,6 +36,7 @@ import com.skipping.view.dialog.Status; import com.tencent.mmkv.MMKV; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -48,7 +49,6 @@ import java.util.stream.Collectors; */ public class ConnectManager { private LoopMini loopMax; - private Set loopDeviceSet = new HashSet<>(); private LoopDevice loopDevice; private LoopHost loopHost; private Handler mHandler; @@ -60,6 +60,8 @@ public class ConnectManager { public List deviceBeanList = new ArrayList<>(); private ScheduledFuture future; private DialogTool dialog; + public HashMap> scoreMap = new HashMap<>(); + private boolean getScore = false; public static ConnectManager getSingleton() { if (connectManager == null) { @@ -77,12 +79,16 @@ public class ConnectManager { this.deviceBeanList.addAll(deviceBeanList); } + public void stopGetScore() { + getScore = false; + } private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { switch (intent.getAction()) { case LoopMini.ACTION_USB_PERMISSION_GRANTED: + connect(); ToastUtil.longToast("确认设备权限"); break; case LoopMini.ACTION_USB_PERMISSION_NOT_GRANTED: @@ -101,6 +107,17 @@ public class ConnectManager { } }; + private void connect() { + loopMax.setHandler(mHandler); + ThreadPoolUtil.getSingleton().scheduleMain(new Runnable() { + @Override + public void run() { + loopMax.getHostInfo(); + loopMax.openPairMode(); + } + }, 1000); + } + public ConnectManager() { mHandler = new DeviceHandler(); getdeviceList(); @@ -109,15 +126,17 @@ public class ConnectManager { private final ServiceConnection usbConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName arg0, IBinder arg1) { + LogUtil.e("连接成功"); loopMax = ((LoopMini.UsbBinder) arg1).getService(); - loopMax.setHandler(mHandler); - ThreadPoolUtil.getSingleton().scheduleMain(new Runnable() { - @Override - public void run() { - loopMax.getHostInfo(); - loopMax.openPairMode(); - } - }, 1000); + connect(); +// loopMax.setHandler(mHandler); +// ThreadPoolUtil.getSingleton().scheduleMain(new Runnable() { +// @Override +// public void run() { +// loopMax.getHostInfo(); +// loopMax.openPairMode(); +// } +// }, 1000); } @Override @@ -148,6 +167,13 @@ public class ConnectManager { loopMax.getPower(); } + /** + * 获取电量 + */ + public void getCount() { + loopMax.getCount(); + } + /** * 关闭配对模式 */ @@ -155,6 +181,27 @@ public class ConnectManager { loopMax.closePairMode(); } + + /** + * 定时计数 + * + * @param n + */ + public void startJumpLimitTime(int n) { + getScore = true; + scoreMap.clear(); + loopMax.startJumpLimitTime(n); + } + + + /** + * 停止计数 + */ + public void stopJump() { + getScore = false; + loopMax.stopJump(); + } + /** * 匹配设备到指定id * @@ -183,33 +230,43 @@ public class ConnectManager { * 连接设备 */ public void connectDevice() { - connectDeviceInner(loopDevice -> loopMax.connectDevice(loopDevice)); + connectDeviceInner(1); } public void disconnectDevice() { - connectDeviceInner(loopDevice -> loopMax.disconnectDevice(loopDevice)); + connectDeviceInner(0); } - public void connectDeviceInner(HostActivity.ConnectInterface connectInterface) { - if (loopDeviceSet.size() == 0) { + public void connectDeviceInner(int status) { + closePairMode(); + if (deviceBeanList.size() == 0) { return; } if (scheduledFuture != null) { scheduledFuture.cancel(false); } - List deviceList = loopDeviceSet.stream().collect(Collectors.toList()); position = 0; - scheduledFuture = ThreadPoolUtil.getSingleton().scheduleAtFixedRate(new Runnable() { + scheduledFuture = ThreadPoolUtil.getSingleton().scheduleAtFixedRateMain(new Runnable() { @Override public void run() { - if (position > deviceList.size()) { - scheduledFuture.cancel(false); + if (loopMax != null && deviceBeanList.get(position).getLoopDevice() != null) { + if (status == 1) { + LogUtil.e("连接设备", deviceBeanList.get(position).getLoopDevice()); + loopMax.connectDevice(deviceBeanList.get(position).getLoopDevice()); + } else if (status == 0) { + LogUtil.e("断开设备", deviceBeanList.get(position).getLoopDevice()); + loopMax.disconnectDevice(deviceBeanList.get(position).getLoopDevice()); + } } - connectInterface.connect(deviceList.get(position)); position++; + if (position >= deviceBeanList.size()) { + scheduledFuture.cancel(false); + getpower(); + return; + } } - }, 0, 10); + }, 0, 20); } @@ -251,15 +308,30 @@ 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; addList(loopDevice); -// addDevice(loopDevice); - LogUtil.e("连接LoopDevice", loopDevice.toString()); + LogUtil.e("连接LoopDevice__LOOP_PAIR_DEVICE_INFO", loopDevice.toString()); + break; + case LoopMini.LOOP_GET_DEVICE_INFO: + loopDevice = (LoopDevice) msg.obj; + LogUtil.e("连接LoopDevice__LOOP_GET_DEVICE_INFO", loopDevice.toString()); + if (getScore) { + if (scoreMap.get(loopDevice.loopDeviceId) == null) { + List list = new ArrayList<>(); + list.add(loopDevice.count); + scoreMap.put(loopDevice.loopDeviceId, list); + } else { + scoreMap.get(loopDevice.loopDeviceId).add(loopDevice.count); + } + } else { + addList(loopDevice); + } break; case LoopMini.Loop_GET_HOST_INFO: loopHost = (LoopHost) msg.obj; - onLoopHost.connected(loopHost); + if (onLoopHost != null) { + onLoopHost.connected(loopHost); + } LogUtil.e("LoopHost", loopHost.toString()); break; case LoopMini.LOOP_MESSAGE: @@ -278,14 +350,6 @@ public class ConnectManager { } } - private void addDevice(LoopDevice loopDevice) { - loopDeviceSet.add(loopDevice); - } - - public Set getDevice() { - return loopDeviceSet; - } - public void setLoopHostListener(OnLoopHost onLoopHost) { this.onLoopHost = onLoopHost; } @@ -309,13 +373,29 @@ public class ConnectManager { private void addList(LoopDevice loopDevice) { + String macList = LoopMini.bytesToHexString(loopDevice.macList); for (DeviceBean deviceBean : deviceBeanList) { - if (deviceBean.getCode().equals(String.valueOf(loopDevice.loopDeviceId))) { - deviceBean.setLoopDevice(loopDevice); - onflushList.flush(); - return; + if (deviceBean.getLoopDevice() != null) { + String s1 = LoopMini.bytesToHexString(deviceBean.getLoopDevice().getMacList()); + if (!s1.equals("[00, 00, 00, 00, 00, 00]") && s1.equals(macList) && !deviceBean.getCode().equals(String.valueOf(loopDevice.loopDeviceId))) { + deviceBean.setLoopDevice(null); + } } } + for (DeviceBean deviceBean : deviceBeanList) { + if (deviceBean.getCode().equals(String.valueOf(loopDevice.loopDeviceId))) { + if (deviceBean.getLoopDevice() == null) { + deviceBean.setLoopDevice(loopDevice); + } else { + deviceBean.getLoopDevice().setCount(loopDevice.getCount()); +// deviceBean.getLoopDevice().setMacList(loopDevice.macList); +// deviceBean.getLoopDevice().setMacCS(loopDevice.getMacCS()); + deviceBean.getLoopDevice().setPower(loopDevice.getPower()); + deviceBean.getLoopDevice().setTime(loopDevice.getTime()); + } + } + } + onflushList.flush(); } diff --git a/app/src/main/java/com/skipping/view/dialog/DialogAdaper.kt b/app/src/main/java/com/skipping/view/dialog/DialogAdaper.kt index 08ed2e5..a1ad04e 100644 --- a/app/src/main/java/com/skipping/view/dialog/DialogAdaper.kt +++ b/app/src/main/java/com/skipping/view/dialog/DialogAdaper.kt @@ -1,6 +1,5 @@ package com.skipping.view.dialog -import android.app.AlertDialog import android.content.Context import android.view.LayoutInflater import android.view.View @@ -8,7 +7,6 @@ import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.skipping.R -import com.skipping.TIMING_NAME import com.skipping.net.ActivityBean import com.skipping.net.DetailActivityBean @@ -19,7 +17,7 @@ import com.skipping.net.DetailActivityBean */ class DialogAdaper(context: Context, val list: List>) : RecyclerView.Adapter() { var context = context - lateinit var onClick: (bean: DialogBean) -> Unit + lateinit var onClick: (bean: DialogBean, position: Int) -> Unit override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DialogAdaper.Holder { return Holder(LayoutInflater.from(context).inflate(R.layout.dialog_item, parent, false)) @@ -28,7 +26,7 @@ class DialogAdaper(context: Context, val list: List>) : Recycle override fun onBindViewHolder(holder: DialogAdaper.Holder, position: Int) { holder.dialog_item_content.text = list[position].content holder.itemView.setOnClickListener { - onClick.invoke(list[position]) + onClick.invoke(list[position], position) } } @@ -41,7 +39,7 @@ class DialogAdaper(context: Context, val list: List>) : Recycle } - fun setOnItemClickListener(onClick: (bean: DialogBean) -> Unit) { + fun setOnItemClickListener(onClick: (bean: DialogBean, position: Int) -> Unit) { this.onClick = onClick } } \ No newline at end of file diff --git a/app/src/main/java/com/skipping/view/dialog/DialogBean.kt b/app/src/main/java/com/skipping/view/dialog/DialogBean.kt index 625a35f..783dd03 100644 --- a/app/src/main/java/com/skipping/view/dialog/DialogBean.kt +++ b/app/src/main/java/com/skipping/view/dialog/DialogBean.kt @@ -5,5 +5,9 @@ package com.skipping.view.dialog * 3/29/22 * */ -class DialogBean(val content: String, val bean: T) { +class DialogBean(val content: String, var bean: T) { + + override fun toString(): String { + return "DialogBean(content='$content', bean=${bean.toString()})" + } } \ No newline at end of file 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 b635557..fcd069e 100644 --- a/app/src/main/java/com/skipping/view/dialog/DialogTool.kt +++ b/app/src/main/java/com/skipping/view/dialog/DialogTool.kt @@ -2,7 +2,6 @@ package com.skipping.view.dialog import android.app.Activity import android.app.AlertDialog -import android.content.Context import android.view.View import android.view.animation.LinearInterpolator import android.widget.ImageView @@ -11,9 +10,7 @@ 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 /** @@ -95,7 +92,7 @@ class DialogTool() { } - fun buildList(activity: Activity, list: List>, onClick: (bean: DialogBean) -> Unit): AlertDialog { + fun buildList(activity: Activity, list: List>, onClick: (bean: DialogBean, position: Int) -> Unit): AlertDialog { 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) diff --git a/app/src/main/res/drawable/begin_item_tv.xml b/app/src/main/res/drawable/begin_item_tv.xml new file mode 100644 index 0000000..6a48ecb --- /dev/null +++ b/app/src/main/res/drawable/begin_item_tv.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_begin.xml b/app/src/main/res/layout/activity_begin.xml index c74605d..6ee62dc 100644 --- a/app/src/main/res/layout/activity_begin.xml +++ b/app/src/main/res/layout/activity_begin.xml @@ -89,7 +89,7 @@ android:layout_height="wrap_content" android:paddingRight="30dp" android:paddingBottom="30dp" - android:text="第一组" + android:text="第 一 组" android:textColor="@color/black" android:textSize="28dp" /> diff --git a/app/src/main/res/layout/begin_item.xml b/app/src/main/res/layout/begin_item.xml index 400637b..d47022f 100644 --- a/app/src/main/res/layout/begin_item.xml +++ b/app/src/main/res/layout/begin_item.xml @@ -26,20 +26,32 @@ + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index cbf3e6d..43fb36f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -24,6 +24,7 @@ #D9D9D9 #F4EA2A #00FF55 + #D8D8D8 #80D8D8D8 #4DE6E6E6 #8C2C2C2C