From 9cd5a9d2731193bb03cba2c61615d3600f5fa89b Mon Sep 17 00:00:00 2001 From: Ming <18642047181@163.com> Date: Sun, 27 Mar 2022 01:14:37 +0800 Subject: [PATCH] =?UTF-8?q?[function]=E5=9F=BA=E7=A1=80=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 + app/src/main/java/com/skipping/Contant.kt | 5 + .../com/skipping/activity/NetActivity.java | 8 +- .../skipping/activity/home/HomeActivity.kt | 105 +++++++++- .../skipping/activity/home/HomeGridAdaper.kt | 12 +- .../skipping/activity/home/HomePresenter.kt | 29 ++- app/src/main/java/com/skipping/net/API.java | 2 +- .../com/skipping/net/AddActivityBean.java | 17 +- app/src/main/res/layout/activity_home.xml | 181 +++++++++++------- 9 files changed, 261 insertions(+), 99 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 33328b7..914e167 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -52,4 +52,5 @@ dependencies { implementation 'com.github.felHR85:UsbSerial:6.1.0' implementation 'androidx.paging:paging-runtime:3.0.0-alpha07' implementation 'com.tencent:mmkv-static:1.2.7' + implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" } \ No newline at end of file diff --git a/app/src/main/java/com/skipping/Contant.kt b/app/src/main/java/com/skipping/Contant.kt index de757a0..19367b5 100644 --- a/app/src/main/java/com/skipping/Contant.kt +++ b/app/src/main/java/com/skipping/Contant.kt @@ -35,6 +35,11 @@ const val TOKEN = "token" */ const val TIMING = "timing" +/** + * 定数计时 + */ +const val NUMBER = "number" + const val TIMING_NAME = "定时计数(秒)" const val NUMBER_NAME = "定数计数(个)" diff --git a/app/src/main/java/com/skipping/activity/NetActivity.java b/app/src/main/java/com/skipping/activity/NetActivity.java index 4313d8e..3e47c25 100644 --- a/app/src/main/java/com/skipping/activity/NetActivity.java +++ b/app/src/main/java/com/skipping/activity/NetActivity.java @@ -153,13 +153,13 @@ public class NetActivity extends BaseActivity { AddActivityReqBean bean = new AddActivityReqBean(); bean.setName("test001"); bean.setActivityType("timing"); - bean.setValue(60); +// bean.setValue(60); bean.setGroupID("77bba9124a4281bc9f92f965561cd5"); - bean.setPersonNumber(6); +// bean.setPersonNumber(6); bean.setStep(2); - concise.request(NetActivity.this, concise.api.addActivity(bean), new CallBack>>() { + concise.request(NetActivity.this, concise.api.addActivity(bean), new CallBack>() { @Override - public void onSuccess(BaseBean> listBaseBean) { + public void onSuccess(BaseBean listBaseBean) { } 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 8f90433..9adf677 100644 --- a/app/src/main/java/com/skipping/activity/home/HomeActivity.kt +++ b/app/src/main/java/com/skipping/activity/home/HomeActivity.kt @@ -2,15 +2,21 @@ package com.skipping.activity.home import android.app.Activity import android.content.Intent -import android.widget.LinearLayout -import android.widget.TextView +import android.view.DragEvent +import android.view.View +import androidx.core.content.ContextCompat import androidx.core.view.GravityCompat +import androidx.drawerlayout.widget.DrawerLayout import androidx.recyclerview.widget.GridLayoutManager -import com.google.android.material.navigation.NavigationView +import androidx.recyclerview.widget.RecyclerView +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.libs.fragment.BaseActivity import com.libs.utils.ActivityManager import com.libs.utils.LogUtil +import com.libs.utils.ToastUtil +import com.skipping.NUMBER import com.skipping.R +import com.skipping.TIMING import com.skipping.activity.perform.PerformActivity import com.skipping.activity.setting.SettingActivity import com.skipping.net.ActivityBean @@ -32,6 +38,9 @@ import kotlinx.android.synthetic.main.activity_home.* class HomeActivity : BaseActivity() { lateinit var classList: List lateinit var bubbleWindow: BubbleWindow + var choseCla: GradleBean? = null + lateinit var adaper: HomeGridAdaper + var position = 0 companion object { fun startHome(activity: Activity) { @@ -61,6 +70,73 @@ class HomeActivity : BaseActivity() { choseClass.setOnClickListener { bubbleWindow.show(chooseIV) } + cancel_btn.setOnClickListener { + drawerlayout.closeDrawer(GravityCompat.START) + } + drawerlayout.addDrawerListener(object : DrawerLayout.DrawerListener { + override fun onDrawerSlide(drawerView: View, slideOffset: Float) { + } + + override fun onDrawerOpened(drawerView: View) { + } + + override fun onDrawerClosed(drawerView: View) { + chooseIV.text = "选择" + choseCla = null + } + + override fun onDrawerStateChanged(newState: Int) { + } + }) + + + ok_btn.setOnClickListener { + if (choseCla == null) { + ToastUtil.longToast("请选择班级") + return@setOnClickListener + } + drawerlayout.closeDrawer(GravityCompat.START) + var title: String + if (position == 0) { + title = TIMING + } else { + title = NUMBER + } + p.addActivity(activityNameEdit.text.toString(), title, homeNum.text.toString(), homeAll.text.toString(), choseCla?.groupID!!) + } + + timeRL.setOnClickListener { + if (position == 0) { + return@setOnClickListener + } + position = 0 + timeTV.setTextColor(ContextCompat.getColor(this, R.color.black)) + timeTV.setBackgroundResource(R.drawable.left_clicked) + numTV.setTextColor(ContextCompat.getColor(this, R.color.white)) + numTV.setBackgroundResource(R.drawable.right_unclicked) + homeTitle.text = "跳绳时间(秒)" + } + + numRL.setOnClickListener { + if (position == 1) { + return@setOnClickListener + } + position = 1 + timeTV.setTextColor(ContextCompat.getColor(this, R.color.white)) + timeTV.setBackgroundResource(R.drawable.left_unclicked) + numTV.setTextColor(ContextCompat.getColor(this, R.color.black)) + numTV.setBackgroundResource(R.drawable.right_clicked) + homeTitle.text = "跳绳数量" + } + + refreshLayout.setOnRefreshListener { p.getActivityList() } + + recyclerview.addOnScrollListener(object : RecyclerView.OnScrollListener() { + override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { + super.onScrolled(recyclerView, dx, dy) + refreshLayout.setEnabled(recyclerView.getChildCount() == 0 || recyclerView.getChildAt(0).getTop() >= 0) + } + }) } override fun initStart() { @@ -69,12 +145,20 @@ class HomeActivity : BaseActivity() { fun showList(list: List) { - recyclerview.layoutManager = GridLayoutManager(this, 3) - val adaper = HomeGridAdaper(this, list) - adaper.setOnItemClickListener { - PerformActivity.startActivity(this, it.id.toString(), DateUtils.dealDateFormat(it.createdAt)) + if(refreshLayout.isRefreshing){ + refreshLayout.isRefreshing = false } - recyclerview.adapter = adaper + if (!::adaper.isInitialized) { + recyclerview.layoutManager = GridLayoutManager(this, 3) + adaper = HomeGridAdaper(this, list) + adaper.setOnItemClickListener { + PerformActivity.startActivity(this, it.id.toString(), DateUtils.dealDateFormat(it.createdAt)) + } + recyclerview.adapter = adaper + } else { + adaper.setData(list) + } + } fun showClassList(list: List) { @@ -85,13 +169,18 @@ class HomeActivity : BaseActivity() { } }.setOnItemClick(object : OnItemClick { override fun onClick(tag: String?, position: Int, bubbleWindow: BubbleWindow?) { + choseCla = list[position] + chooseIV.text = list[position].groupName + "班" activityNameEdit?.setText(list[position].groupName + "班活动") bubbleWindow?.dismiss() } }).setMargining(com.libs.utils.ScreenUtil.getActionBarHeight(this)) .setDirection(Direction.BOTTOM) .build() + } + fun addActivityResult() { + p.getActivityList() } diff --git a/app/src/main/java/com/skipping/activity/home/HomeGridAdaper.kt b/app/src/main/java/com/skipping/activity/home/HomeGridAdaper.kt index 0c93ecc..c1af76e 100644 --- a/app/src/main/java/com/skipping/activity/home/HomeGridAdaper.kt +++ b/app/src/main/java/com/skipping/activity/home/HomeGridAdaper.kt @@ -22,6 +22,14 @@ class HomeGridAdaper(context: Context, list: List) : RecyclerView. var list = list var context = context lateinit var onClick: (bean: ActivityBean) -> Unit + + + fun setData(list: List) { + this.list = list + notifyDataSetChanged() + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HomeGridAdaper.Holder { return Holder(LayoutInflater.from(context).inflate(R.layout.grid_item, parent, false)) } @@ -54,8 +62,4 @@ class HomeGridAdaper(context: Context, list: List) : RecyclerView. fun setOnItemClickListener(onClick: (bean: ActivityBean) -> Unit) { this.onClick = onClick } - - interface OnClick { - fun onClick(bean: ActivityBean) - } } \ No newline at end of file diff --git a/app/src/main/java/com/skipping/activity/home/HomePresenter.kt b/app/src/main/java/com/skipping/activity/home/HomePresenter.kt index cb3d992..470ff26 100644 --- a/app/src/main/java/com/skipping/activity/home/HomePresenter.kt +++ b/app/src/main/java/com/skipping/activity/home/HomePresenter.kt @@ -1,10 +1,10 @@ package com.skipping.activity.home -import android.os.Parcel -import android.os.Parcelable +import android.text.Editable 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 @@ -26,7 +26,7 @@ class HomePresenter() : BasePresenter() { fun getActivityList() { val bean = ActivityReqBean() bean.index = 1 - bean.pageSize = 9 + bean.pageSize = 12 concise.request(v, concise.api.getActivityList(bean), object : CallBack>> { override fun onSuccess(k: BaseBean>?) { if (k != null) { @@ -52,4 +52,27 @@ class HomePresenter() : BasePresenter() { }) } + + fun addActivity(name: String, type: String, number: String, value: String, groupID: String) { + var bean = AddActivityReqBean() + bean.name = name + bean.activityType = type + bean.personNumber = number.toInt() + bean.value = value.toInt() + bean.step = 2 + bean.groupID = groupID + concise.request(v, concise.api.addActivity(bean), object : CallBack> { + override fun onSuccess(k: BaseBean?) { + if (k?.code == 0) { + v.addActivityResult() + } else { + ToastUtil.longToast(k?.msg) + } + } + + override fun onFailed(e: Throwable?) { + } + + }) + } } \ No newline at end of file diff --git a/app/src/main/java/com/skipping/net/API.java b/app/src/main/java/com/skipping/net/API.java index e627b94..d653687 100644 --- a/app/src/main/java/com/skipping/net/API.java +++ b/app/src/main/java/com/skipping/net/API.java @@ -56,7 +56,7 @@ public interface API { * @return */ @POST("activity/create") - Observable>> addActivity(@Body AddActivityReqBean addActivityReqBean); + Observable> addActivity(@Body AddActivityReqBean addActivityReqBean); /** * 活动详情 diff --git a/app/src/main/java/com/skipping/net/AddActivityBean.java b/app/src/main/java/com/skipping/net/AddActivityBean.java index 1a61310..0456148 100644 --- a/app/src/main/java/com/skipping/net/AddActivityBean.java +++ b/app/src/main/java/com/skipping/net/AddActivityBean.java @@ -9,15 +9,16 @@ import java.util.List; * @author Ming * 3/15/22 */ -public class AddActivityBean implements Serializable { +public class AddActivityBean{ + /** - * ID : 14 - * ActivityName : test001 + * ID : 22 + * ActivityName : 测试5 * ActivityType : timing - * ActivityValue : 60 + * ActivityValue : 100 * Step : 2 - * Candidates : [[{"PersonID":"4414550b40b38fd171ba2e319dc2","Name":"xiaowang","StudentID":"1005","Score":0,"Detail":[]},{"PersonID":"8d34508b457780a298efba2a9c28","Name":"xiaohua","StudentID":"1006","Score":0,"Detail":[]}]] + * Candidates : [[{"PersonID":"329b20b046f5888bcd5165d115f1","Name":"xiaofang","StudentID":"1002","Score":0,"Detail":[]},{"PersonID":"4557de13408aaf9057752285c81a","Name":"xiaohai","StudentID":"1003","Score":0,"Detail":[]},{"PersonID":"4dee38df466fa8469f0e62f672fb","Name":"xiaoli","StudentID":"1004","Score":0,"Detail":[]},{"PersonID":"a12e6f5a4383855caa2bd36958a2","Name":"xiaoming","StudentID":"1001","Score":0,"Detail":[]}]] */ private Integer id; @@ -89,9 +90,9 @@ public class AddActivityBean implements Serializable { public static class CandidatesBean implements Serializable { /** - * PersonID : 4414550b40b38fd171ba2e319dc2 - * Name : xiaowang - * StudentID : 1005 + * PersonID : 329b20b046f5888bcd5165d115f1 + * Name : xiaofang + * StudentID : 1002 * Score : 0 * Detail : [] */ diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index 8d1d137..2a5f6b3 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -11,79 +11,89 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + android:orientation="vertical"> - - + android:layout_height="wrap_content" + android:orientation="vertical" + android:theme="@style/AppTheme.AppBarOverlay"> - - - - - + - + android:text="xxxxxx学校" + android:textColor="@color/white" + android:textSize="28dp" /> - - + - + + + + + + + + + + + + android:layout_height="wrap_content"> - - + + + - + android:fitsSystemWindows="true"> + android:orientation="horizontal" + android:padding="20dp"> @@ -191,11 +201,13 @@ android:textSize="20dp" /> + android:layout_marginTop="10dp"> + + + + + + + + + + + - -