@@ -468,19 +468,27 @@ private fun OsEditor(vm: MainActivityState, parts: SDUtils.SDPartitionMeta?, e:
468468 delete = false
469469 CoroutineScope (Dispatchers .Default ).launch {
470470 var tresult = " "
471- if (e.has(" xpart" ) && ! e[" xpart" ].isNullOrBlank() && vm.deviceInfo!! .metaonsd) {
472- var parts = parts
471+ if (e.has(" xpart" ) && ! e[" xpart" ].isNullOrBlank()) {
473472 val allp = e[" xpart" ]!! .split(" :" )
474- .map { parts!! .dumpKernelPartition(Integer .valueOf(it)) }
475- vm.unmountBootset()
476- for (p in allp) { // Do not chain, but regenerate meta and unmount every time. Thanks vold
477- p.meta = if (parts != null ) parts.also { parts = null }
478- else SDUtils .generateMeta(vm.deviceInfo!! .asMetaOnSdDeviceInfo())!!
479- val r = vm.logic!! .delete(p).exec()
480- tresult + = r.out .joinToString(" \n " ) + r.err.joinToString(" \n " ) + " \n "
473+ if (vm.deviceInfo!! .metaonsd) {
474+ val allParts = allp.map { parts!! .dumpKernelPartition(Integer .valueOf(it)) }
475+ vm.unmountBootset()
476+ var parts = parts
477+ for (p in allParts) { // Do not chain, but regenerate meta and unmount every time. Thanks vold
478+ p.meta = if (parts != null ) parts.also { parts = null }
479+ else SDUtils .generateMeta(vm.deviceInfo!! .asMetaOnSdDeviceInfo())!!
480+ val r = vm.logic!! .delete(p).exec()
481+ tresult + = r.out .joinToString(" \n " ) + r.err.joinToString(" \n " ) + " \n "
482+ }
483+ vm.mountBootset()
484+ } else {
485+ for (p in allp) {
486+ if (! vm.logic!! .unmap(f.nameWithoutExtension, p.toInt()))
487+ tresult + = vm.activity!! .getString(R .string.cannot_delete, vm.logic!! .getDmFile(f.nameWithoutExtension, p.toInt()))
488+ }
481489 }
482- vm.mountBootset()
483- } else if (! vm.deviceInfo!! .metaonsd) {
490+ }
491+ if (! vm.deviceInfo!! .metaonsd) {
484492 val f3 = SuFile (vm.logic!! .abmSdLessBootset, f.nameWithoutExtension)
485493 if (! f3.deleteRecursive())
486494 tresult + = vm.activity!! .getString(R .string.cannot_delete, f3.absolutePath)
0 commit comments