@@ -1,32 +0,0 @@
-package eu.siacs.conversations.receiver;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.util.Log;
-
-import androidx.work.WorkManager;
-
-import com.google.common.base.Strings;
-
-import eu.siacs.conversations.Config;
-import eu.siacs.conversations.ui.fragment.settings.BackupSettingsFragment;
-
-public class WorkManagerEventReceiver extends BroadcastReceiver {
-
- public static final String ACTION_STOP_BACKUP = "eu.siacs.conversations.receiver.STOP_BACKUP";
-
- @Override
- public void onReceive(final Context context, final Intent intent) {
- final var action = Strings.nullToEmpty(intent == null ? null : intent.getAction());
- if (action.equals(ACTION_STOP_BACKUP)) {
- stopBackup(context);
- }
- }
-
- private void stopBackup(final Context context) {
- Log.d(Config.LOGTAG, "trying to stop one-off backup worker");
- final var workManager = WorkManager.getInstance(context);
- workManager.cancelUniqueWork(BackupSettingsFragment.CREATE_ONE_OFF_BACKUP);
- }
-}
@@ -17,6 +17,7 @@ import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
import androidx.work.ForegroundInfo;
+import androidx.work.WorkManager;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
@@ -33,7 +34,6 @@ import eu.siacs.conversations.entities.Conversation;
import eu.siacs.conversations.entities.Message;
import eu.siacs.conversations.persistance.DatabaseBackend;
import eu.siacs.conversations.persistance.FileBackend;
-import eu.siacs.conversations.receiver.WorkManagerEventReceiver;
import eu.siacs.conversations.utils.BackupFileHeader;
import eu.siacs.conversations.utils.Compatibility;
@@ -95,6 +95,7 @@ public class ExportBackupWorker extends Worker {
@NonNull
@Override
public Result doWork() {
+ setForegroundAsync(getForegroundInfo());
final List<File> files;
try {
files = export();
@@ -223,18 +224,14 @@ public class ExportBackupWorker extends Worker {
IV,
salt);
final var notification = getNotification();
- if (!recurringBackup) {
- final var cancel = new Intent(context, WorkManagerEventReceiver.class);
- cancel.setAction(WorkManagerEventReceiver.ACTION_STOP_BACKUP);
- final var cancelPendingIntent =
- PendingIntent.getBroadcast(context, 197, cancel, PENDING_INTENT_FLAGS);
- notification.addAction(
- new NotificationCompat.Action.Builder(
- R.drawable.ic_cancel_24dp,
- context.getString(R.string.cancel),
- cancelPendingIntent)
- .build());
- }
+ final var cancelPendingIntent =
+ WorkManager.getInstance(context).createCancelPendingIntent(getId());
+ notification.addAction(
+ new NotificationCompat.Action.Builder(
+ R.drawable.ic_cancel_24dp,
+ context.getString(R.string.cancel),
+ cancelPendingIntent)
+ .build());
final Progress progress = new Progress(notification, max, count);
final File directory = file.getParentFile();
if (directory != null && directory.mkdirs()) {