1package eu.siacs.conversations.utils;
2
3public class ReplacingSerialSingleThreadExecutor extends SerialSingleThreadExecutor {
4
5 public ReplacingSerialSingleThreadExecutor(String name) {
6 super(name, false);
7 }
8
9 public ReplacingSerialSingleThreadExecutor(boolean prepareLooper) {
10 super(ReplacingSerialSingleThreadExecutor.class.getName(), prepareLooper);
11 }
12
13 @Override
14 public synchronized void execute(final Runnable r) {
15 tasks.clear();
16 if (active != null && active instanceof Cancellable) {
17 ((Cancellable) active).cancel();
18 }
19 super.execute(r);
20 }
21
22 public synchronized void cancelRunningTasks() {
23 tasks.clear();
24 if (active != null && active instanceof Cancellable) {
25 ((Cancellable) active).cancel();
26 }
27 }
28}