diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt index 07cfd96..58d2e94 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt @@ -2,7 +2,9 @@ package com.gamedog.vididin.main.fragments import android.Manifest import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup +import android.widget.LinearLayout import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.updatePadding @@ -23,6 +25,7 @@ import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.main.WatchVideoDialog import com.gamedog.vididin.main.fragments.task.DailySignDialog import com.gamedog.vididin.main.fragments.task.TaskBean +import com.gamedog.vididin.main.fragments.task.widget.DailyTaskItemView import com.gamedog.vididin.main.interfaces.OnTabClickAgainListener import com.gamedog.vididin.manager.TaskManager import com.gamedog.vididin.router.Router @@ -38,10 +41,13 @@ import com.gamedog.vididin.main.fragments.home.YoutubeUiState as UiState @AndroidEntryPoint class TasksFragment : AppViewsFragment(), OnTabClickAgainListener, OnFragmentBackgroundListener { + private var mTaskConfig: TaskBean? = null override val mViewModel: ViewModel by viewModels() override var isBackgroundBright: Boolean = true + private val mDailyWatchVideoTaskViewList = mutableListOf() + override fun inflateViewBinding( inflater: LayoutInflater, @@ -122,31 +128,7 @@ class TasksFragment : AppViewsFragment(), OnTab } - dailyTaskWatch1.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 1, R.string.resgatar) - dailyTaskWatch1.setActionFun { - gotoWithVideo() - } - - dailyTaskWatch5.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 5, R.string.go_and_do) - dailyTaskWatch5.setActionFun { - gotoWithVideo() - } - - dailyTaskWatch10.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 10, R.string.go_and_do) - dailyTaskWatch10.setActionFun { - gotoWithVideo() - } - - dailyTaskWatch20.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 20, R.string.go_and_do) - dailyTaskWatch20.setActionFun { - gotoWithVideo() - } - - dailyTaskWatch30.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 30, R.string.go_and_do) - dailyTaskWatch30.setActionFun { - gotoWithVideo() - } - + addDailySubTasks() updateUIGoldTotal() updateUICashTotal() @@ -157,6 +139,34 @@ class TasksFragment : AppViewsFragment(), OnTab } } + private fun addDailySubTasks() { + + val dailyWatchVideoTask = TaskManager.instance().getDailyVideoTask() + if (dailyWatchVideoTask != null && dailyWatchVideoTask.status == "active" + && dailyWatchVideoTask.reward_details.isNotEmpty()) { + + dailyWatchVideoTask.reward_details.forEachIndexed {index, detail -> + val watchTaskItemView = DailyTaskItemView(requireActivity()) + watchTaskItemView.setActionFun { + gotoWithVideo() + } + mDailyWatchVideoTaskViewList.add(watchTaskItemView) + + binding?.dailyTasksContainer!!.run { + watchTaskItemView.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, + detail.target_count, detail.value, if (index == 0) R.string.resgatar else R.string.go_and_do) + + addView(watchTaskItemView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT) + if (index != dailyWatchVideoTask.reward_details.size - 1) { + val separateLine = View(requireActivity()) + separateLine.setBackgroundResource(R.color.gray_f2) + addView(separateLine, LinearLayout.LayoutParams.MATCH_PARENT, ResUtil.getPixelSize(R.dimen.dp1)) + } + } + } + } + } + private fun updateUICashTotal() { binding?.tvCashTotal?.text = buildString { append(ResUtil.getString(R.string.cash)) diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt index c1a8a56..be84eb8 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt @@ -14,8 +14,10 @@ class DailyTaskItemView @JvmOverloads constructor( attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : LinearLayout(context, attrs, defStyleAttr) { + private var mRewardNum: Int = 0 + private var mNeedWatchTotal: Int = 0 private lateinit var mAction: () -> Unit - private lateinit var mBinding: DailyTaskItemViewBinding + private var mBinding: DailyTaskItemViewBinding init { @@ -33,21 +35,23 @@ class DailyTaskItemView @JvmOverloads constructor( - fun initUI(titleIconRes: Int, titleRes: Int, videosNum: Int, actionRes: Int) { + fun initUI(titleIconRes: Int, titleRes: Int, videosNum: Int, goldReward: Int, actionRes: Int) { + mRewardNum = goldReward + mNeedWatchTotal = videosNum + mBinding.ivItemIcon.setImageResource(titleIconRes) mBinding.tvItemTitle.text = String.format(ResUtil.getString(titleRes), videosNum) mBinding.tvAction.setText(actionRes) + mBinding.tvRewardNum.text = "+$goldReward" + mBinding.tvItemProgress.text = "(0/$videosNum)" } - fun setProgressText(progress: Int, progressText: String) { - mBinding.tvItemProgress.text = progressText - mBinding.itemProgress.setProgress(progress) + fun updateProgress(finishVideoNum: Int) { + val showWatchedNum = if (finishVideoNum > mNeedWatchTotal) mNeedWatchTotal else finishVideoNum + mBinding.tvItemProgress.text = "($showWatchedNum/$mNeedWatchTotal)" + mBinding.itemProgress.setProgress(showWatchedNum/mNeedWatchTotal) } - fun setRewardInfo(rewardIconRes: Int, rewardNum: Int) { - mBinding.tvRewardNum.text = "" + rewardNum - mBinding.ivRewardIcon.setImageResource(rewardIconRes) - } fun setActionFun(action: ()->Unit) { mAction = action diff --git a/app/src/main/res/layout/daily_task_item_view.xml b/app/src/main/res/layout/daily_task_item_view.xml index 24c2b9e..70e07db 100644 --- a/app/src/main/res/layout/daily_task_item_view.xml +++ b/app/src/main/res/layout/daily_task_item_view.xml @@ -65,7 +65,7 @@ android:textSize="14sp" android:textStyle="bold" android:textColor="@color/gray6" - android:text="(1/5)" + android:text="(0/5)" /> diff --git a/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml b/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml index a88b2c4..fcae1dd 100644 --- a/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml +++ b/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml @@ -473,66 +473,13 @@ - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index a993e77..46d448d 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -6,4 +6,5 @@ 30dp 14dp 16sp + 1dp \ No newline at end of file