Address review feedback

This commit is contained in:
Torsten Grote 2024-03-06 14:05:52 -03:00
parent ee581ee652
commit 8489753d58
No known key found for this signature in database
GPG key ID: 3E5F77D92CF891FF
4 changed files with 25 additions and 24 deletions

View file

@ -125,21 +125,20 @@ internal class MetadataManager(
val now = clock.time()
metadata.time = now
metadata.d2dBackup = settingsManager.d2dBackupsEnabled()
if (metadata.packageMetadataMap.containsKey(packageName)) {
metadata.packageMetadataMap[packageName]!!.time = now
metadata.packageMetadataMap[packageName]!!.state = APK_AND_DATA
metadata.packageMetadataMap[packageName]!!.backupType = type
// don't override a previous K/V size, if there were no K/V changes
if (size != null) metadata.packageMetadataMap[packageName]!!.size = size
} else {
metadata.packageMetadataMap[packageName] = PackageMetadata(
metadata.packageMetadataMap.getOrPut(packageName) {
PackageMetadata(
time = now,
state = APK_AND_DATA,
backupType = type,
size = size,
system = packageInfo.isSystemApp(),
)
}.apply {
time = now
state = APK_AND_DATA
backupType = type
// don't override a previous K/V size, if there were no K/V changes
if (size != null) this.size = size
}
}
}
@ -159,18 +158,15 @@ internal class MetadataManager(
backupType: BackupType? = null,
) {
check(packageState != APK_AND_DATA) { "Backup Error with non-error package state." }
val packageName = packageInfo.packageName
modifyMetadata(metadataOutputStream) {
if (metadata.packageMetadataMap.containsKey(packageName)) {
metadata.packageMetadataMap[packageName]!!.state = packageState
} else {
metadata.packageMetadataMap[packageName] = PackageMetadata(
metadata.packageMetadataMap.getOrPut(packageInfo.packageName) {
PackageMetadata(
time = 0L,
state = packageState,
backupType = backupType,
system = packageInfo.isSystemApp()
)
}
}.state = packageState
}
}
@ -186,16 +182,13 @@ internal class MetadataManager(
packageInfo: PackageInfo,
packageState: PackageState,
) = modifyCachedMetadata {
val packageName = packageInfo.packageName
if (metadata.packageMetadataMap.containsKey(packageName)) {
metadata.packageMetadataMap[packageName]!!.state = packageState
} else {
metadata.packageMetadataMap[packageName] = PackageMetadata(
metadata.packageMetadataMap.getOrPut(packageInfo.packageName) {
PackageMetadata(
time = 0L,
state = packageState,
system = packageInfo.isSystemApp(),
)
}
}.state = packageState
}
/**

View file

@ -5,6 +5,7 @@ import androidx.activity.result.contract.ActivityResultContracts.CreateDocument
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreferenceCompat
import com.google.android.mms.ContentType.TEXT_PLAIN
import com.stevesoltys.seedvault.R
import com.stevesoltys.seedvault.permitDiskReads
import com.stevesoltys.seedvault.transport.backup.PackageService
@ -17,7 +18,7 @@ class ExpertSettingsFragment : PreferenceFragmentCompat() {
private val packageService: PackageService by inject()
private val createFileLauncher =
registerForActivityResult(CreateDocument("text/plain")) { uri ->
registerForActivityResult(CreateDocument(TEXT_PLAIN)) { uri ->
viewModel.onLogcatUriReceived(uri)
}

View file

@ -46,8 +46,8 @@ class SettingsActivity : RequireProvisioningActivity(), OnPreferenceStartFragmen
val title = getString(R.string.storage_check_fragment_backup_title)
showFragment(StorageCheckFragment.newInstance(title), true, tag)
} else {
val f = supportFragmentManager.findFragmentByTag(tag)
if (f != null && f.isVisible) supportFragmentManager.popBackStack()
val fragment = supportFragmentManager.findFragmentByTag(tag)
if (fragment?.isVisible == true) supportFragmentManager.popBackStack()
}
}
}

View file

@ -263,6 +263,13 @@ class SettingsFragment : PreferenceFragmentCompat() {
}
}
/**
* Sets the summary for scheduling which is information about when the next backup is scheduled.
*
* It could be that it shows the backup as running,
* gives an estimate about when the next run will be or
* says that nothing is scheduled which can happen when backup destination is on flash drive.
*/
private fun setAppBackupSchedulingSummary(workInfo: WorkInfo?) {
if (storage?.isUsb == true) {
backupScheduling.summary = getString(R.string.settings_backup_status_next_backup_usb)