Show dialog explaining auto-restore after a restore failed due to not all apps being installed
This commit is contained in:
parent
0f0f198228
commit
a833df2165
2 changed files with 18 additions and 0 deletions
|
@ -9,6 +9,7 @@ import android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
|
||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
import android.widget.ProgressBar
|
import android.widget.ProgressBar
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.core.content.ContextCompat.getColor
|
import androidx.core.content.ContextCompat.getColor
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.Observer
|
import androidx.lifecycle.Observer
|
||||||
|
@ -17,6 +18,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager.VERTICAL
|
import androidx.recyclerview.widget.LinearLayoutManager.VERTICAL
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.stevesoltys.seedvault.R
|
import com.stevesoltys.seedvault.R
|
||||||
|
import com.stevesoltys.seedvault.ui.AppBackupState.FAILED_NOT_INSTALLED
|
||||||
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
||||||
|
|
||||||
class RestoreProgressFragment : Fragment() {
|
class RestoreProgressFragment : Fragment() {
|
||||||
|
@ -83,11 +85,25 @@ class RestoreProgressFragment : Fragment() {
|
||||||
backupNameView.setTextColor(getColor(requireContext(), R.color.red))
|
backupNameView.setTextColor(getColor(requireContext(), R.color.red))
|
||||||
} else {
|
} else {
|
||||||
backupNameView.text = getString(R.string.restore_finished_success)
|
backupNameView.text = getString(R.string.restore_finished_success)
|
||||||
|
onRestoreFinished()
|
||||||
}
|
}
|
||||||
activity?.window?.clearFlags(FLAG_KEEP_SCREEN_ON)
|
activity?.window?.clearFlags(FLAG_KEEP_SCREEN_ON)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun onRestoreFinished() {
|
||||||
|
// check if any restore failed, because the app is not installed
|
||||||
|
val failed = viewModel.restoreProgress.value?.any { it.state == FAILED_NOT_INSTALLED }
|
||||||
|
if (failed != true) return // nothing left to do if there's no failures due to not installed
|
||||||
|
AlertDialog.Builder(requireContext())
|
||||||
|
.setTitle(R.string.restore_restoring_error_title)
|
||||||
|
.setMessage(R.string.restore_restoring_error_message)
|
||||||
|
.setPositiveButton(android.R.string.ok) { dialog, _ ->
|
||||||
|
dialog.dismiss()
|
||||||
|
}
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
|
||||||
private fun stayScrolledAtTop(add: () -> Unit) {
|
private fun stayScrolledAtTop(add: () -> Unit) {
|
||||||
val position = layoutManager.findFirstVisibleItemPosition()
|
val position = layoutManager.findFirstVisibleItemPosition()
|
||||||
add.invoke()
|
add.invoke()
|
||||||
|
|
|
@ -118,6 +118,8 @@
|
||||||
<string name="restore_installing_tap_to_install">Tap to install</string>
|
<string name="restore_installing_tap_to_install">Tap to install</string>
|
||||||
<string name="restore_next">Next</string>
|
<string name="restore_next">Next</string>
|
||||||
<string name="restore_restoring">Restoring backup</string>
|
<string name="restore_restoring">Restoring backup</string>
|
||||||
|
<string name="restore_restoring_error_title">Unable to restore some apps</string>
|
||||||
|
<string name="restore_restoring_error_message">You can re-install these apps manually and "Automatic restore" will attempt to restore their data (when enabled).</string>
|
||||||
<string name="restore_magic_package">System package manager</string>
|
<string name="restore_magic_package">System package manager</string>
|
||||||
<string name="restore_finished_success">Restore complete</string>
|
<string name="restore_finished_success">Restore complete</string>
|
||||||
<string name="restore_finished_error">An error occurred while restoring the backup.</string>
|
<string name="restore_finished_error">An error occurred while restoring the backup.</string>
|
||||||
|
|
Loading…
Reference in a new issue