Skip to content

Commit 37d97a3

Browse files
sozinovenotniy
authored andcommitted
WMSDK-498: review
1 parent c76f2a6 commit 37d97a3

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

sdk/src/main/java/cloud/mindbox/mobile_sdk/inapp/presentation/view/InAppPositionController.kt

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package cloud.mindbox.mobile_sdk.inapp.presentation.view
22

33
import android.app.Activity
4-
import android.content.Context
54
import android.content.ContextWrapper
65
import android.view.View
76
import android.view.ViewGroup
@@ -44,7 +43,7 @@ internal class InAppPositionController {
4443
this.backgroundOriginalIndex = backgroundView?.let { parent.indexOfChild(it) } ?: -1
4544
}
4645

47-
entryView.context.findActivity().safeAs<FragmentActivity>()
46+
entryView.findActivity().safeAs<FragmentActivity>()
4847
?.supportFragmentManager
4948
?.registerFragmentLifecycleCallbacks(
5049
fragmentLifecycleCallbacks,
@@ -54,7 +53,7 @@ internal class InAppPositionController {
5453
}
5554

5655
fun stop(): Unit = loggingRunCatching {
57-
originalParent?.context?.findActivity().safeAs<FragmentActivity>()
56+
originalParent?.findActivity().safeAs<FragmentActivity>()
5857
?.supportFragmentManager
5958
?.unregisterFragmentLifecycleCallbacks(
6059
fragmentLifecycleCallbacks
@@ -65,14 +64,14 @@ internal class InAppPositionController {
6564
}
6665

6766
private fun repositionInApp(): Unit = loggingRunCatching {
68-
val activity = inAppView?.context?.findActivity().safeAs<FragmentActivity>() ?: return@loggingRunCatching
67+
val activity = inAppView?.findActivity().safeAs<FragmentActivity>() ?: return@loggingRunCatching
6968
val topDialog = findTopDialogFragment(activity.supportFragmentManager)
7069
val targetParent = topDialog?.dialog?.window?.decorView.safeAs<ViewGroup>()
7170
if (targetParent != null) {
7271
if (inAppView?.parent != targetParent) {
7372
moveViewToTarget(backgroundView, targetParent)
7473
moveViewToTarget(inAppView, targetParent)
75-
val currentFocus = (originalParent?.context?.findActivity())?.currentFocus
74+
val currentFocus = originalParent?.findActivity()?.currentFocus
7675
if (currentFocus != null && currentFocus != inAppView) {
7776
currentFocus.clearFocus()
7877
}
@@ -85,11 +84,10 @@ internal class InAppPositionController {
8584

8685
private fun repositionInappToOriginal() {
8786
val original = originalParent ?: return
88-
if (inAppView?.parent != original) {
89-
backgroundView?.let { moveViewToTarget(it, original, backgroundOriginalIndex) }
90-
moveViewToTarget(inAppView, original, inAppOriginalIndex)
91-
inAppView?.requestFocus()
92-
}
87+
if (inAppView?.parent == original) return
88+
backgroundView?.let { moveViewToTarget(it, original, backgroundOriginalIndex) }
89+
moveViewToTarget(inAppView, original, inAppOriginalIndex)
90+
inAppView?.requestFocus()
9391
}
9492

9593
private fun moveViewToTarget(view: View?, target: ViewGroup, index: Int = -1) {
@@ -106,8 +104,8 @@ internal class InAppPositionController {
106104
return fragmentManager.fragments.filterIsInstance<DialogFragment>().lastOrNull { it.isAdded }
107105
}
108106

109-
private fun Context.findActivity(): Activity? {
110-
var context = this
107+
private fun View.findActivity(): Activity? {
108+
var context = this.context
111109
while (context is ContextWrapper) {
112110
if (context is Activity) return context
113111
context = context.baseContext

0 commit comments

Comments
 (0)