From a903c8ef98c5e70db449599423b8ab6dbf75d29a Mon Sep 17 00:00:00 2001 From: Super12138 <70494801+Super12138@users.noreply.github.com> Date: Sat, 13 Apr 2024 10:17:45 +0800 Subject: [PATCH] New feature: remaining tasks tip --- .../todo/views/progress/ProgressFragment.kt | 17 ++++- .../progress/ProgressFragmentViewModel.kt | 2 + app/src/main/res/layout/fragment_progress.xml | 64 ++++++++++++------- app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 58 insertions(+), 27 deletions(-) diff --git a/app/src/main/kotlin/cn/super12138/todo/views/progress/ProgressFragment.kt b/app/src/main/kotlin/cn/super12138/todo/views/progress/ProgressFragment.kt index 1668d48..9e7ad33 100644 --- a/app/src/main/kotlin/cn/super12138/todo/views/progress/ProgressFragment.kt +++ b/app/src/main/kotlin/cn/super12138/todo/views/progress/ProgressFragment.kt @@ -7,6 +7,7 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider +import cn.super12138.todo.R import cn.super12138.todo.databinding.FragmentProgressBinding @@ -26,18 +27,28 @@ class ProgressFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - viewModel = ViewModelProvider(requireActivity()).get(ProgressFragmentViewModel::class.java) + viewModel = ViewModelProvider(requireActivity())[ProgressFragmentViewModel::class.java] viewModel.progress.observe(viewLifecycleOwner, Observer { value -> binding.progressBar.setProgressCompat(value, true) }) viewModel.totalCount.observe(viewLifecycleOwner, Observer { total -> - binding.totalTextView.text = total.toString() + binding.totalCount.text = total.toString() }) viewModel.completeCount.observe(viewLifecycleOwner, Observer { complete -> - binding.completeTextView.text = complete.toString() + binding.completeCount.text = complete.toString() + }) + + viewModel.remainCount.observe(viewLifecycleOwner, Observer { remain -> + if (remain == 0) { + binding.remainCount.visibility = View.GONE + } else { + binding.remainCount.visibility = View.VISIBLE + binding.remainCount.text = + String.format(getString(R.string.remain_text), remain.toString()) + } }) viewModel.updateProgress() diff --git a/app/src/main/kotlin/cn/super12138/todo/views/progress/ProgressFragmentViewModel.kt b/app/src/main/kotlin/cn/super12138/todo/views/progress/ProgressFragmentViewModel.kt index a5509f4..c7160b1 100644 --- a/app/src/main/kotlin/cn/super12138/todo/views/progress/ProgressFragmentViewModel.kt +++ b/app/src/main/kotlin/cn/super12138/todo/views/progress/ProgressFragmentViewModel.kt @@ -10,6 +10,7 @@ import kotlinx.coroutines.launch class ProgressFragmentViewModel : ViewModel() { val totalCount: MutableLiveData = MutableLiveData() val completeCount: MutableLiveData = MutableLiveData() + val remainCount: MutableLiveData = MutableLiveData() val progress: MutableLiveData = MutableLiveData() fun updateProgress() { @@ -22,6 +23,7 @@ class ProgressFragmentViewModel : ViewModel() { progress.postValue(calcProgress.toInt()) completeCount.postValue(complete) totalCount.postValue(total) + remainCount.postValue(total - complete) } } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_progress.xml b/app/src/main/res/layout/fragment_progress.xml index 94a74e9..f4fa4e7 100644 --- a/app/src/main/res/layout/fragment_progress.xml +++ b/app/src/main/res/layout/fragment_progress.xml @@ -12,7 +12,7 @@ android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:max="100" - app:indicatorSize="160dp" + app:indicatorSize="170dp" app:indicatorTrackGapSize="10dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -26,38 +26,54 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" - android:orientation="horizontal" + android:orientation="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> - + android:gravity="center" + android:orientation="horizontal"> + + + + + + + - - + android:textAlignment="center" + android:visibility="gone" + android:textSize="12sp" /> diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 6086f0d..7a7a621 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -68,4 +68,5 @@ 状态:已完成 状态:未完成 UUID:%s + 剩余 %s 项任务 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d91a7de..c9c123b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -68,4 +68,5 @@ State: complete State: incomplete UUID: %s + s% tasks remaining \ No newline at end of file