Skip to content

Commit

Permalink
refactor: display loading dialog in preference screen when deploying …
Browse files Browse the repository at this point in the history
…in background
  • Loading branch information
goofyz committed Dec 30, 2023
1 parent 31f4e1d commit d4dcd6f
Showing 1 changed file with 28 additions and 2 deletions.
30 changes: 28 additions & 2 deletions app/src/main/java/com/osfans/trime/ui/main/PrefMainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,16 @@ import android.view.Menu
import android.view.MenuItem
import android.view.ViewGroup
import androidx.activity.viewModels
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.forEach
import androidx.core.view.updateLayoutParams
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupWithNavController
Expand All @@ -21,23 +24,26 @@ import com.hjq.permissions.OnPermissionCallback
import com.hjq.permissions.Permission
import com.hjq.permissions.XXPermissions
import com.osfans.trime.R
import com.osfans.trime.core.Rime
import com.osfans.trime.data.AppPrefs
import com.osfans.trime.data.DataDirectoryChangeListener
import com.osfans.trime.data.sound.SoundThemeManager
import com.osfans.trime.databinding.ActivityPrefBinding
import com.osfans.trime.ime.core.RimeWrapper
import com.osfans.trime.ime.core.Status
import com.osfans.trime.ui.setup.SetupActivity
import com.osfans.trime.util.ProgressBarDialogIndeterminate
import com.osfans.trime.util.applyTranslucentSystemBars
import com.osfans.trime.util.briefResultLogDialog
import com.osfans.trime.util.withLoadingDialog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

class PrefMainActivity : AppCompatActivity() {
private val viewModel: MainViewModel by viewModels()
private val prefs get() = AppPrefs.defaultInstance()

private lateinit var navHostFragment: NavHostFragment
private var loadingDialog: AlertDialog? = null

private fun onNavigateUpListener(): Boolean {
val navController = navHostFragment.navController
Expand Down Expand Up @@ -104,6 +110,26 @@ class PrefMainActivity : AppCompatActivity() {
if (SetupActivity.shouldSetup()) {
startActivity(Intent(this, SetupActivity::class.java))
}

lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.STARTED) {
RimeWrapper.statusStateFlow.collect { state ->
when (state) {
Status.IN_PROGRESS -> {
loadingDialog?.dismiss()
loadingDialog =
ProgressBarDialogIndeterminate(R.string.loading).create().apply {
show()
}
}
Status.UN_INIT -> {
RimeWrapper.startup()
}
else -> loadingDialog?.dismiss()
}
}
}
}
}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
Expand Down

0 comments on commit d4dcd6f

Please sign in to comment.