diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/CaptureFlowFragment.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/CaptureFlowFragment.kt index 5c2579b8a..d4316d540 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/CaptureFlowFragment.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/CaptureFlowFragment.kt @@ -1,5 +1,6 @@ package net.gini.android.bank.sdk.capture +import android.content.pm.ActivityInfo import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -29,6 +30,7 @@ import net.gini.android.capture.GiniCaptureFragmentDirections import net.gini.android.capture.GiniCaptureFragmentListener import net.gini.android.capture.camera.CameraFragmentListener import net.gini.android.capture.internal.util.CancelListener +import net.gini.android.capture.internal.util.ContextHelper import net.gini.android.capture.network.model.GiniCaptureCompoundExtraction import net.gini.android.capture.network.model.GiniCaptureSpecificExtraction import net.gini.android.capture.tracking.useranalytics.UserAnalytics @@ -110,7 +112,7 @@ class CaptureFlowFragment(private val openWithDocument: Document? = null) : override fun onDestroy() { super.onDestroy() if (!didFinishWithResult && !willBeRestored) { - captureFlowFragmentListener.onFinishedWithResult(CaptureResult.Cancel) + finishWithResult(CaptureResult.Cancel) } } @@ -159,14 +161,13 @@ class CaptureFlowFragment(private val openWithDocument: Document? = null) : } else -> { - finishWithResult(result) + finishWithResult(interceptSuccessResult(result).toCaptureResult()) } } } else -> { - didFinishWithResult = true - captureFlowFragmentListener.onFinishedWithResult(result.toCaptureResult()) + finishWithResult(result.toCaptureResult()) } } } @@ -195,16 +196,17 @@ class CaptureFlowFragment(private val openWithDocument: Document? = null) : GiniCaptureFragmentDirections.toSkontoFragment(data = skontoData) ) } catch (e: Exception) { - finishWithResult(result) + finishWithResult(interceptSuccessResult(result).toCaptureResult()) } - } else { - finishWithResult(result) } } - private fun finishWithResult(result: CaptureSDKResult.Success) { + private fun finishWithResult(result: CaptureResult) { + if (!ContextHelper.isTablet(requireContext())) { + requireActivity().requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED + } didFinishWithResult = true - captureFlowFragmentListener.onFinishedWithResult(interceptSuccessResult(result).toCaptureResult()) + captureFlowFragmentListener.onFinishedWithResult(result) trackSdkClosedEvent(UserAnalyticsScreen.Analysis) } @@ -237,14 +239,11 @@ class CaptureFlowFragment(private val openWithDocument: Document? = null) : specificExtractions: Map, compoundExtractions: Map ) { - didFinishWithResult = true - captureFlowFragmentListener.onFinishedWithResult( - CaptureResult.Success( - specificExtractions, - compoundExtractions, - emptyList() - ) - ) + finishWithResult(CaptureResult.Success( + specificExtractions, + compoundExtractions, + emptyList() + )) } @@ -252,22 +251,18 @@ class CaptureFlowFragment(private val openWithDocument: Document? = null) : specificExtractions: Map, compoundExtractions: Map ) { - didFinishWithResult = true - captureFlowFragmentListener.onFinishedWithResult( - CaptureResult.Success( - specificExtractions, - compoundExtractions, - emptyList() - ) - ) + finishWithResult(CaptureResult.Success( + specificExtractions, + compoundExtractions, + emptyList() + )) } override fun onCancelFlow() { val popBackStack = navController.popBackStack() if (!popBackStack) { - didFinishWithResult = true - captureFlowFragmentListener.onFinishedWithResult(CaptureResult.Cancel) + finishWithResult(CaptureResult.Cancel) } } diff --git a/capture-sdk/sdk/src/main/java/net/gini/android/capture/tracking/useranalytics/BufferedUserAnalyticsEventTracker.kt b/capture-sdk/sdk/src/main/java/net/gini/android/capture/tracking/useranalytics/BufferedUserAnalyticsEventTracker.kt index 0799ada9b..2b1a70aa3 100644 --- a/capture-sdk/sdk/src/main/java/net/gini/android/capture/tracking/useranalytics/BufferedUserAnalyticsEventTracker.kt +++ b/capture-sdk/sdk/src/main/java/net/gini/android/capture/tracking/useranalytics/BufferedUserAnalyticsEventTracker.kt @@ -27,7 +27,7 @@ internal class BufferedUserAnalyticsEventTracker( private val userProperties: Queue> = LinkedList() private val events: Queue>> = LinkedList() - private lateinit var amplitude: AmplitudeUserAnalyticsEventTracker + private var amplitude: AmplitudeUserAnalyticsEventTracker? = null fun setPlatformTokens( vararg tokens: UserAnalytics.AnalyticsApiKey, @@ -46,8 +46,8 @@ internal class BufferedUserAnalyticsEventTracker( networkRequestsManager = networkRequestsManager, uniqueIdProvider = uniqueIdProvider ) - amplitude.startRepeatingJob() - eventTrackers.add(amplitude) + amplitude?.startRepeatingJob() + amplitude?.let { eventTrackers.add(it) } LOG.debug("Amplitude Initialized") } @@ -90,7 +90,7 @@ internal class BufferedUserAnalyticsEventTracker( } override fun flushEvents() { - amplitude.flushEvents() + amplitude?.flushEvents() } private fun trySendEvents() {