光环助手V4.0.2-开服日历表优化(2(1),2(2))https://gitlab.ghzs.com/pm/halo-app-issues/-/issues/893

This commit is contained in:
kehaoyuan
2020-06-08 16:47:38 +08:00
parent ae0b5b3738
commit cced6b7035
6 changed files with 279 additions and 258 deletions

View File

@ -7,5 +7,7 @@ class CalendarEntity {
var day: Int = 0
var month: Int = 0
var server: MutableList<ServerCalendarEntity> = ArrayList()
}

View File

@ -255,7 +255,7 @@ class ServersCalendarActivity : ToolBarActivity() {
feedback.setOnClickListener {
if (mViewModel.meEntity?.isPartTime == true) {
startActivityForResult(AddKaiFuActivity.getIntent(this,
mViewModel.serverCalendarLiveData.value!!.last(),
calendarEntity.server.last(),
mViewModel.serverCalendarLiveData.value as ArrayList<ServerCalendarEntity>,
mViewModel.game.id), GAME_DETAIL_ADD_KAIFU_REQUEST)
} else {

View File

@ -9,18 +9,18 @@ import android.view.ViewGroup
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.gh.common.util.MtaHelper
import com.gh.common.util.dip2px
import com.gh.common.util.toColor
import com.gh.common.util.*
import com.gh.common.view.DrawableView
import com.gh.gamecenter.R
import com.gh.gamecenter.adapter.viewholder.GameDetailCalenderViewHolder
import com.gh.gamecenter.entity.CalendarEntity
import com.gh.gamecenter.entity.ServerCalendarEntity
import com.gh.gamecenter.gamedetail.fuli.FuLiFragment
import com.gh.gamecenter.servers.add.AddKaiFuActivity.Companion.getIntent
import com.lightgame.adapter.BaseRecyclerAdapter
import java.text.SimpleDateFormat
import java.util.*
import kotlin.collections.HashMap
import kotlin.math.abs
class ServersCalendarAdapter(context: Context,
val viewModel: ServersCalendarViewModel,
@ -101,7 +101,7 @@ class ServersCalendarAdapter(context: Context,
if (meEntity?.isPartTime == true) {
(mContext as Activity).startActivityForResult(
getIntent(mContext,
viewModel.serverCalendarLiveData.value!!.last(),
getRecentServerByPosition(day),
viewModel.serverCalendarLiveData.value as ArrayList<ServerCalendarEntity>,
mGameEntity.id),
ServersCalendarActivity.GAME_DETAIL_ADD_KAIFU_REQUEST)
@ -119,6 +119,27 @@ class ServersCalendarAdapter(context: Context,
}
}
// 获取当前位置(时间)最近的开服信息
private fun getRecentServerByPosition(day: Int): ServerCalendarEntity {
tryCatchInRelease {
val formatDay = SimpleDateFormat("dd", Locale.CHINA)
val offsetAndServerMap = HashMap<Int, ServerCalendarEntity>()
for (calendarEntity in calendarList) {
val servers = calendarEntity.server
if (servers.isNotEmpty()) {
val server = servers.last()
offsetAndServerMap[abs(formatDay.format(server.getTime() * 1000).toInt() - day)] = server
}
}
val toList = offsetAndServerMap.keys.toMutableList()
toList.sortWith(Comparator { o1, o2 -> o1 - o2 })
return offsetAndServerMap[toList.first()]!!
}
return viewModel.serverCalendarLiveData.value!!.last()
}
private class WeekViewHolder(val week: TextView) : RecyclerView.ViewHolder(week)
companion object {

View File

@ -51,7 +51,7 @@ class AddKaiFuActivity : ToolBarActivity() {
// initViewModel
mViewModel = ViewModelProviders.of(this).get(AddKaiFuViewModel::class.java)
mViewModel?.initData(intent.getParcelableExtra(ServerCalendarEntity.TAG)
, intent.getParcelableArrayListExtra<ServerCalendarEntity>(EntranceUtils.KEY_KAIFU_LIST)
, intent.getParcelableArrayListExtra(EntranceUtils.KEY_KAIFU_LIST)
, intent.getStringExtra(EntranceUtils.KEY_GAMEID))
mViewModel?.postResult?.observe(this, androidx.lifecycle.Observer { it ->
if (it == null) {