From e102578ebfc95c27aeb13dce13fb82af53a2bead Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 25 二月 2021 17:07:23 +0800
Subject: [PATCH] 1. 新增夜间施工查询界面 2. 新增夜间施工管理统计界面
---
app/src/main/java/cn/flightfeather/thirdapp/view/recyclerview/RecyclerViewPanel.kt | 337 +++++++++++++++++++++++++++----------------------------
1 files changed, 164 insertions(+), 173 deletions(-)
diff --git a/app/src/main/java/cn/flightfeather/thirdapp/view/recyclerview/RecyclerViewPanel.kt b/app/src/main/java/cn/flightfeather/thirdapp/view/recyclerview/RecyclerViewPanel.kt
index 4ae13fb..c3d84d8 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/view/recyclerview/RecyclerViewPanel.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/view/recyclerview/RecyclerViewPanel.kt
@@ -1,173 +1,164 @@
-//package cn.flightfeather.thirdapp.view.recyclerview
-//
-//import android.annotation.SuppressLint
-//import android.arch.lifecycle.LifecycleOwner
-//import android.arch.lifecycle.Observer
-//import android.content.Context
-//import android.support.v4.content.ContextCompat
-//import android.support.v4.widget.SwipeRefreshLayout
-//import android.support.v7.widget.LinearLayoutManager
-//import android.support.v7.widget.RecyclerView
-//import android.view.LayoutInflater
-//import android.view.View
-//import com.chad.library.adapter.base.BaseQuickAdapter
-//import com.chad.library.adapter.base.BaseViewHolder
-//
-///**
-// * RecyclerView妯″潡
-// * @author riku
-// * Date: 2019/11/22
-// * reference layout is [R.layout.layout_recycler_view_refresh]
-// */
-//abstract class RecyclerViewPanel<T>(
-// private val viewModel: BaseViewModel<T>,
-// private val lifecycleObserver: LifecycleOwner,
-// private val rootView: View? = null
-//) : RecyclerViewSetInterface<T>, SwipeRefreshLayoutSetInterface {
-//
-// constructor(
-// viewModel: BaseViewModel<T>,
-// lifecycleObserver: LifecycleOwner,
-// recyclerView: RecyclerView,
-// context: Context?,
-// refreshLayout: SwipeRefreshLayout? = null
-// ) : this(viewModel, lifecycleObserver) {
-// context?.let { this.context = it }
-// tempRecyclerView = recyclerView
-// this.tempRefreshLayout = refreshLayout
-// }
-//
-// private lateinit var context: Context
-// private var tempRecyclerView: RecyclerView? = null
-// private var tempRefreshLayout: SwipeRefreshLayout? = null
-//
-// override var adapter: BaseRecyclerAdapter<T>? = null
-//
-// private var mRecyclerView: RecyclerView? = null
-//
-// private var refreshLayout: SwipeRefreshLayout? = null
-//
-// init {
-// if (rootView != null) {
-// this@RecyclerViewPanel.context = rootView.context
-// }
-// }
-//
-// open fun init() {
-// initViews()
-// initList()
-// initSwipeRefreshLayout()
-// initObserver()
-// }
-//
-// private fun initViews() {
-// mRecyclerView = rootView?.findViewById(R.id.recycler_view) ?: tempRecyclerView
-// refreshLayout = rootView?.findViewById(R.id.refresh_layout) ?: tempRefreshLayout
-// }
-//
-// open fun initObserver() {
-// viewModel.loading.observe(lifecycleObserver, Observer {
-// refreshLoadingStatus(it)
-// })
-//
-// viewModel.dataList.observe(lifecycleObserver, Observer { dataList ->
-// dataList?.let {
-// if (viewModel.isFirstData()) {
-// setNewData(it)
-// } else {
-// addData(it)
-// }
-// }
-// })
-//
-// viewModel.dataChanged.observe(lifecycleObserver, Observer {
-// if (it == true) {
-// adapter?.notifyDataSetChanged()
-// }
-// })
-// }
-//
-// override fun getRecyclerView(): RecyclerView? =
-// mRecyclerView ?: rootView?.findViewById(R.id.recycler_view) ?: tempRecyclerView
-//
-// override fun onRefreshDone() = stopRefresh()
-// override fun onRefreshFail() = stopRefresh()
-// override fun onLoadMoreEnd() = Unit
-// override fun onLoadMoreComplete() = Unit
-// override fun onLoadMoreFail() = Unit
-// override fun onRefreshNone() = stopRefresh()
-//
-// override fun getMyLayoutManager(): RecyclerView.LayoutManager =
-// LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
-//
-// override fun getItemLayoutIdMap(): Map<Int, Int> = emptyMap()
-//
-// override fun getSectionLayoutId(): Int = R.layout.recycler_item_section_head
-//
-// override fun getSectionDataList(): List<MySection<T>> =
-// MySection.convert2Section(viewModel.dataList.value)
-//
-// override fun onItemClick(
-// adapter: BaseQuickAdapter<Any?, BaseViewHolder>,
-// view: View,
-// position: Int,
-// dataList: List<T>
-// ) = Unit
-//
-// override fun onItemChildClick(
-// adapter: BaseQuickAdapter<Any?, BaseViewHolder>,
-// view: View,
-// position: Int,
-// dataList: List<T>
-// ) = Unit
-//
-// override fun enableLoadMore(): Boolean = true
-//
-// override fun onLoadMoreStart() {
-// if (getSwipeRefreshLayout()?.isRefreshing == true) {
-// adapter?.loadMoreComplete()
-// return
-// }
-// }
-//
-// override fun onLoadMoreRequested() = viewModel.loadMore()
-//
-// override fun enableUpFetch(): Boolean = false
-//
-// @SuppressLint("InflateParams")
-// override fun getMyEmptyView(): View? =
-// LayoutInflater.from(context).inflate(R.layout.layout_empty_view, null)
-//
-// @SuppressLint("InflateParams")
-// override fun getMyLoadingView(): View? = LayoutInflater.from(context).inflate(R.layout.layout_loading_view, null)
-//
-// @SuppressLint("InflateParams")
-// override fun getMyLoadFailView(): View? = LayoutInflater.from(context).inflate(R.layout.layout_load_fail_view, null)
-//
-// //******************************SwipeRefreshLayout************************************************************
-//
-// override fun getSwipeRefreshLayout(): SwipeRefreshLayout? =
-// refreshLayout ?: rootView?.findViewById(R.id.refresh_layout) ?: tempRefreshLayout
-//
-// override fun enableRefresh(): Boolean = true
-//
-// override fun needSwipeRefresh(): Boolean = true
-//
-// override fun onRefreshRequested() {
-// //绗笁鏂箁ecyclerView鐨勪笂鎷夊姞杞界粨鏉熷悗锛屽鏋滀笅鎷夊埛鏂版墽琛岋紝鍒欏簲璇ラ噸鏂版墦寮�鐩戝惉
-// try {
-// if (!adapter?.isLoadMoreEnable!!) {
-// setLoadMore()
-// }
-// } catch (e: Exception) {
-// e.printStackTrace()
-// }
-// viewModel.refresh()
-// }
-//
-// override fun getColorList(): Array<Int> = arrayOf(
-// ContextCompat.getColor(context, R.color.colorPrimary),
-// ContextCompat.getColor(context, R.color.colorPrimaryDark),
-// ContextCompat.getColor(context, R.color.colorAccent)
-// )
-//}
\ No newline at end of file
+package cn.flightfeather.thirdapp.view.recyclerview
+
+import android.annotation.SuppressLint
+import android.arch.lifecycle.LifecycleOwner
+import android.arch.lifecycle.Observer
+import android.content.Context
+import android.support.v4.content.ContextCompat
+import android.support.v4.widget.SwipeRefreshLayout
+import android.support.v7.widget.LinearLayoutManager
+import android.support.v7.widget.RecyclerView
+import android.view.LayoutInflater
+import android.view.View
+import cn.flightfeather.thirdapp.R
+import com.chad.library.adapter.base.BaseQuickAdapter
+import com.chad.library.adapter.base.BaseViewHolder
+
+/**
+ * RecyclerView妯″潡
+ * @author riku
+ * Date: 2019/11/22
+ * reference layout is [R.layout.layout_recycler_view_refresh]
+ */
+abstract class RecyclerViewPanel<T>(
+ private val dataLoadModel: DataLoadModel<T>,
+ private val rootView: View? = null
+) : RecyclerViewSetInterface<T>, SwipeRefreshLayoutSetInterface {
+
+ constructor(
+ dataLoadModel: DataLoadModel<T>,
+ recyclerView: RecyclerView,
+ context: Context?,
+ refreshLayout: SwipeRefreshLayout? = null
+ ) : this(dataLoadModel) {
+ context?.let { this.context = it }
+ tempRecyclerView = recyclerView
+ this.tempRefreshLayout = refreshLayout
+ }
+
+ private lateinit var context: Context
+ private var tempRecyclerView: RecyclerView? = null
+ private var tempRefreshLayout: SwipeRefreshLayout? = null
+
+ override var adapter: BaseRecyclerAdapter<T>? = null
+
+ private var mRecyclerView: RecyclerView? = null
+
+ private var refreshLayout: SwipeRefreshLayout? = null
+
+ init {
+ if (rootView != null) {
+ this@RecyclerViewPanel.context = rootView.context
+ }
+ }
+
+ open fun init() {
+ initViews()
+ initList()
+ initSwipeRefreshLayout()
+ initObserver()
+ }
+
+ private fun initViews() {
+ mRecyclerView = rootView?.findViewById(R.id.recycler_view) ?: tempRecyclerView
+ refreshLayout = rootView?.findViewById(R.id.refresh_layout) ?: tempRefreshLayout
+ }
+
+ open fun initObserver() {
+ dataLoadModel.loadStateListener = {
+ refreshLoadingStatus(it)
+ }
+
+ dataLoadModel.dataLoadListener = {
+ if (dataLoadModel.isFirstData()) {
+ setNewData(it)
+ } else {
+ addData(it)
+ }
+ }
+ }
+
+ override fun getRecyclerView(): RecyclerView? =
+ mRecyclerView ?: rootView?.findViewById(R.id.recycler_view) ?: tempRecyclerView
+
+ override fun onRefreshDone() = stopRefresh()
+ override fun onRefreshFail() = stopRefresh()
+ override fun onLoadMoreEnd() = Unit
+ override fun onLoadMoreComplete() = Unit
+ override fun onLoadMoreFail() = Unit
+ override fun onRefreshNone() = stopRefresh()
+
+ override fun getMyLayoutManager(): RecyclerView.LayoutManager =
+ LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
+
+ override fun getItemLayoutIdMap(): Map<Int, Int> = emptyMap()
+
+ override fun getSectionLayoutId(): Int = R.layout.recycler_item_section_head
+
+ override fun getSectionDataList(): List<MySection<T>> =
+ MySection.convert2Section(dataLoadModel.dataList)
+
+ override fun onItemClick(
+ adapter: BaseQuickAdapter<Any?, BaseViewHolder>,
+ view: View,
+ position: Int,
+ dataList: List<T>
+ ) = Unit
+
+ override fun onItemChildClick(
+ adapter: BaseQuickAdapter<Any?, BaseViewHolder>,
+ view: View,
+ position: Int,
+ dataList: List<T>
+ ) = Unit
+
+ override fun enableLoadMore(): Boolean = true
+
+ override fun onLoadMoreStart() {
+ if (getSwipeRefreshLayout()?.isRefreshing == true) {
+ adapter?.loadMoreComplete()
+ return
+ }
+ }
+
+ override fun onLoadMoreRequested() = dataLoadModel.loadMore()
+
+ override fun enableUpFetch(): Boolean = false
+
+ @SuppressLint("InflateParams")
+ override fun getMyEmptyView(): View? =
+ LayoutInflater.from(context).inflate(R.layout.layout_empty_view, null)
+
+ @SuppressLint("InflateParams")
+ override fun getMyLoadingView(): View? = LayoutInflater.from(context).inflate(R.layout.layout_loading_view, null)
+
+ @SuppressLint("InflateParams")
+ override fun getMyLoadFailView(): View? = LayoutInflater.from(context).inflate(R.layout.layout_load_fail_view, null)
+
+ //******************************SwipeRefreshLayout************************************************************
+
+ override fun getSwipeRefreshLayout(): SwipeRefreshLayout? =
+ refreshLayout ?: rootView?.findViewById(R.id.refresh_layout) ?: tempRefreshLayout
+
+ override fun enableRefresh(): Boolean = true
+
+ override fun needSwipeRefresh(): Boolean = true
+
+ override fun onRefreshRequested() {
+ //绗笁鏂箁ecyclerView鐨勪笂鎷夊姞杞界粨鏉熷悗锛屽鏋滀笅鎷夊埛鏂版墽琛岋紝鍒欏簲璇ラ噸鏂版墦寮�鐩戝惉
+ try {
+ if (!adapter?.isLoadMoreEnable!!) {
+ setLoadMore()
+ }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ dataLoadModel.refresh()
+ }
+
+ override fun getColorList(): Array<Int> = arrayOf(
+ ContextCompat.getColor(context, R.color.colorPrimary),
+ ContextCompat.getColor(context, R.color.colorPrimaryDark),
+ ContextCompat.getColor(context, R.color.colorAccent)
+ )
+}
\ No newline at end of file
--
Gitblit v1.9.3