Skip to content

Commit

Permalink
Clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
machiav3lli committed Nov 2, 2024
1 parent 975a9ac commit d6a52d5
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ import com.machiav3lli.backup.actions.RestoreAppAction
import com.machiav3lli.backup.actions.RestoreSpecialAction
import com.machiav3lli.backup.actions.RestoreSystemAppAction
import com.machiav3lli.backup.dbs.entity.Backup
import com.machiav3lli.backup.handler.ShellHandler.ShellCommandFailedException
import com.machiav3lli.backup.entity.ActionResult
import com.machiav3lli.backup.entity.Package
import com.machiav3lli.backup.entity.RootFile
import com.machiav3lli.backup.entity.StorageFile.Companion.invalidateCache
import com.machiav3lli.backup.handler.ShellHandler.ShellCommandFailedException
import com.machiav3lli.backup.preferences.pref_numBackupRevisions
import com.machiav3lli.backup.preferences.pref_paranoidHousekeeping
import com.machiav3lli.backup.tasks.AppActionWork
Expand Down Expand Up @@ -66,7 +66,8 @@ object BackupRestoreHelper {
}
BackupSpecialAction(context, work, shell)
}
else -> {

else -> {
BackupAppAction(context, work, shell)
}
}
Expand All @@ -92,8 +93,8 @@ object BackupRestoreHelper {
): ActionResult {
val action: RestoreAppAction = when {
appInfo.isSpecial -> RestoreSpecialAction(context, work, shellHandler)
appInfo.isSystem -> RestoreSystemAppAction(context, work, shellHandler)
else -> RestoreAppAction(context, work, shellHandler)
appInfo.isSystem -> RestoreSystemAppAction(context, work, shellHandler)
else -> RestoreAppAction(context, work, shellHandler)
}
val result = action.run(appInfo, backup, mode)
Timber.i("<${appInfo.packageName}> Restore succeeded: ${result.succeeded}")
Expand All @@ -120,7 +121,11 @@ object BackupRestoreHelper {
throw FileNotFoundException("Could not find Neo Backup's own apk file")
}
//TODO wech suCopyFileToDocument(fileInfos[0], backupRoot)
copyRootFileToDocument(fileInfos[0].absolutePath, backupRoot, RootFile(fileInfos[0].absolutePath).name)
copyRootFileToDocument(
fileInfos[0].absolutePath,
backupRoot,
RootFile(fileInfos[0].absolutePath).name
)
// Invalidating cache, otherwise the next call will fail
// Can cost a lot time, but this function won't be run that often
invalidateCache() //TODO hg42 how to filter only the apk? or eliminate the need to invalidate
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/com/machiav3lli/backup/handler/WorkHandler.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import com.machiav3lli.backup.preferences.pref_maxRetriesPerPackage
import com.machiav3lli.backup.services.CommandReceiver
import com.machiav3lli.backup.tasks.AppActionWork
import com.machiav3lli.backup.utils.SystemUtils
import com.machiav3lli.backup.utils.TraceUtils.traceBold
import timber.log.Timber
import java.text.SimpleDateFormat
import java.util.Locale
Expand Down Expand Up @@ -353,8 +352,8 @@ class WorkHandler(appContext: Context) {
workRunning++
packageName?.let { packagesState.put(it, operation ?: "") }
when (operation) {
"" -> queued++
else -> {
"" -> queued++
else -> {
running++
val shortPackageName =
packageName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ import com.machiav3lli.backup.OABX.Companion.isDebug
import com.machiav3lli.backup.OABX.Companion.isHg42
import com.machiav3lli.backup.OABX.Companion.isRelease
import com.machiav3lli.backup.R
import com.machiav3lli.backup.entity.BooleanPref
import com.machiav3lli.backup.entity.IntPref
import com.machiav3lli.backup.entity.LaunchPref
import com.machiav3lli.backup.entity.Pref
import com.machiav3lli.backup.entity.PrefUI
import com.machiav3lli.backup.entity.StringPref
import com.machiav3lli.backup.handler.ShellHandler.Companion.findSuCommand
import com.machiav3lli.backup.handler.ShellHandler.Companion.isLikeRoot
import com.machiav3lli.backup.handler.ShellHandler.Companion.suCommand
Expand All @@ -54,14 +60,7 @@ import com.machiav3lli.backup.ui.compose.recycler.InnerBackground
import com.machiav3lli.backup.ui.compose.theme.ColorDeData
import com.machiav3lli.backup.ui.compose.theme.ColorSpecial
import com.machiav3lli.backup.ui.compose.theme.ColorUpdated
import com.machiav3lli.backup.entity.BooleanPref
import com.machiav3lli.backup.entity.IntPref
import com.machiav3lli.backup.entity.LaunchPref
import com.machiav3lli.backup.entity.Pref
import com.machiav3lli.backup.entity.PrefUI
import com.machiav3lli.backup.entity.StringPref
import com.machiav3lli.backup.utils.SystemUtils.numCores
import com.machiav3lli.backup.utils.sortFilterModel
import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.toPersistentList

Expand Down Expand Up @@ -111,11 +110,7 @@ fun AdvancedPrefsPage() {
) {
item {
PrefsGroup(prefs = prefs) { pref ->
if (pref == pref_enableSpecialBackups) { //TODO hg42 encapsulate in pref
val newModel = sortFilterModel
newModel.mainFilter = newModel.mainFilter and MAIN_FILTER_DEFAULT
sortFilterModel = newModel
}
// TODO do things
}
}
item {
Expand Down Expand Up @@ -227,7 +222,8 @@ class SuCommandPref(
onChanged = onChanged
)

val suCommand_summary get() = """
val suCommand_summary
get() = """
the command used to elevate the shell to a 'root' shell (in our sense),
the whole command must be a shell, reading commands from stdin and executing them,
there are also builtin fallback commands
Expand Down Expand Up @@ -261,8 +257,8 @@ val pref_suCommand = SuCommandPref(
Color.Red
}
pref.summary = suCommand_summary
traceDebug { "summary: ${pref.summary}" }
traceDebug { "pref: ${pref.dirty} ${pref.key} -> ${pref.icon?.name} ${pref.iconTint} (launch)" }
traceDebug { "summary: ${pref.summary}" }
traceDebug { "pref: ${pref.dirty} ${pref.key} -> ${pref.icon?.name} ${pref.iconTint} (launch)" }
pref.dirty.value = true
}

Expand Down Expand Up @@ -618,7 +614,12 @@ val pref_enableSpecialBackups = BooleanPref(
summaryId = R.string.prefs_enablespecial_summary,
icon = Phosphor.AsteriskSimple,
iconTint = ColorSpecial,
defaultValue = false
defaultValue = false,
onChanged = {
NeoPrefs.getInstance().let {
it.mainFilterHome.value = it.mainFilterHome.value and MAIN_FILTER_DEFAULT
}
}
)

val pref_disableVerification = BooleanPref(
Expand Down Expand Up @@ -665,16 +666,6 @@ val persist_ignoreBatteryOptimization = BooleanPref(
defaultValue = false
)

val persist_sortFilter = StringPref(
key = "persist.sortFilter",
defaultValue = ""
)

val persist_specialFilters = StringPref(
key = "persist.specialFilters",
defaultValue = ""
)

val persist_salt = StringPref(
key = "persist.salt",
defaultValue = ""
Expand Down
20 changes: 0 additions & 20 deletions src/main/java/com/machiav3lli/backup/utils/PrefUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,10 @@ import androidx.biometric.BiometricManager
import androidx.preference.PreferenceManager
import androidx.security.crypto.EncryptedSharedPreferences
import androidx.security.crypto.MasterKey
import com.machiav3lli.backup.OABX
import com.machiav3lli.backup.PREFS_LANGUAGES_SYSTEM
import com.machiav3lli.backup.PREFS_SHARED_PRIVATE
import com.machiav3lli.backup.R
import com.machiav3lli.backup.entity.SortFilterModel
import com.machiav3lli.backup.preferences.persist_salt
import com.machiav3lli.backup.preferences.persist_sortFilter
import com.machiav3lli.backup.preferences.persist_specialFilters
import com.machiav3lli.backup.preferences.pref_allowDowngrade
import com.machiav3lli.backup.preferences.pref_appAccentColor
import com.machiav3lli.backup.preferences.pref_appSecondaryColor
Expand Down Expand Up @@ -182,22 +178,6 @@ val isRestoreAllPermissions: Boolean
val isAllowDowngrade: Boolean
get() = pref_allowDowngrade.value

var sortFilterModel: SortFilterModel
get() {
val sortFilterPref = persist_sortFilter.value
val specialFiltersPref = persist_specialFilters.value
return SortFilterModel(
sortFilterPref.takeIf { it.isNotEmpty() },
specialFiltersPref.takeIf { it.isNotEmpty() },
)
}
set(value) {
val modelString = value.toString().split(",")
persist_sortFilter.value = modelString.first()
persist_specialFilters.value = modelString.last()
OABX.main?.viewModel?.modelSortFilter?.value = value //setSortFilter(value)
}

class StorageLocationNotConfiguredException : Exception("Storage Location has not been configured")

var styleTheme: Int
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/machiav3lli/backup/viewmodels/MainVM.kt
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ class MainVM(
// if f_in > f_proc, then there is no output at all
// this is much like processing on idle only

// TODO different models for different pages
val sortFilterModel: StateFlow<SortFilterModel> = combine(
prefs.sortHome.get(),
prefs.sortAscHome.get(),
Expand Down

0 comments on commit d6a52d5

Please sign in to comment.