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

Commit 20f2da31 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
Merged-In: I5ea7810446ed23b133e6dfb0eb06e6e10125db53
Exempt-From-Owner-Approval: cherry pick
(cherry picked from commit a798701c)
parent 7dac9a04
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line 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.base.Function;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;


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


        private LoaderResult loadFromSim() {
        private LoaderResult loadFromSim() {
+6 −3
Original line number Original line 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.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;


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


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


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


import android.os.Handler;
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.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.MoreExecutors;


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


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