From 484767bf16b0463f9b802f105f9d4a6f202412c3 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 18 Jun 2024 11:15:50 -0300 Subject: [PATCH] Disable framework scheduling when scheduling backup, because another transport may have re-enabled it --- .../com/stevesoltys/seedvault/settings/SettingsViewModel.kt | 3 +++ .../stevesoltys/seedvault/ui/storage/BackupStorageViewModel.kt | 3 +++ 2 files changed, 6 insertions(+) diff --git a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt index f3a71fa0..cf1fd610 100644 --- a/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt +++ b/app/src/main/java/com/stevesoltys/seedvault/settings/SettingsViewModel.kt @@ -18,6 +18,7 @@ import android.net.NetworkRequest import android.net.Uri import android.os.BadParcelableException import android.os.Process.myUid +import android.os.UserHandle import android.provider.Settings import android.util.Log import android.widget.Toast @@ -308,6 +309,8 @@ internal class SettingsViewModel( } fun scheduleAppBackup(existingWorkPolicy: ExistingPeriodicWorkPolicy) { + // disable framework scheduling, because another transport may have enabled it + backupManager.setFrameworkSchedulingEnabledForUser(UserHandle.myUserId(), false) if (!pluginManager.isOnRemovableDrive && backupManager.isBackupEnabled) { AppBackupWorker.schedule(app, settingsManager, existingWorkPolicy) } diff --git a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/BackupStorageViewModel.kt b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/BackupStorageViewModel.kt index 37d0ef7e..8e71d9cb 100644 --- a/app/src/main/java/com/stevesoltys/seedvault/ui/storage/BackupStorageViewModel.kt +++ b/app/src/main/java/com/stevesoltys/seedvault/ui/storage/BackupStorageViewModel.kt @@ -8,6 +8,7 @@ package com.stevesoltys.seedvault.ui.storage import android.app.Application import android.app.backup.IBackupManager import android.app.job.JobInfo +import android.os.UserHandle import android.util.Log import androidx.lifecycle.viewModelScope import androidx.work.ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE @@ -100,6 +101,8 @@ internal class BackupStorageViewModel( private fun scheduleBackupWorkers() { val storage = storagePluginManager.storageProperties ?: error("no storage available") + // disable framework scheduling, because another transport may have enabled it + backupManager.setFrameworkSchedulingEnabledForUser(UserHandle.myUserId(), false) if (!storage.isUsb) { if (backupManager.isBackupEnabled) { AppBackupWorker.schedule(app, settingsManager, CANCEL_AND_REENQUEUE)