Update Camera2 for guava 27.1

Futures.transform has been replaced with Futures.transformAsync and
requires an Executor argument.

Futures.addCallback requires an Executor argument.

MoreExecutors.sameThreadExecutor() has been replaced with
MoreExecutors.directExecutor().

Objects.toStringHelper has been replaced with MoreObjects.toStringHelper.

Bug: 130306229
Test: m checkbuild
Change-Id: If35fada45eb7e615b241b8d1d6d8d252242cac82
Merged-In: If35fada45eb7e615b241b8d1d6d8d252242cac82
Exempt-From-Owner-Approval: cherry pick
(cherry picked from commit bc5b3d74b556f3dbc0ed7ae7cf21921c697191fe)
diff --git a/src/com/android/camera/async/Futures2.java b/src/com/android/camera/async/Futures2.java
index 6669132..052c722 100644
--- a/src/com/android/camera/async/Futures2.java
+++ b/src/com/android/camera/async/Futures2.java
@@ -20,6 +20,7 @@
 import com.google.common.util.concurrent.ForwardingListenableFuture;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 
 import java.util.List;
 
@@ -96,7 +97,7 @@
         // allAsList will propagate the failures instead of null values to the
         // parameters of the supplied function.
         ListenableFuture<List<Object>> result = Futures.<Object>allAsList(futures);
-        return Futures.transform(result, new AsyncFunction<List<Object>, TResult>() {
+        return Futures.transformAsync(result, new AsyncFunction<List<Object>, TResult>() {
             @Override
             public ListenableFuture<TResult> apply(@Nullable List<Object> list) throws Exception {
                 T1 value1 = (T1) list.get(0);
@@ -104,7 +105,7 @@
 
                 return fn.apply(value1, value2);
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     /**
@@ -141,7 +142,7 @@
         // allAsList will propagate the failures instead of null values to the
         // parameters of the supplied function.
         ListenableFuture<List<Object>> result = Futures.<Object>allAsList(futures);
-        return Futures.transform(result, new AsyncFunction<List<Object>, TResult>() {
+        return Futures.transformAsync(result, new AsyncFunction<List<Object>, TResult>() {
             @Override
             public ListenableFuture<TResult> apply(@Nullable List<Object> list) throws Exception {
                 T1 value1 = (T1) list.get(0);
@@ -150,7 +151,7 @@
 
                 return fn.apply(value1, value2, value3);
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     /**
diff --git a/src/com/android/camera/async/Observables.java b/src/com/android/camera/async/Observables.java
index e946fee..0fbfc6c 100644
--- a/src/com/android/camera/async/Observables.java
+++ b/src/com/android/camera/async/Observables.java
@@ -114,6 +114,6 @@
             public void run() {
                 callback.update(observable.get());
             }
-        }, MoreExecutors.sameThreadExecutor());
+        }, MoreExecutors.directExecutor());
     }
 }
diff --git a/src/com/android/camera/one/v2/OneCameraImpl.java b/src/com/android/camera/one/v2/OneCameraImpl.java
index d4c7cba..c3b8ecb 100644
--- a/src/com/android/camera/one/v2/OneCameraImpl.java
+++ b/src/com/android/camera/one/v2/OneCameraImpl.java
@@ -71,6 +71,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.MoreExecutors;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -512,7 +513,7 @@
             public void onFailure(Throwable throwable) {
                 captureParams.callback.onPictureSaved(null);
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     /**
diff --git a/src/com/android/camera/one/v2/OneCameraZslImpl.java b/src/com/android/camera/one/v2/OneCameraZslImpl.java
index 6bdad44..b431594 100644
--- a/src/com/android/camera/one/v2/OneCameraZslImpl.java
+++ b/src/com/android/camera/one/v2/OneCameraZslImpl.java
@@ -71,6 +71,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.MoreExecutors;
 
 import java.nio.ByteBuffer;
 import java.security.InvalidParameterException;
@@ -649,7 +650,7 @@
             public void onFailure(Throwable throwable) {
                 captureParams.callback.onPictureSaved(null);
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     /**
diff --git a/src/com/android/camera/one/v2/camera2proxy/AndroidImageProxy.java b/src/com/android/camera/one/v2/camera2proxy/AndroidImageProxy.java
index 3dc5d65..ef9baa5 100644
--- a/src/com/android/camera/one/v2/camera2proxy/AndroidImageProxy.java
+++ b/src/com/android/camera/one/v2/camera2proxy/AndroidImageProxy.java
@@ -19,6 +19,7 @@
 import android.graphics.Rect;
 import android.media.Image;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableList;
 
@@ -203,7 +204,7 @@
 
     @Override
     public String toString() {
-        return Objects.toStringHelper(this)
+        return MoreObjects.toStringHelper(this)
                 .add("format", getFormat())
                 .add("timestamp", getTimestamp())
                 .add("width", getWidth())
diff --git a/src/com/android/camera/one/v2/camera2proxy/AndroidImageReaderProxy.java b/src/com/android/camera/one/v2/camera2proxy/AndroidImageReaderProxy.java
index 8a59c83..e4c0638 100644
--- a/src/com/android/camera/one/v2/camera2proxy/AndroidImageReaderProxy.java
+++ b/src/com/android/camera/one/v2/camera2proxy/AndroidImageReaderProxy.java
@@ -21,7 +21,7 @@
 import android.os.Handler;
 import android.view.Surface;
 
-import com.google.common.base.Objects;
+import com.google.common.base.MoreObjects;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -160,9 +160,9 @@
 
     @Override
     public String toString() {
-        Objects.ToStringHelper tsh;
+        MoreObjects.ToStringHelper tsh;
         synchronized (mLock) {
-            tsh = Objects.toStringHelper(mDelegate);
+            tsh = MoreObjects.toStringHelper(mDelegate);
         }
         return tsh.add("width", getWidth())
                 .add("height", getHeight())
diff --git a/src/com/android/camera/one/v2/camera2proxy/ForwardingImageProxy.java b/src/com/android/camera/one/v2/camera2proxy/ForwardingImageProxy.java
index 545ff60..98d972e 100644
--- a/src/com/android/camera/one/v2/camera2proxy/ForwardingImageProxy.java
+++ b/src/com/android/camera/one/v2/camera2proxy/ForwardingImageProxy.java
@@ -19,6 +19,7 @@
 import android.graphics.Rect;
 import android.media.Image;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 
 import java.util.List;
@@ -102,7 +103,7 @@
 
     @Override
     public String toString() {
-        return Objects.toStringHelper(this)
+        return MoreObjects.toStringHelper(this)
                 .add("timestamp", getTimestamp())
                 .add("width", getWidth())
                 .add("height", getHeight())
diff --git a/src/com/android/camera/one/v2/common/BasicCameraFactory.java b/src/com/android/camera/one/v2/common/BasicCameraFactory.java
index 2cd4098..0e30db4 100644
--- a/src/com/android/camera/one/v2/common/BasicCameraFactory.java
+++ b/src/com/android/camera/one/v2/common/BasicCameraFactory.java
@@ -126,16 +126,16 @@
         // Also, de-register these callbacks when the camera is closed (to
         // not leak memory).
         SafeCloseable zoomCallback = zoom.addCallback(mPreviewUpdater, MoreExecutors
-                .sameThreadExecutor());
+                .directExecutor());
         lifetime.add(zoomCallback);
         SafeCloseable flashCallback = flash.addCallback(mPreviewUpdater, MoreExecutors
-                .sameThreadExecutor());
+                .directExecutor());
         lifetime.add(flashCallback);
         SafeCloseable exposureCallback = exposure.addCallback(mPreviewUpdater, MoreExecutors
-                .sameThreadExecutor());
+                .directExecutor());
         lifetime.add(exposureCallback);
         SafeCloseable hdrCallback = hdrSceneSetting.addCallback(mPreviewUpdater, MoreExecutors
-                .sameThreadExecutor());
+                .directExecutor());
         lifetime.add(hdrCallback);
 
         int sensorOrientation = cameraCharacteristics.getSensorOrientation();
diff --git a/src/com/android/camera/one/v2/common/PictureSizeCalculator.java b/src/com/android/camera/one/v2/common/PictureSizeCalculator.java
index eb25be0..8f2fb6a 100644
--- a/src/com/android/camera/one/v2/common/PictureSizeCalculator.java
+++ b/src/com/android/camera/one/v2/common/PictureSizeCalculator.java
@@ -22,6 +22,7 @@
 import com.android.camera.one.OneCameraCharacteristics;
 import com.android.camera.util.AspectRatio;
 import com.android.camera.util.Size;
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import com.google.common.base.Preconditions;
 
@@ -76,7 +77,7 @@
 
         @Override
         public String toString() {
-            return Objects.toStringHelper("PictureSizeCalculator.Configuration")
+            return MoreObjects.toStringHelper("PictureSizeCalculator.Configuration")
                     .add("native size", mSize)
                     .add("crop", mPostCrop)
                     .toString();
diff --git a/src/com/android/camera/one/v2/initialization/GenericOneCameraImpl.java b/src/com/android/camera/one/v2/initialization/GenericOneCameraImpl.java
index f966bfd..472378f 100644
--- a/src/com/android/camera/one/v2/initialization/GenericOneCameraImpl.java
+++ b/src/com/android/camera/one/v2/initialization/GenericOneCameraImpl.java
@@ -35,6 +35,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.MoreExecutors;
 
 import java.util.concurrent.Executor;
 
@@ -159,7 +160,7 @@
             public void onFailure(@Nonnull Throwable throwable) {
                 listener.onSetupFailed();
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     @Override
diff --git a/src/com/android/camera/one/v2/initialization/PreviewStarter.java b/src/com/android/camera/one/v2/initialization/PreviewStarter.java
index 99c34a3..17a0966 100644
--- a/src/com/android/camera/one/v2/initialization/PreviewStarter.java
+++ b/src/com/android/camera/one/v2/initialization/PreviewStarter.java
@@ -24,6 +24,7 @@
 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.ArrayList;
 import java.util.List;
@@ -82,7 +83,7 @@
         final ListenableFuture<CameraCaptureSessionProxy> sessionFuture =
                 mCaptureSessionCreator.createCaptureSession(surfaceList);
 
-        return Futures.transform(sessionFuture,
+        return Futures.transformAsync(sessionFuture,
                 new AsyncFunction<CameraCaptureSessionProxy, Void>() {
                     @Override
                     public ListenableFuture<Void> apply(
@@ -90,6 +91,6 @@
                         mSessionListener.onCameraCaptureSessionCreated(captureSession, surface);
                         return Futures.immediateFuture(null);
                     }
-                });
+                }, MoreExecutors.directExecutor());
     }
 }
diff --git a/src/com/android/camera/one/v2/photo/PictureTakerImpl.java b/src/com/android/camera/one/v2/photo/PictureTakerImpl.java
index 13498c7..59245da 100644
--- a/src/com/android/camera/one/v2/photo/PictureTakerImpl.java
+++ b/src/com/android/camera/one/v2/photo/PictureTakerImpl.java
@@ -28,7 +28,7 @@
 import com.android.camera.one.v2.core.ResourceAcquisitionFailedException;
 import com.android.camera.one.v2.imagesaver.ImageSaver;
 import com.android.camera.session.CaptureSession;
-import com.google.common.base.Objects;
+import com.google.common.base.MoreObjects;
 
 class PictureTakerImpl implements PictureTaker {
     private final MainThread mMainExecutor;
@@ -70,7 +70,7 @@
 
         @Override
         public String toString() {
-            return Objects.toStringHelper(this)
+            return MoreObjects.toStringHelper(this)
                     .add("command", mCommand)
                     .toString();
         }
diff --git a/src/com/android/camera/one/v2/sharedimagereader/metadatasynchronizer/MetadataPoolImpl.java b/src/com/android/camera/one/v2/sharedimagereader/metadatasynchronizer/MetadataPoolImpl.java
index 8500ebe..5be9032 100644
--- a/src/com/android/camera/one/v2/sharedimagereader/metadatasynchronizer/MetadataPoolImpl.java
+++ b/src/com/android/camera/one/v2/sharedimagereader/metadatasynchronizer/MetadataPoolImpl.java
@@ -25,6 +25,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.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
 
 import java.util.HashMap;
@@ -81,7 +82,7 @@
             public void onFailure(Throwable throwable) {
                 throw new UnsupportedOperationException();
             }
-        });
+        }, MoreExecutors.directExecutor());
         return Futures2.nonCancellationPropagating(future);
     }
 
diff --git a/src/com/android/camera/one/v2/sharedimagereader/ringbuffer/DynamicRingBufferFactory.java b/src/com/android/camera/one/v2/sharedimagereader/ringbuffer/DynamicRingBufferFactory.java
index 1530c48..11350f2 100644
--- a/src/com/android/camera/one/v2/sharedimagereader/ringbuffer/DynamicRingBufferFactory.java
+++ b/src/com/android/camera/one/v2/sharedimagereader/ringbuffer/DynamicRingBufferFactory.java
@@ -51,7 +51,7 @@
             public void run() {
                 ringBuffer.setMaxSize(Math.max(0, maxRingBufferSize.get()));
             }
-        }, MoreExecutors.sameThreadExecutor()));
+        }, MoreExecutors.directExecutor()));
         ringBuffer.setMaxSize(Math.max(0, maxRingBufferSize.get()));
 
         mOutputTicketPool = ringBuffer;
diff --git a/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java b/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java
index 2e5976c..c87eab8 100644
--- a/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java
+++ b/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java
@@ -39,6 +39,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.MoreExecutors;
 
 import java.nio.ByteBuffer;
 import java.util.HashMap;
@@ -355,7 +356,7 @@
             @Override
             public void onFailure(Throwable throwable) {
             }
-        });
+        }, MoreExecutors.directExecutor());
 
         final ListenableFuture<TotalCaptureResultProxy> requestMetadata = img.metadata;
         // If TotalCaptureResults are available add them to the capture event.