@@ -61,7 +61,7 @@ import java.math.BigDecimal
6161import java.net.URL
6262
6363class CreatePartFlow (private val desiredStartSector : Long ): WizardFlow() {
64- override fun get (vm : WizardActivityState ): List <IWizardPage > {
64+ override fun get (vm : WizardState ): List <IWizardPage > {
6565 val c = CreatePartDataHolder (vm, desiredStartSector)
6666 return listOf (WizardPage (" start" ,
6767 NavButton (vm.activity.getString(R .string.cancel)) { it.finish() },
@@ -92,7 +92,7 @@ class CreatePartFlow(private val desiredStartSector: Long): WizardFlow() {
9292 }
9393}
9494
95- private class CreatePartDataHolder (val vm : WizardActivityState , val desiredStartSector : Long ) {
95+ private class CreatePartDataHolder (val vm : WizardState , val desiredStartSector : Long ) {
9696 var meta by mutableStateOf<SDUtils .SDPartitionMeta ?>(null )
9797 lateinit var p: SDUtils .Partition .FreeSpace
9898 var startSectorRelative = 0L
@@ -376,17 +376,17 @@ private fun Shop(c: CreatePartDataHolder) {
376376 while (i < inets.length()) {
377377 val l = inets.getJSONObject(i)
378378 vm.inetAvailable[l.getString(" id" )] =
379- WizardActivityState .Downloadable (
379+ WizardState .Downloadable (
380380 l.getString(" url" ),
381- l.optString (" hash" ),
381+ l.getStringOrNull (" hash" ),
382382 l.getString(" desc" )
383383 )
384384 i++
385385 }
386386 vm.idNeeded.add(" _install.sh_" )
387- vm.inetAvailable[" _install.sh_" ] = WizardActivityState .Downloadable (
387+ vm.inetAvailable[" _install.sh_" ] = WizardState .Downloadable (
388388 o.getString(" scriptname" ),
389- o.optString (" scriptSha256" ),
389+ o.getStringOrNull (" scriptSha256" ),
390390 vm.activity.getString(R .string.installer_sh)
391391 )
392392
@@ -655,7 +655,7 @@ private fun Flash(c: CreatePartDataHolder) {
655655 Terminal (logFile = " install_${System .currentTimeMillis()} .txt" ) { terminal ->
656656 c.vm.logic.extractToolkit(terminal)
657657 if (c.partitionName == null ) { // OS install
658- val createdParts = ArrayMap < Part , Int >() // order is important
658+ val createdParts = mutableListOf< Pair < Part , Int > >() // order is important
659659 val fn = c.romFolderName
660660 terminal.add(vm.activity.getString(R .string.term_f_name, fn))
661661 terminal.add(vm.activity.getString(R .string.term_g_name, c.romDisplayName))
@@ -683,7 +683,7 @@ private fun Flash(c: CreatePartDataHolder) {
683683 if (r.out .joinToString(" \n " ).contains(" kpartx" )) {
684684 terminal.add(vm.activity.getString(R .string.term_reboot_asap))
685685 }
686- createdParts[ part] = c.meta!! .nid
686+ createdParts.add( Pair ( part, c.meta!! .nid))
687687 c.meta = SDUtils .generateMeta(c.vm.deviceInfo)
688688 // do not assert there is leftover space if we just created the last partition we want to create
689689 if (index < c.parts.size - 1 ) {
@@ -715,7 +715,7 @@ private fun Flash(c: CreatePartDataHolder) {
715715 entry[" dtbo" ] = " $fn /dtbo.dtbo"
716716 entry[" options" ] = c.cmdline
717717 entry[" xtype" ] = c.rtype
718- entry[" xpart" ] = createdParts.values .joinToString(" :" )
718+ entry[" xpart" ] = createdParts.map { it.second } .joinToString(" :" )
719719 if (c.dmaMeta.contains(" updateJson" ) && c.dmaMeta[" updateJson" ] != null )
720720 entry[" xupdate" ] = c.dmaMeta[" updateJson" ]!!
721721 entry.exportToFile(File (vm.logic.abmEntries, " $fn .conf" ))
@@ -729,23 +729,21 @@ private fun Flash(c: CreatePartDataHolder) {
729729 if (! c.vm.idNeeded.contains(part.id)) continue
730730 terminal.add(vm.activity.getString(R .string.term_flashing_s, part.id))
731731 val f = c.vm.chosen[part.id]!!
732- val tp = File (meta.dumpKernelPartition(createdParts[ part] !! ).path)
732+ val tp = File (meta.dumpKernelPartition(createdParts.find { it.first == part } !! .second ).path)
733733 if (part.sparse) {
734- val f2 = f.toFile(c.vm)
735734 val result2 = Shell .cmd(
736735 File (
737736 c.vm.logic.toolkitDir,
738737 " simg2img"
739- ).absolutePath + " ${f2 .absolutePath} ${tp.absolutePath} "
738+ ).absolutePath + " ${f.toFile(c.vm) .absolutePath} ${tp.absolutePath} "
740739 ).to(terminal).exec()
741740 f.delete()
742741 if (! result2.isSuccess) {
743742 terminal.add(vm.activity.getString(R .string.term_failure))
744743 return @Terminal
745744 }
746745 } else {
747- val f2 = f.openInputStream(c.vm)
748- c.vm.copyPriv(f2, tp)
746+ c.vm.copyPriv(f.openInputStream(c.vm), tp)
749747 }
750748 terminal.add(vm.activity.getString(R .string.term_done))
751749 }
@@ -756,7 +754,7 @@ private fun Flash(c: CreatePartDataHolder) {
756754 cmd + = " " + c.vm.chosen[i]!! .toFile(vm).absolutePath
757755 }
758756 for (i in c.parts) {
759- cmd + = " " + createdParts[i]
757+ cmd + = " " + createdParts.find { it.first == i } !! .second
760758 }
761759 val result = vm.logic.runShFileWithArgs(cmd).to(terminal).exec()
762760 if (! result.isSuccess) {
0 commit comments