Skip to content

Commit c3ba173

Browse files
authored
Merge pull request #2051 from OneSignal/feat/iam_toggle
Add AndroidManifest option to override In-App Messages gray overlay and dropshadow
2 parents 9ad9885 + 93c2ec9 commit c3ba173

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/display/impl/InAppMessageView.kt

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ internal class InAppMessageView(
4949
private var webView: WebView?,
5050
private val messageContent: InAppMessageContent,
5151
private val disableDragDismiss: Boolean,
52+
private val hideGrayOverlay: Boolean,
5253
) {
5354
private var popupWindow: PopupWindow? = null
5455

@@ -384,7 +385,11 @@ internal class InAppMessageView(
384385
cardView.cardElevation =
385386
0f
386387
} else {
387-
cardView.cardElevation = ViewUtils.dpToPx(5).toFloat()
388+
if (getHideDropShadow(context)) {
389+
cardView.cardElevation = 0f
390+
} else {
391+
cardView.cardElevation = ViewUtils.dpToPx(5).toFloat()
392+
}
388393
}
389394
cardView.radius = ViewUtils.dpToPx(8).toFloat()
390395
cardView.clipChildren = false
@@ -394,6 +399,10 @@ internal class InAppMessageView(
394399
return cardView
395400
}
396401

402+
private fun getHideDropShadow(context: Context): Boolean {
403+
return AndroidUtils.getManifestMetaBoolean(context, "com.onesignal.inAppMessageHideDropShadow")
404+
}
405+
397406
/**
398407
* Schedule dismiss behavior, if IAM has a dismiss after X number of seconds timer.
399408
*/
@@ -609,7 +618,7 @@ internal class InAppMessageView(
609618
backgroundView,
610619
IN_APP_BACKGROUND_ANIMATION_DURATION_MS,
611620
ACTIVITY_BACKGROUND_COLOR_EMPTY,
612-
ACTIVITY_BACKGROUND_COLOR_FULL,
621+
getOverlayColor(),
613622
backgroundAnimCallback,
614623
)
615624
messageAnimation.start()
@@ -630,7 +639,7 @@ internal class InAppMessageView(
630639
animateBackgroundColor(
631640
backgroundView,
632641
IN_APP_BACKGROUND_ANIMATION_DURATION_MS,
633-
ACTIVITY_BACKGROUND_COLOR_FULL,
642+
getOverlayColor(),
634643
ACTIVITY_BACKGROUND_COLOR_EMPTY,
635644
animCallback,
636645
)
@@ -670,9 +679,17 @@ internal class InAppMessageView(
670679
'}'
671680
}
672681

682+
private fun getOverlayColor(): Int {
683+
return if (hideGrayOverlay) {
684+
ACTIVITY_BACKGROUND_COLOR_EMPTY
685+
} else {
686+
ACTIVITY_BACKGROUND_COLOR_FULL
687+
}
688+
}
689+
673690
companion object {
674691
private const val IN_APP_MESSAGE_CARD_VIEW_TAG = "IN_APP_MESSAGE_CARD_VIEW_TAG"
675-
private val ACTIVITY_BACKGROUND_COLOR_EMPTY = Color.parseColor("#00000000")
692+
private const val ACTIVITY_BACKGROUND_COLOR_EMPTY = Color.TRANSPARENT
676693
private val ACTIVITY_BACKGROUND_COLOR_FULL = Color.parseColor("#BB000000")
677694
private const val IN_APP_BANNER_ANIMATION_DURATION_MS = 1000
678695
private const val IN_APP_CENTER_ANIMATION_DURATION_MS = 1000

OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/display/impl/WebViewManager.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import android.os.Build
77
import android.view.View
88
import android.webkit.JavascriptInterface
99
import android.webkit.WebView
10+
import com.onesignal.common.AndroidUtils
1011
import com.onesignal.common.ViewUtils
1112
import com.onesignal.common.safeString
1213
import com.onesignal.common.threading.suspendifyOnMain
@@ -359,7 +360,8 @@ internal class WebViewManager(
359360

360361
fun createNewInAppMessageView(dragToDismissDisabled: Boolean) {
361362
lastPageHeight = messageContent.pageHeight
362-
val newView = InAppMessageView(webView!!, messageContent, dragToDismissDisabled)
363+
val hideGrayOverlay = AndroidUtils.getManifestMetaBoolean(_applicationService.appContext, "com.onesignal.inAppMessageHideGrayOverlay")
364+
val newView = InAppMessageView(webView!!, messageContent, dragToDismissDisabled, hideGrayOverlay)
363365
setMessageView(newView)
364366
val self = this
365367
messageView!!.setMessageController(

0 commit comments

Comments
 (0)