整理:code review
parent
1da0257c8c
commit
06ce0112a9
@ -1,56 +0,0 @@
|
||||
package com.idormy.sms.forwarder.adapter
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.paging.PagingDataAdapter
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.idormy.sms.forwarder.adapter.LogsPagingAdapter.MyViewHolder
|
||||
import com.idormy.sms.forwarder.database.entity.LogsAndRuleAndSender
|
||||
import com.idormy.sms.forwarder.databinding.AdapterLogsCardViewListItemBinding
|
||||
import com.xuexiang.xutil.data.DateUtils
|
||||
|
||||
class LogsPagingAdapter(private val itemClickListener: OnItemClickListener) : PagingDataAdapter<LogsAndRuleAndSender, MyViewHolder>(diffCallback) {
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
|
||||
val binding = AdapterLogsCardViewListItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||
return MyViewHolder(binding)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
|
||||
val item = getItem(position)
|
||||
if (item != null) {
|
||||
holder.binding.tvFrom.text = item.msg.from
|
||||
holder.binding.tvTime.text = DateUtils.getFriendlyTimeSpanByNow(item.logs.time)
|
||||
holder.binding.tvContent.text = item.msg.content
|
||||
//holder.binding.ivSenderImage.setImageResource(Sender.getImageId(item.sender.type))
|
||||
//holder.binding.ivStatusImage.setImageResource(item.logs.statusImageId)
|
||||
holder.binding.ivSimImage.setImageResource(item.msg.simImageId)
|
||||
|
||||
holder.binding.cardView.setOnClickListener { view: View? ->
|
||||
itemClickListener.onItemClicked(view, item)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MyViewHolder(val binding: AdapterLogsCardViewListItemBinding) : RecyclerView.ViewHolder(binding.root)
|
||||
interface OnItemClickListener {
|
||||
fun onItemClicked(view: View?, item: LogsAndRuleAndSender)
|
||||
fun onItemRemove(view: View?, id: Int)
|
||||
}
|
||||
|
||||
companion object {
|
||||
var diffCallback: DiffUtil.ItemCallback<LogsAndRuleAndSender> = object : DiffUtil.ItemCallback<LogsAndRuleAndSender>() {
|
||||
override fun areItemsTheSame(oldItem: LogsAndRuleAndSender, newItem: LogsAndRuleAndSender): Boolean {
|
||||
return oldItem.logs.id == newItem.logs.id
|
||||
}
|
||||
|
||||
@SuppressLint("DiffUtilEquals")
|
||||
override fun areContentsTheSame(oldItem: LogsAndRuleAndSender, newItem: LogsAndRuleAndSender): Boolean {
|
||||
return oldItem.logs === newItem.logs
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,57 +0,0 @@
|
||||
package com.idormy.sms.forwarder.server.component
|
||||
|
||||
import com.yanzhenjie.andserver.error.HttpException
|
||||
import com.yanzhenjie.andserver.framework.HandlerInterceptor
|
||||
import com.yanzhenjie.andserver.framework.handler.MethodHandler
|
||||
import com.yanzhenjie.andserver.framework.handler.RequestHandler
|
||||
import com.yanzhenjie.andserver.framework.mapping.Addition
|
||||
import com.yanzhenjie.andserver.http.HttpRequest
|
||||
import com.yanzhenjie.andserver.http.HttpResponse
|
||||
|
||||
//@Interceptor
|
||||
class LoginInterceptor : HandlerInterceptor {
|
||||
override fun onIntercept(
|
||||
request: HttpRequest,
|
||||
response: HttpResponse,
|
||||
handler: RequestHandler,
|
||||
): Boolean {
|
||||
if (handler is MethodHandler) {
|
||||
val methodHandler: MethodHandler = handler
|
||||
val addition: Addition = methodHandler.addition
|
||||
if (!isLogin(request, addition)) {
|
||||
throw HttpException(401, "You are not logged in yet.")
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
private fun isNeedLogin(addition: Addition?): Boolean {
|
||||
if (addition == null) {
|
||||
return false
|
||||
}
|
||||
val stringType = addition.stringType
|
||||
if (stringType.isEmpty()) {
|
||||
return false
|
||||
}
|
||||
val booleanType = addition.booleanType
|
||||
return if (booleanType.isEmpty()) {
|
||||
false
|
||||
} else stringType[0].equals("login", ignoreCase = true) && booleanType[0]
|
||||
}
|
||||
|
||||
private fun isLogin(request: HttpRequest, addition: Addition): Boolean {
|
||||
if (isNeedLogin(addition)) {
|
||||
val session = request.session
|
||||
if (session != null) {
|
||||
val o = session.getAttribute(LOGIN_ATTRIBUTE)
|
||||
return o is Boolean && o
|
||||
}
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val LOGIN_ATTRIBUTE = "USER.LOGIN.SIGN"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue