[optimization]返回监听

This commit is contained in:
Ming 2022-04-07 15:47:13 +08:00
parent 122d75ebf1
commit 714bac19f9
7 changed files with 117 additions and 41 deletions

View File

@ -8,6 +8,7 @@ import android.util.Log
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.libs.fragment.BaseActivity import com.libs.fragment.BaseActivity
import com.libs.utils.LogUtil import com.libs.utils.LogUtil
import com.libs.utils.ToastUtil
import com.skipping.* import com.skipping.*
import com.skipping.TIMING_NAME import com.skipping.TIMING_NAME
import com.skipping.net.DetailActivityBean import com.skipping.net.DetailActivityBean
@ -67,6 +68,11 @@ class BeginActivity : BaseActivity<BeginPresenter>() {
finish() finish()
} }
begin_start.setOnClickListener { begin_start.setOnClickListener {
if (!ConnectManager.getSingleton().deviceStatus || !ConnectManager.getSingleton().deviceNum()) {
ToastUtil.longToast("请先连接设备并开启连接模式")
return@setOnClickListener
}
if (detailBean.activityType == TIMING) { if (detailBean.activityType == TIMING) {
//定时计数 //定时计数
var num = detailBean.activityValue var num = detailBean.activityValue
@ -82,8 +88,12 @@ class BeginActivity : BaseActivity<BeginPresenter>() {
ConnectManager.getSingleton().getCount() ConnectManager.getSingleton().getCount()
score() score()
flushScore() flushScore()
begin_listRL.isClickable = true
begin_start.isClickable = true
return@scheduleWithFixedDelayMain return@scheduleWithFixedDelayMain
} }
begin_listRL.isClickable = false
begin_start.isClickable = false
ConnectManager.getSingleton().getCount() ConnectManager.getSingleton().getCount()
num-- num--
begin_type.text = "${TIMING_NAME} ${num}" begin_type.text = "${TIMING_NAME} ${num}"
@ -202,7 +212,7 @@ class BeginActivity : BaseActivity<BeginPresenter>() {
override fun onStop() { override fun onStop() {
super.onStop() super.onStop()
ConnectManager.getSingleton().stopJump() ConnectManager.getSingleton().stopJump()
if (future != null) { if (::future.isInitialized && future != null) {
future.cancel(true) future.cancel(true)
} }
} }

View File

@ -3,6 +3,7 @@ package com.skipping.activity.home
import android.app.Activity import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog
import android.content.Intent import android.content.Intent
import android.view.KeyEvent
import android.view.View import android.view.View
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.GravityCompat import androidx.core.view.GravityCompat
@ -27,6 +28,7 @@ import com.skipping.view.dialog.DialogBean
import com.skipping.view.dialog.DialogTool import com.skipping.view.dialog.DialogTool
import kotlinx.android.synthetic.main.activity_detail.view.* import kotlinx.android.synthetic.main.activity_detail.view.*
import kotlinx.android.synthetic.main.activity_home.* import kotlinx.android.synthetic.main.activity_home.*
import java.util.concurrent.ScheduledFuture
/** /**
* @author Ming * @author Ming
@ -157,7 +159,7 @@ class HomeActivity : BaseActivity<HomePresenter>() {
recyclerview.addOnScrollListener(object : RecyclerView.OnScrollListener() { recyclerview.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy) super.onScrolled(recyclerView, dx, dy)
refreshLayout.setEnabled(recyclerView.getChildCount() == 0 || recyclerView.getChildAt(0).getTop() >= 0) refreshLayout.isEnabled = recyclerView.childCount == 0 || recyclerView.getChildAt(0).top >= 0
} }
}) })
recyclerview.setOnScrollChangeListener(object : View.OnScrollChangeListener { recyclerview.setOnScrollChangeListener(object : View.OnScrollChangeListener {
@ -187,7 +189,8 @@ class HomeActivity : BaseActivity<HomePresenter>() {
drawerlayout.open() drawerlayout.open()
} }
fun showList(page: Int, list: List<ActivityBean>) { fun showList(page: Int, list: MutableList<ActivityBean>) {
LogUtil.e("新数据", list[0])
if (refreshLayout.isRefreshing) { if (refreshLayout.isRefreshing) {
refreshLayout.isRefreshing = false refreshLayout.isRefreshing = false
} }
@ -243,5 +246,20 @@ class HomeActivity : BaseActivity<HomePresenter>() {
manager.resume() manager.resume()
} }
var clickBack = 0
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK && event?.repeatCount == 0) {
ThreadPoolUtil.getSingleton().schedule({
clickBack = 0
}, 1000)
if (clickBack > 0) {
finish()
} else {
ToastUtil.longToast("再次点击退出")
}
clickBack++
return false
}
return true
}
} }

View File

@ -19,18 +19,20 @@ import com.skipping.utils.DateUtils
* 3/25/22 * 3/25/22
* *
*/ */
class HomeGridAdaper(context: Context, list: List<ActivityBean>) : RecyclerView.Adapter<HomeGridAdaper.Holder>() { class HomeGridAdaper(context: Context, list: MutableList<ActivityBean>) : RecyclerView.Adapter<HomeGridAdaper.Holder>() {
var list = list var list = list
var context = context var context = context
lateinit var onClickChange: (bean: ActivityBean) -> Unit lateinit var onClickChange: (bean: ActivityBean) -> Unit
lateinit var onClickStart: (bean: ActivityBean) -> Unit lateinit var onClickStart: (bean: ActivityBean) -> Unit
fun addData(list: List<ActivityBean>) { fun addData(list: MutableList<ActivityBean>) {
this.list += list this.list.addAll(list)
notifyDataSetChanged() notifyDataSetChanged()
} }
fun setData(list: List<ActivityBean>) { fun setData(list: MutableList<ActivityBean>) {
this.list.clear()
this.list = list this.list = list
notifyDataSetChanged() notifyDataSetChanged()
} }

View File

@ -31,7 +31,7 @@ class HomePresenter() : BasePresenter<HomeActivity>() {
override fun onSuccess(k: BaseBean<List<ActivityBean>>?) { override fun onSuccess(k: BaseBean<List<ActivityBean>>?) {
loadBoolean = k?.data?.size == 15 loadBoolean = k?.data?.size == 15
if (k != null) { if (k != null) {
v.showList(page, k.data) v.showList(page, k.data as MutableList<ActivityBean>)
} }
} }

View File

@ -3,6 +3,8 @@ package com.skipping.activity.setting
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.KeyEvent
import android.view.MotionEvent
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.libs.fragment.BaseActivity import com.libs.fragment.BaseActivity
import com.libs.utils.ActivityManager import com.libs.utils.ActivityManager
@ -99,4 +101,10 @@ class SettingActivity : BaseActivity<SettingPresenter>() {
ScreenUtil.setCustomDensity(this) ScreenUtil.setCustomDensity(this)
super.onRestart() super.onRestart()
} }
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
HomeActivity.startHome(this)
return false
}
} }

View File

@ -36,9 +36,15 @@ class PairFragment : BaseFragment<PairPresenter>() {
manager.getpower() manager.getpower()
LogUtil.e("列表", manager.deviceBeanList) LogUtil.e("列表", manager.deviceBeanList)
} }
pair_btn.setOnClickListener {
title_host.setOnClickListener {
manager.getpower()
}
}
fun click0() {
if (position == 0) { if (position == 0) {
return@setOnClickListener return
} }
position = 0 position = 0
pair_btn.setBackgroundResource(R.drawable.pair_btn_clicked) pair_btn.setBackgroundResource(R.drawable.pair_btn_clicked)
@ -52,9 +58,10 @@ class PairFragment : BaseFragment<PairPresenter>() {
manager.disconnectDevice() manager.disconnectDevice()
} }
connect_btn.setOnClickListener {
fun click1() {
if (position == 1) { if (position == 1) {
return@setOnClickListener return
} }
position = 1 position = 1
pair_btn.setBackgroundResource(R.drawable.pair_btn_unclicked) pair_btn.setBackgroundResource(R.drawable.pair_btn_unclicked)
@ -66,10 +73,6 @@ class PairFragment : BaseFragment<PairPresenter>() {
adaper.changeStatus(PairAdaper.STATUS.uncon) adaper.changeStatus(PairAdaper.STATUS.uncon)
manager.connectDevice() manager.connectDevice()
} }
title_host.setOnClickListener {
manager.getpower()
}
}
override fun initData() { override fun initData() {
manager = ConnectManager.getSingleton() manager = ConnectManager.getSingleton()
@ -103,6 +106,22 @@ class PairFragment : BaseFragment<PairPresenter>() {
// pair_list.adapter = adaper // pair_list.adapter = adaper
// adaper.notifyDataSetChanged() // adaper.notifyDataSetChanged()
} }
if (manager.deviceStatus) {
click1()
} else {
click0()
}
pair_btn.setOnClickListener {
click0()
}
connect_btn.setOnClickListener {
click1()
}
} }

View File

@ -31,7 +31,9 @@ import com.tencent.mmkv.MMKV;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
/** /**
@ -53,6 +55,7 @@ public class ConnectManager {
private DialogTool dialog; private DialogTool dialog;
public HashMap<Integer, List<Integer>> scoreMap = new HashMap<>(); public HashMap<Integer, List<Integer>> scoreMap = new HashMap<>();
private boolean getScore = false; private boolean getScore = false;
public Boolean deviceStatus = false;
public static ConnectManager getSingleton() { public static ConnectManager getSingleton() {
if (connectManager == null) { if (connectManager == null) {
@ -65,6 +68,20 @@ public class ConnectManager {
return connectManager; return connectManager;
} }
/**
* 获取
*
* @return true有设备 false无设备
*/
public boolean deviceNum() {
for (DeviceBean deviceBean : deviceBeanList) {
if(deviceBean.getLoopDevice()!=null){
return true;
}
}
return false;
}
public void setList(List<DeviceBean> deviceBeanList) { public void setList(List<DeviceBean> deviceBeanList) {
deviceBeanList.clear(); deviceBeanList.clear();
this.deviceBeanList.addAll(deviceBeanList); this.deviceBeanList.addAll(deviceBeanList);
@ -150,6 +167,7 @@ public class ConnectManager {
*/ */
public void openPairMode() { public void openPairMode() {
loopMini.openPairMode(); loopMini.openPairMode();
deviceStatus = false;
} }
/** /**
@ -191,7 +209,6 @@ public class ConnectManager {
} }
/** /**
* 停止计数 * 停止计数
*/ */
@ -206,9 +223,9 @@ public class ConnectManager {
* @param id * @param id
*/ */
public void pairDevice(Activity activity, int id) { public void pairDevice(Activity activity, int id) {
LogUtil.e("连接到", id);
if (dialog != null) { if (dialog != null) {
dialog.setStatus(Status.CONNECTING); dialog.setStatus(Status.CONNECTING);
dialog.dialog.show();
} else { } else {
dialog = new DialogTool(); dialog = new DialogTool();
dialog.build(activity, Status.CONNECTING, String.valueOf(id)); dialog.build(activity, Status.CONNECTING, String.valueOf(id));
@ -229,10 +246,12 @@ public class ConnectManager {
*/ */
public void connectDevice() { public void connectDevice() {
connectDeviceInner(1); connectDeviceInner(1);
deviceStatus = true;
} }
public void disconnectDevice() { public void disconnectDevice() {
connectDeviceInner(0); connectDeviceInner(0);
deviceStatus = false;
} }