@@ -42,9 +42,9 @@ import java.math.BigDecimal
4242import java.net.URL
4343import java.util.concurrent.TimeUnit
4444
45- class CreatePartWizardPageFactory (private val vm : WizardActivityState ) {
46- fun get (): List <IWizardPage > {
47- val c = CreatePartDataHolder (vm)
45+ class CreatePartFlow (private val desiredStartSector : Long ): WizardFlow( ) {
46+ override fun get (vm : WizardActivityState ): List <IWizardPage > {
47+ val c = CreatePartDataHolder (vm, desiredStartSector )
4848 return listOf (WizardPage (" start" ,
4949 NavButton (vm.activity.getString(R .string.cancel)) { it.finish() },
5050 NavButton (" " ) {}
@@ -120,21 +120,20 @@ internal interface ProgressListener {
120120 fun update (bytesRead : Long , contentLength : Long , done : Boolean )
121121}
122122
123- private class CreatePartDataHolder (val vm : WizardActivityState ): ProgressListener {
123+ private class CreatePartDataHolder (val vm : WizardActivityState , private val desiredStartSector : Long ): ProgressListener {
124124
125125 var meta: SDUtils .SDPartitionMeta ? = null
126126 lateinit var p: SDUtils .Partition .FreeSpace
127127 lateinit var l: String
128128 lateinit var u: String
129129 var f = 0L
130130 var t: String? = null
131- var noobMode: Boolean = false
132131 var scriptInet: String? = null
133132 var scriptShaInet: String? = null
134133
135134 var painter: @Composable (() -> Painter )? = null
136- var rtype by mutableStateOf( " " )
137- var cmdline by mutableStateOf( " " )
135+ var rtype = " "
136+ var cmdline = " "
138137 val dmaMeta = ArrayMap <String , String >()
139138 val count = mutableIntStateOf(0 )
140139 val intVals = mutableStateListOf<Long >()
@@ -156,8 +155,8 @@ private class CreatePartDataHolder(val vm: WizardActivityState): ProgressListene
156155 }.build()
157156 var pl: ProgressListener ? = null
158157 var cl: (() -> Unit )? = null
159- lateinit var t2: MutableState < String >
160- val t3 = mutableStateOf(" " )
158+ var t2 by mutableStateOf( " " )
159+ var t3 by mutableStateOf(" " )
161160 var availableSize: Long = 0
162161
163162 override fun update (bytesRead : Long , contentLength : Long , done : Boolean ) {
@@ -179,12 +178,9 @@ private class CreatePartDataHolder(val vm: WizardActivityState): ProgressListene
179178 idNeeded.removeAll(idUnneeded)
180179 }
181180
182- @SuppressLint(" ComposableNaming" )
183- @Composable
184181 fun lateInit () {
185- noobMode = LocalContext .current.getSharedPreferences(" abm" , 0 ).getBoolean(" noob_mode" , BuildConfig .DEFAULT_NOOB_MODE )
186182 meta = SDUtils .generateMeta(vm.deviceInfo)
187- p = (meta?.s?.find { vm.mvm.wizardCompatSid == it.startSector } as SDUtils .Partition .FreeSpace ? )!!
183+ p = (meta?.s?.find { desiredStartSector == it.startSector } as SDUtils .Partition .FreeSpace ? )!!
188184 }
189185
190186 fun painterFromRtype (type : String ): @Composable () -> Painter {
@@ -263,7 +259,7 @@ private fun Start(c: CreatePartDataHolder) {
263259 }
264260 }
265261
266- if (remember { ctx.getSharedPreferences( " abm " , 0 ).getBoolean( " noob_mode " , BuildConfig . DEFAULT_NOOB_MODE ) } ) {
262+ if (c.vm.mvm.noobMode ) {
267263 Card (
268264 modifier = Modifier
269265 .fillMaxWidth()
@@ -471,12 +467,14 @@ private fun Os(c: CreatePartDataHolder) {
471467 a.sortWith(Comparator .comparingInt { c -> c.substring(3 , c.length - 5 ).toInt() })
472468 val b = if (a.size > 0 ) a.last().substring(3 , a.last().length - 5 ).toInt() + 1 else 0
473469 c.t2 = mutableStateOf(" rom$b " )
474- c.t3.value = c.dmaMeta[" name" ]!!
470+ c.t3 = c.dmaMeta[" name" ]!!
475471 }
476472
477473 val s = rememberScrollState()
478474 var expanded by remember { mutableIntStateOf(0 ) }
479- var e by remember { mutableStateOf(false ) }
475+ val et2 by remember { derivedStateOf { ! (c.t2.matches(Regex (" \\ A\\ p{ASCII}*\\ z" ))) } }
476+ val et3 by remember { derivedStateOf { ! (c.t3.matches(Regex (" \\ A\\ p{ASCII}*\\ z" ))) } }
477+ val e = et2 || et3
480478 Column (
481479 Modifier
482480 .fillMaxSize()
@@ -502,7 +500,7 @@ private fun Os(c: CreatePartDataHolder) {
502500 }
503501 }
504502 }
505- if (! c.noobMode)
503+ if (! c.vm.mvm. noobMode)
506504 Row (verticalAlignment = Alignment .CenterVertically , horizontalArrangement = Arrangement .Center , modifier = Modifier
507505 .fillMaxWidth()
508506 .padding(5 .dp)
@@ -516,32 +514,26 @@ private fun Os(c: CreatePartDataHolder) {
516514 Icon (painterResource(id = R .drawable.ic_baseline_keyboard_arrow_down_24), stringResource(R .string.expand_content_desc))
517515 }
518516 }
519- if (expanded == 1 || c.noobMode) {
517+ if (expanded == 1 || c.vm.mvm. noobMode) {
520518 Column (
521519 Modifier
522520 .fillMaxWidth()
523521 .padding(5 .dp)
524522 ) {
525- var et2 by remember { mutableStateOf(false ) }
526- var et3 by remember { mutableStateOf(false ) }
527- if (! c.noobMode)
528- TextField (value = c.t2.value, onValueChange = {
529- c.t2.value = it
530- et2 = ! (c.t2.value.matches(Regex (" \\ A\\ p{ASCII}*\\ z" )))
531- e = et2 || et3
523+ if (! c.vm.mvm.noobMode)
524+ TextField (value = c.t2, onValueChange = {
525+ c.t2 = it
532526 }, isError = et2, label = {
533527 Text (stringResource(R .string.internal_id))
534528 })
535- TextField (value = c.t3.value, onValueChange = {
536- c.t3.value = it
537- et3 = ! (c.t3.value.matches(Regex (" \\ A\\ p{ASCII}*\\ z" )))
538- e = et2 || et3
529+ TextField (value = c.t3, onValueChange = {
530+ c.t3 = it
539531 }, isError = et3, label = {
540532 Text (stringResource(R .string.name_in_boot))
541533 })
542534 }
543535 }
544- if (! c.noobMode)
536+ if (! c.vm.mvm. noobMode)
545537 Row (verticalAlignment = Alignment .CenterVertically , horizontalArrangement = Arrangement .Center , modifier = Modifier
546538 .fillMaxWidth()
547539 .padding(5 .dp)
@@ -910,8 +902,8 @@ private fun Flash(c: CreatePartDataHolder) {
910902 c.vm.logic.extractToolkit(terminal)
911903 if (c.t == null ) { // OS install
912904 val parts = ArrayMap <Int , Int >()
913- val fn = c.t2.value
914- val gn = c.t3.value
905+ val fn = c.t2
906+ val gn = c.t3
915907 terminal.add(vm.activity.getString(R .string.term_f_name, fn))
916908 terminal.add(vm.activity.getString(R .string.term_g_name, gn))
917909 val tmpFile = c.chosen[" _install.sh_" ]!! .toFile(vm)
0 commit comments