New feature: remaining tasks tip
This commit is contained in:
parent
baeecb343b
commit
a903c8ef98
5 changed files with 58 additions and 27 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import kotlinx.coroutines.launch
|
|||
class ProgressFragmentViewModel : ViewModel() {
|
||||
val totalCount: MutableLiveData<Int> = MutableLiveData()
|
||||
val completeCount: MutableLiveData<Int> = MutableLiveData()
|
||||
val remainCount: MutableLiveData<Int> = MutableLiveData()
|
||||
val progress: MutableLiveData<Int> = MutableLiveData()
|
||||
|
||||
fun updateProgress() {
|
||||
|
|
@ -22,6 +23,7 @@ class ProgressFragmentViewModel : ViewModel() {
|
|||
progress.postValue(calcProgress.toInt())
|
||||
completeCount.postValue(complete)
|
||||
totalCount.postValue(total)
|
||||
remainCount.postValue(total - complete)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/completeTextView"
|
||||
android:layout_width="wrap_content"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="0"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Display1"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textStyle="bold" />
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/complete_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:text="0"
|
||||
android:textAppearance="?attr/textAppearanceDisplaySmall"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="/"
|
||||
android:textAppearance="?attr/textAppearanceDisplayMedium"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/total_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="0"
|
||||
android:textAppearance="?attr/textAppearanceDisplayMedium"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/remain_count"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="/"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Display2"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/totalTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="0"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Display2"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textStyle="bold" />
|
||||
android:textAlignment="center"
|
||||
android:visibility="gone"
|
||||
android:textSize="12sp" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -68,4 +68,5 @@
|
|||
<string name="info_state_complete">状态:已完成</string>
|
||||
<string name="info_state_incomplete">状态:未完成</string>
|
||||
<string name="info_uuid">UUID:%s</string>
|
||||
<string name="remain_text">剩余 %s 项任务</string>
|
||||
</resources>
|
||||
|
|
@ -68,4 +68,5 @@
|
|||
<string name="info_state_complete">State: complete</string>
|
||||
<string name="info_state_incomplete">State: incomplete</string>
|
||||
<string name="info_uuid">UUID: %s</string>
|
||||
<string name="remain_text">s% tasks remaining</string>
|
||||
</resources>
|
||||
Loading…
Reference in a new issue