WorkManagerEventReceiver.java

 1package eu.siacs.conversations.receiver;
 2
 3import android.content.BroadcastReceiver;
 4import android.content.Context;
 5import android.content.Intent;
 6import android.util.Log;
 7
 8import androidx.work.WorkManager;
 9
10import com.google.common.base.Strings;
11
12import eu.siacs.conversations.Config;
13import eu.siacs.conversations.ui.fragment.settings.BackupSettingsFragment;
14
15public class WorkManagerEventReceiver extends BroadcastReceiver {
16
17    public static final String ACTION_STOP_BACKUP = "eu.siacs.conversations.receiver.STOP_BACKUP";
18
19    @Override
20    public void onReceive(final Context context, final Intent intent) {
21        final var action = Strings.nullToEmpty(intent == null ? null : intent.getAction());
22        if (action.equals(ACTION_STOP_BACKUP)) {
23            stopBackup(context);
24        }
25    }
26
27    private void stopBackup(final Context context) {
28        Log.d(Config.LOGTAG, "trying to stop one-off backup worker");
29        final var workManager = WorkManager.getInstance(context);
30        workManager.cancelUniqueWork(BackupSettingsFragment.CREATE_ONE_OFF_BACKUP);
31    }
32}