|
|
@@ -7,6 +7,7 @@ import android.view.View
|
|
|
import android.view.ViewGroup
|
|
|
import android.widget.CheckBox
|
|
|
import android.widget.TextView
|
|
|
+import androidx.appcompat.app.AlertDialog
|
|
|
import androidx.lifecycle.lifecycleScope
|
|
|
import androidx.recyclerview.widget.DividerItemDecoration
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
@@ -20,6 +21,11 @@ import kotlinx.coroutines.launch
|
|
|
import net.typeblog.lpac_jni.LocalProfileInfo
|
|
|
|
|
|
class DownloadWizardSlotSelectFragment : DownloadWizardActivity.DownloadWizardStepFragment() {
|
|
|
+ companion object {
|
|
|
+ const val LOW_NVRAM_THRESHOLD =
|
|
|
+ 30 * 1024 // < 30 KiB, alert about potential download failure
|
|
|
+ }
|
|
|
+
|
|
|
private data class SlotInfo(
|
|
|
val logicalSlotId: Int,
|
|
|
val isRemovable: Boolean,
|
|
|
@@ -45,6 +51,21 @@ class DownloadWizardSlotSelectFragment : DownloadWizardActivity.DownloadWizardSt
|
|
|
|
|
|
override fun createPrevFragment(): DownloadWizardActivity.DownloadWizardStepFragment? = null
|
|
|
|
|
|
+ override fun beforeNext() {
|
|
|
+ super.beforeNext()
|
|
|
+
|
|
|
+ if (adapter.selected.freeSpace < LOW_NVRAM_THRESHOLD) {
|
|
|
+ AlertDialog.Builder(requireContext()).apply {
|
|
|
+ setTitle(R.string.profile_download_low_nvram_title)
|
|
|
+ setMessage(R.string.profile_download_low_nvram_message)
|
|
|
+ setCancelable(true)
|
|
|
+ setPositiveButton(android.R.string.ok, null)
|
|
|
+ setNegativeButton(android.R.string.cancel, null)
|
|
|
+ show()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override fun onCreateView(
|
|
|
inflater: LayoutInflater,
|
|
|
container: ViewGroup?,
|
|
|
@@ -165,6 +186,9 @@ class DownloadWizardSlotSelectFragment : DownloadWizardActivity.DownloadWizardSt
|
|
|
var slots: List<SlotInfo> = listOf()
|
|
|
var currentSelectedIdx = -1
|
|
|
|
|
|
+ val selected: SlotInfo
|
|
|
+ get() = slots[currentSelectedIdx]
|
|
|
+
|
|
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SlotItemHolder {
|
|
|
val root = LayoutInflater.from(parent.context).inflate(R.layout.download_slot_item, parent, false)
|
|
|
return SlotItemHolder(root)
|