Added showing download progress in the home ui
This commit is contained in:
parent
6d03798314
commit
236ad57608
@ -1,10 +1,15 @@
|
||||
package com.topjohnwu.magisk.redesign.home
|
||||
|
||||
import android.graphics.Insets
|
||||
import androidx.lifecycle.Observer
|
||||
import com.topjohnwu.magisk.R
|
||||
import com.topjohnwu.magisk.databinding.FragmentHomeMd2Binding
|
||||
import com.topjohnwu.magisk.model.download.RemoteFileService
|
||||
import com.topjohnwu.magisk.model.entity.internal.DownloadSubject
|
||||
import com.topjohnwu.magisk.redesign.compat.CompatFragment
|
||||
import org.koin.androidx.viewmodel.ext.android.viewModel
|
||||
import timber.log.Timber
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
class HomeFragment : CompatFragment<HomeViewModel, FragmentHomeMd2Binding>() {
|
||||
|
||||
@ -15,8 +20,15 @@ class HomeFragment : CompatFragment<HomeViewModel, FragmentHomeMd2Binding>() {
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
|
||||
RemoteFileService.progressBroadcast.observe(this, Observer {
|
||||
when (it.second) {
|
||||
is DownloadSubject.Magisk.Download,
|
||||
is DownloadSubject.Magisk.Flash -> viewModel.stateMagiskProgress.value =
|
||||
it.first.times(100f).roundToInt().also { Timber.i("Progress: $it") }
|
||||
is DownloadSubject.Manager -> viewModel.stateManagerProgress.value =
|
||||
it.first.times(100f).roundToInt().also { Timber.i("Progress: $it") }
|
||||
}
|
||||
})
|
||||
activity.title = resources.getString(R.string.section_home)
|
||||
}
|
||||
|
||||
}
|
@ -50,6 +50,9 @@ class HomeViewModel(
|
||||
val stateVersionUpdateMagisk = KObservableField("")
|
||||
val stateVersionUpdateManager = KObservableField("")
|
||||
|
||||
val stateMagiskProgress = KObservableField(0)
|
||||
val stateManagerProgress = KObservableField(0)
|
||||
|
||||
val stateHideManagerName = R.string.manager.res().let {
|
||||
if (!statePackageOriginal) {
|
||||
it.replaceRandomWithSpecial(3)
|
||||
|
26
app/src/main/res/drawable/progress_determinate.xml
Normal file
26
app/src/main/res/drawable/progress_determinate.xml
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:id="@android:id/background">
|
||||
<shape>
|
||||
<solid android:color="@android:color/transparent" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<item android:id="@android:id/secondaryProgress">
|
||||
<clip>
|
||||
<shape>
|
||||
<solid android:color="?colorSecondary" />
|
||||
</shape>
|
||||
</clip>
|
||||
</item>
|
||||
|
||||
<item android:id="@android:id/progress">
|
||||
<clip>
|
||||
<shape>
|
||||
<solid android:color="?colorPrimary" />
|
||||
</shape>
|
||||
</clip>
|
||||
</item>
|
||||
|
||||
</layer-list>
|
@ -148,6 +148,14 @@
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<ProgressBar
|
||||
style="?styleProgressDeterminate"
|
||||
gone="@{viewModel.stateMagiskProgress == 0 || viewModel.stateMagiskProgress == 100}"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_gravity="bottom"
|
||||
android:max="100"
|
||||
android:progress="@{viewModel.stateMagiskProgress}" />
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
@ -252,8 +260,15 @@
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
<ProgressBar
|
||||
style="?styleProgressDeterminate"
|
||||
gone="@{viewModel.stateManagerProgress == 0 || viewModel.stateManagerProgress == 100}"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_gravity="bottom"
|
||||
android:max="100"
|
||||
android:progress="@{viewModel.stateManagerProgress}" />
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
@ -44,6 +44,10 @@
|
||||
<!--Checkbox-->
|
||||
<attr name="styleCheckboxNormal" format="reference" />
|
||||
|
||||
<!--Progress-->
|
||||
<attr name="styleProgressDeterminate" format="reference" />
|
||||
<attr name="styleProgressIndeterminate" format="reference" />
|
||||
|
||||
<!--endregion-->
|
||||
|
||||
<!--region Texts-->
|
||||
|
@ -53,6 +53,10 @@
|
||||
|
||||
<item name="styleCheckboxNormal">@style/WidgetFoundation.Checkbox</item>
|
||||
|
||||
<item name="styleProgressDeterminate">@style/WidgetFoundation.ProgressBar</item>
|
||||
<item name="styleProgressIndeterminate">@style/WidgetFoundation.ProgressBar.Indeterminate
|
||||
</item>
|
||||
|
||||
<!--///-->
|
||||
|
||||
<item name="appearanceTextDisplayNormal">@style/AppearanceFoundation.Display</item>
|
||||
|
@ -131,4 +131,16 @@ variant. Make sure to use style referenced by attribute defined it attrs.xml.
|
||||
<item name="tint">?colorPrimary</item>
|
||||
</style>
|
||||
|
||||
<style name="WidgetFoundation.ProgressBar" parent="Widget.AppCompat.ProgressBar.Horizontal">
|
||||
<item name="android:indeterminate">false</item>
|
||||
<item name="android:layout_height">4dp</item>
|
||||
<item name="android:progressDrawable">@drawable/progress_determinate</item>
|
||||
</style>
|
||||
|
||||
<style name="WidgetFoundation.ProgressBar.Indeterminate" parent="Widget.AppCompat.ProgressBar.Horizontal">
|
||||
<item name="android:indeterminate">true</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_width">100dp</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
Loading…
Reference in New Issue
Block a user