Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d99cdec authored by Aayush Gupta's avatar Aayush Gupta Committed by Michael Bestas
Browse files

TaskExecutor: Switch from LifecycleObserver to LifecycleEventObserver

OnLifecycleEvent annotation is now deprecated
Ref: https://developer.android.com/reference/androidx/lifecycle/OnLifecycleEvent



Signed-off-by: default avatarAayush Gupta <aayushgupta219@gmail.com>
Change-Id: I095cbda329448aee7e4b5adfeebbaf5306b8180d
parent 16e5199f
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -24,9 +24,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.LifecycleEventObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.OnLifecycleEvent;

import java.util.ArrayList;
import java.util.List;
@@ -40,13 +39,20 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.function.Consumer;

public final class TaskExecutor implements LifecycleObserver {
public final class TaskExecutor implements LifecycleEventObserver {
    private static final String TAG = "TaskExecutor";

    private final ExecutorService executor = Executors.newFixedThreadPool(2);
    private final Handler handler = new Handler(Looper.getMainLooper());
    private final List<Future<?>> execFutures = new ArrayList<>(4);

    @Override
    public void onStateChanged(@NonNull LifecycleOwner source, @NonNull Lifecycle.Event event) {
        if (event == Lifecycle.Event.ON_DESTROY) {
            terminate(source);
        }
    }

    public synchronized <T> void runTask(@NonNull @WorkerThread Callable<T> callable,
                                         @NonNull @MainThread Consumer<T> consumer) {
        final Future<T> future = executor.submit(callable);
@@ -95,7 +101,6 @@ public final class TaskExecutor implements LifecycleObserver {
        }
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    public void terminate(@Nullable LifecycleOwner owner) {
        // Unsubscribe
        if (owner != null) {