[Wi-Fi] Fix Wi-Fi QR code camera bug

Should not setPreviewSize from the value of getBestPictureSize.

Bug: 142630420
Test: QrCameraTest
      manual:
      visually make sure QR code scanner image not distorted.

Change-Id: I280beddac95ed65118af802c396d15da306e029b
This commit is contained in:
Arc Wang
2019-10-25 16:12:52 +08:00
parent 578990ec7e
commit cdfd1ff192
2 changed files with 40 additions and 11 deletions

View File

@@ -80,14 +80,16 @@ public class QrCamera extends Handler {
HINTS.put(DecodeHintType.POSSIBLE_FORMATS, FORMATS);
}
private Camera mCamera;
@VisibleForTesting
Camera mCamera;
private Size mPreviewSize;
private WeakReference<Context> mContext;
private ScannerCallback mScannerCallback;
private MultiFormatReader mReader;
private DecodingTask mDecodeTask;
private int mCameraOrientation;
private Camera.Parameters mParameters;
@VisibleForTesting
Camera.Parameters mParameters;
public QrCamera(Context context, ScannerCallback callback) {
mContext = new WeakReference<Context>(context);
@@ -171,12 +173,13 @@ public class QrCamera extends Handler {
boolean isValid(String qrCode);
}
private void setCameraParameter() {
@VisibleForTesting
void setCameraParameter() {
mParameters = mCamera.getParameters();
mPreviewSize = getBestPreviewSize(mParameters);
mParameters.setPreviewSize(mPreviewSize.getWidth(), mPreviewSize.getHeight());
Size pictureSize = getBestPictureSize(mParameters);
mParameters.setPreviewSize(pictureSize.getWidth(), pictureSize.getHeight());
mParameters.setPictureSize(pictureSize.getWidth(), pictureSize.getHeight());
if (mParameters.getSupportedFlashModes().contains(Parameters.FLASH_MODE_OFF)) {
mParameters.setFlashMode(Parameters.FLASH_MODE_OFF);