diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 525732197f52e86e59d111ecd786257c7fb8aba0..e2b6ec20e2439df29cd7e6ff6865677dce00aab4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,7 +45,7 @@ = 600; + } } diff --git a/app/src/main/java/net/sourceforge/opencamera/MainActivity.java b/app/src/main/java/net/sourceforge/opencamera/MainActivity.java index a1abbff88a73c157f978c4947f258c445ce79228..044d3d32cdd2dcad589e6485c5d2703581a1af9b 100644 --- a/app/src/main/java/net/sourceforge/opencamera/MainActivity.java +++ b/app/src/main/java/net/sourceforge/opencamera/MainActivity.java @@ -2831,10 +2831,6 @@ public class MainActivity extends AppCompatActivity implements PreferenceFragmen int best_qrcode_camera = -1; if( MyDebug.LOG ) Log.d(TAG, "getBetterQRCodeCameraID"); - if( !isMultiCamEnabled() ) { - Log.e(TAG, "getBetterQRCodeCameraID switch multi camera icon shouldn't have been visible"); - return best_qrcode_camera; - } if( preview.isOpeningCamera() ) { if( MyDebug.LOG ) Log.d(TAG, "getBetterQRCodeCameraID already opening camera in background thread"); diff --git a/app/src/main/java/net/sourceforge/opencamera/preview/Preview.java b/app/src/main/java/net/sourceforge/opencamera/preview/Preview.java index 46a38360318b33ae954a0a93ff5e17f1b9adfb4a..bf987fc2ab7a45a27d2000b9fc59cd2c805b142f 100644 --- a/app/src/main/java/net/sourceforge/opencamera/preview/Preview.java +++ b/app/src/main/java/net/sourceforge/opencamera/preview/Preview.java @@ -8870,9 +8870,17 @@ public class Preview implements SurfaceHolder.Callback, TextureView.SurfaceTextu if (enabled) { this.functionalMode = FunctionalMode.QRCODE; rootLayout.addView(overlayQRCodeView); - int qrcodeCamId = ((MainActivity)getContext()).getBetterQRCodeCameraID(); - if (qrcodeCamId >= 0) { - applicationInterface.setCameraIdPref(qrcodeCamId); + MainActivity mainActivity = (MainActivity) this.getContext(); + int qrcodeCamId = 0; + if (mainActivity.isMultiCamEnabled()) { + int betterQrcodeCamId = mainActivity.getBetterQRCodeCameraID(); + if (qrcodeCamId >= 0) { + qrcodeCamId = betterQrcodeCamId; + } + } + applicationInterface.setCameraIdPref(qrcodeCamId); + if (MyDebug.LOG) { + Log.d(TAG, "Using qrcodeCamId: " + qrcodeCamId); } } else if (overlayQRCodeView.getParent() != null) { rootLayout.removeView(overlayQRCodeView); diff --git a/app/src/main/java/net/sourceforge/opencamera/qr/QrImageAnalyzer.kt b/app/src/main/java/net/sourceforge/opencamera/qr/QrImageAnalyzer.kt index 1d95a9d1d8d5c0b429084678b599c68ca2ccef14..cdb610ab1a948b40e909fc7088e5556424a99533 100644 --- a/app/src/main/java/net/sourceforge/opencamera/qr/QrImageAnalyzer.kt +++ b/app/src/main/java/net/sourceforge/opencamera/qr/QrImageAnalyzer.kt @@ -12,7 +12,6 @@ import android.content.ClipData import android.content.ClipDescription import android.content.ClipboardManager import android.content.Intent -import android.content.pm.ActivityInfo import android.graphics.Bitmap import android.graphics.Rect import android.os.Build @@ -32,6 +31,7 @@ import androidx.camera.core.ImageAnalysis import androidx.camera.core.ImageProxy import androidx.cardview.widget.CardView import androidx.core.graphics.drawable.DrawableCompat +import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.button.MaterialButton import com.google.zxing.BarcodeFormat @@ -52,6 +52,7 @@ class QrImageAnalyzer(private val activity: Activity, private val scope: Corouti private val bottomSheetDialog by lazy { BottomSheetDialog(activity).apply { setContentView(R.layout.qr_bottom_sheet_dialog) + behavior.state = BottomSheetBehavior.STATE_EXPANDED } } private val bottomSheetDialogCardView by lazy { @@ -273,11 +274,8 @@ class QrImageAnalyzer(private val activity: Activity, private val scope: Corouti } // Show dialog - activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT bottomSheetDialog.show() - bottomSheetDialog.setOnDismissListener { - activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED - } + isAboutToShow = false } } diff --git a/app/src/main/java/net/sourceforge/opencamera/ui/MainUI.java b/app/src/main/java/net/sourceforge/opencamera/ui/MainUI.java index 21cb642ee674b55bafc2bab0fa40bcc3e06c9efa..c4ce6b6800f8da0928dc20e40d19c05b9727cc12 100644 --- a/app/src/main/java/net/sourceforge/opencamera/ui/MainUI.java +++ b/app/src/main/java/net/sourceforge/opencamera/ui/MainUI.java @@ -1,5 +1,6 @@ package net.sourceforge.opencamera.ui; +import net.sourceforge.opencamera.DeviceSettings; import net.sourceforge.opencamera.MyApplicationInterface; import net.sourceforge.opencamera.ScaleUtils; import net.sourceforge.opencamera.cameracontroller.CameraController; @@ -221,7 +222,8 @@ public class MainUI { MainActivity.SystemOrientation system_orientation = main_activity.getSystemOrientation(); boolean system_orientation_portrait = system_orientation == MainActivity.SystemOrientation.PORTRAIT; - boolean system_orientation_reversed_landscape = system_orientation == MainActivity.SystemOrientation.REVERSE_LANDSCAPE; + boolean system_orientation_reversed_landscape = !DeviceSettings.isTablet(main_activity) && + system_orientation == MainActivity.SystemOrientation.REVERSE_LANDSCAPE; if( MyDebug.LOG ) { Log.d(TAG, " system_orientation = " + system_orientation); Log.d(TAG, " system_orientation_portrait? " + system_orientation_portrait);