diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashFragment.kt b/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashFragment.kt index 08afc3d12..78f91054b 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashFragment.kt +++ b/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashFragment.kt @@ -6,6 +6,7 @@ import android.content.pm.ActivityInfo import android.net.Uri import android.os.Bundle import android.view.* +import androidx.core.view.isVisible import androidx.navigation.NavDeepLinkBuilder import com.topjohnwu.magisk.MainDirections import com.topjohnwu.magisk.R @@ -37,6 +38,15 @@ class FlashFragment : BaseFragment() { viewModel.subtitle.observe(this) { activity?.supportActionBar?.setSubtitle(it) } + + viewModel.flashResult.observe(this) { success -> + binding.restartBtn.apply { + if (success && viewModel.showReboot) { + if (!this.isVisible) this.show() + if (!this.isFocused) this.requestFocus() + } + } + } } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { @@ -66,7 +76,7 @@ class FlashFragment : BaseFragment() { } override fun onKeyEvent(event: KeyEvent): Boolean { - return when(event.keyCode) { + return when (event.keyCode) { KeyEvent.KEYCODE_VOLUME_UP, KeyEvent.KEYCODE_VOLUME_DOWN -> true else -> false diff --git a/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashViewModel.kt b/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashViewModel.kt index 23d7f6fbe..30aad2ea1 100644 --- a/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashViewModel.kt +++ b/app/src/main/java/com/topjohnwu/magisk/ui/flash/FlashViewModel.kt @@ -34,6 +34,10 @@ class FlashViewModel : BaseViewModel() { private val _subtitle = MutableLiveData(R.string.flashing) val subtitle get() = _subtitle as LiveData + private val _flashResult = MutableLiveData() + val flashResult: LiveData + get() = _flashResult + val items = diffListOf() lateinit var args: FlashFragmentArgs @@ -88,6 +92,7 @@ class FlashViewModel : BaseViewModel() { success -> _subtitle.postValue(R.string.done) else -> _subtitle.postValue(R.string.failure) } + _flashResult.value = success } fun onMenuItemClicked(item: MenuItem): Boolean { @@ -100,7 +105,8 @@ class FlashViewModel : BaseViewModel() { private fun savePressed() = withExternalRW { viewModelScope.launch(Dispatchers.IO) { val name = "magisk_install_log_%s.log".format( - System.currentTimeMillis().toTime(timeFormatStandard)) + System.currentTimeMillis().toTime(timeFormatStandard) + ) val file = MediaStoreUtils.getFile(name, true) file.uri.outputStream().bufferedWriter().use { writer -> synchronized(logItems) { diff --git a/app/src/main/res/layout/fragment_flash_md2.xml b/app/src/main/res/layout/fragment_flash_md2.xml index d54d52d43..c4578b02d 100644 --- a/app/src/main/res/layout/fragment_flash_md2.xml +++ b/app/src/main/res/layout/fragment_flash_md2.xml @@ -24,13 +24,13 @@ @@ -38,27 +38,31 @@ + app:iconTint="?colorOnPrimary" + app:layout_fitsSystemWindowsInsets="bottom" /> + app:fitsSystemWindowsInsets="top|bottom" />