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

Commit 5c63d08a authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 5476456 from 8e227131 to rvc-release

Change-Id: I49813b2d178b749308ae6a27131e7f9312a8f30f
parents 65a98b6e 8e227131
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());
    }
}