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

Commit a798701c authored by Colin Cross's avatar Colin Cross
Browse files

Update Contacts for guava 27.1

Futures.transform now requires an Executor argument.

Futures.withFallback has been replaced with Futures.catchingAsync.

Bug: 130306229
Test: m checkbuild
Change-Id: I5ea7810446ed23b133e6dfb0eb06e6e10125db53
parent 0ad1375c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ import com.android.contacts.util.concurrent.ListenableFutureLoader;
import com.google.common.base.Function;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;

import java.util.ArrayList;
import java.util.Arrays;
@@ -477,7 +478,7 @@ public class SimImportFragment extends Fragment
                    simLoadResult.accounts = accounts;
                    return simLoadResult;
                }
            });
            }, MoreExecutors.directExecutor());
        }

        private LoaderResult loadFromSim() {
+6 −3
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;

import java.util.ArrayList;
import java.util.Collections;
@@ -503,7 +504,8 @@ class AccountTypeManagerImpl extends AccountTypeManager
    private synchronized void reloadAccountTypes() {
        loadAccountTypes();
        Futures.addCallback(
                Futures.transform(mAccountTypesFuture, mAccountsExtractor),
                Futures.transform(mAccountTypesFuture, mAccountsExtractor,
                        MoreExecutors.directExecutor()),
                newAccountsUpdatedCallback(mAccountManagerAccounts),
                mMainThreadExecutor);
    }
@@ -534,7 +536,8 @@ class AccountTypeManagerImpl extends AccountTypeManager
        final ListenableFuture<List<List<AccountWithDataSet>>> all =
                Futures.nonCancellationPropagating(
                        Futures.successfulAsList(
                                Futures.transform(mAccountTypesFuture, mAccountsExtractor),
                                Futures.transform(mAccountTypesFuture, mAccountsExtractor,
                                        MoreExecutors.directExecutor()),
                                mLocalAccountsFuture));

        return Futures.transform(all, new Function<List<List<AccountWithDataSet>>,
@@ -560,7 +563,7 @@ class AccountTypeManagerImpl extends AccountTypeManager
                AccountInfo.sortAccounts(null, result);
                return result;
            }
        });
        }, MoreExecutors.directExecutor());
    }

    @Override
+5 −4
Original line number Diff line number Diff line
@@ -3,9 +3,10 @@ package com.android.contacts.util.concurrent;

import android.os.Handler;

import com.google.common.util.concurrent.FutureFallback;
import com.google.common.util.concurrent.AsyncFunction;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;

import java.util.concurrent.CancellationException;
import java.util.concurrent.ScheduledExecutorService;
@@ -46,14 +47,14 @@ public class FuturesUtil {
            }
        }, time, unit);

        return Futures.withFallback(future, new FutureFallback<V>() {
        return Futures.catchingAsync(future, Throwable.class, new AsyncFunction<Throwable, V>() {
            @Override
            public ListenableFuture<V> create(Throwable t) throws Exception {
            public ListenableFuture<V> apply(Throwable t) throws Exception {
                if ((t instanceof CancellationException) && didTimeout.get()) {
                    return Futures.immediateFailedFuture(new TimeoutException("Timeout expired"));
                }
                return Futures.immediateFailedFuture(t);
            }
        });
        }, MoreExecutors.directExecutor());
    }
}