diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraDeviceTest.java b/tests/tests/hardware/src/android/hardware/camera2/cts/CameraDeviceTest.java
index 0f1e158..229f262 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraDeviceTest.java
+++ b/tests/tests/hardware/src/android/hardware/camera2/cts/CameraDeviceTest.java
@@ -393,32 +393,16 @@
     }
 
     private void createDefaultSurface() throws Exception {
-<<<<<<< HEAD
-        ImageReader mReader =
-                new ImageReader(DEFAULT_CAPTURE_WIDTH,
-||||||| parent of 33286bc... media: Update ImageReader APIs
-        mReader =
-                new ImageReader(DEFAULT_CAPTURE_WIDTH,
-=======
         mReader =
                 ImageReader.newInstance(DEFAULT_CAPTURE_WIDTH,
->>>>>>> 33286bc... media: Update ImageReader APIs
                         DEFAULT_CAPTURE_HEIGHT,
                         ImageFormat.YUV_420_888,
                         MAX_NUM_IMAGES);
         mSurface = mReader.getSurface();
         // Create dummy image listener since we don't care the image data in this test.
         ImageReader.OnImageAvailableListener listener = new ImageDropperListener();
-<<<<<<< HEAD
-        CameraTestThread mDummyThread = new CameraTestThread();
-        mReader.setImageAvailableListener(listener, mDummyThread.start());
-||||||| parent of 33286bc... media: Update ImageReader APIs
-        mDummyThread = new CameraTestThread();
-        mReader.setImageAvailableListener(listener, mDummyThread.start());
-=======
         mDummyThread = new CameraTestThread();
         mReader.setOnImageAvailableListener(listener, mDummyThread.start());
->>>>>>> 33286bc... media: Update ImageReader APIs
     }
 
     private void verifyCaptureResults(
