From 071743cef51498975b13164a3a26cf051cfbd917 Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Mon, 6 Jun 2022 18:00:55 +0300 Subject: [PATCH 1/9] fix: sound button position --- .../java/org/prebid/mobile/rendering/utils/helpers/Utils.java | 2 ++ build.gradle | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/utils/helpers/Utils.java b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/utils/helpers/Utils.java index 82f1f2745..4609bbddf 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/utils/helpers/Utils.java +++ b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/utils/helpers/Utils.java @@ -514,7 +514,9 @@ public static View createSoundView(Context context) { ViewGroup.LayoutParams.WRAP_CONTENT ); params.gravity = Gravity.END | Gravity.BOTTOM; + params.bottomMargin += 150; view.setLayoutParams(params); + InsetsUtils.addCutoutAndNavigationInsets(view); return view; } diff --git a/build.gradle b/build.gradle index 688d33282..6c4bc8326 100644 --- a/build.gradle +++ b/build.gradle @@ -31,6 +31,6 @@ allprojects { mavenCentral() maven { url 'https://maven.google.com' } maven { url 'https://jitpack.io' } - maven { url "https://oss.sonatype.org/content/repositories/orgprebid-1084" } + maven { url "https://oss.sonatype.org/content/repositories/orgprebid-1085" } } } From 96319d4a11c9c3b31ad8f9ddcc25cb3c2db41269 Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Mon, 6 Jun 2022 18:01:39 +0300 Subject: [PATCH 2/9] fix: cutout problem --- .../src/main/res/values-v21/styles.xml | 5 +---- .../src/main/res/values-v28/styles.xml | 18 ++++++++++++++++++ .../src/main/res/values-v30/styles.xml | 18 ++++++++++++++++++ 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 PrebidMobile/PrebidMobile-core/src/main/res/values-v28/styles.xml create mode 100644 PrebidMobile/PrebidMobile-core/src/main/res/values-v30/styles.xml diff --git a/PrebidMobile/PrebidMobile-core/src/main/res/values-v21/styles.xml b/PrebidMobile/PrebidMobile-core/src/main/res/values-v21/styles.xml index 128005241..299f9a7cd 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/res/values-v21/styles.xml +++ b/PrebidMobile/PrebidMobile-core/src/main/res/values-v21/styles.xml @@ -1,10 +1,7 @@ - + + + \ No newline at end of file diff --git a/PrebidMobile/PrebidMobile-core/src/main/res/values-v30/styles.xml b/PrebidMobile/PrebidMobile-core/src/main/res/values-v30/styles.xml new file mode 100644 index 000000000..eda904e92 --- /dev/null +++ b/PrebidMobile/PrebidMobile-core/src/main/res/values-v30/styles.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file From 85d245b07cbaef90ceb90a8fae5ba4c8fbc04bff Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Wed, 8 Jun 2022 12:44:38 +0300 Subject: [PATCH 3/9] fix: visibility checker problem due to transparent navigation bar #475 --- .../api/rendering/InterstitialView.java | 15 ++++++-- .../utils/exposure/ViewExposureChecker.java | 36 +++++++++++++++---- .../mobile/rendering/views/AdViewManager.java | 23 ++++++++++-- 3 files changed, 62 insertions(+), 12 deletions(-) diff --git a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/api/rendering/InterstitialView.java b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/api/rendering/InterstitialView.java index 9056f8437..4d433f0f0 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/api/rendering/InterstitialView.java +++ b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/api/rendering/InterstitialView.java @@ -225,15 +225,24 @@ protected void setAdViewManagerValues() throws AdException { } protected InternalFriendlyObstruction[] formInterstitialObstructionsArray() { - InternalFriendlyObstruction[] obstructionArray = new InternalFriendlyObstruction[3]; + InternalFriendlyObstruction[] obstructionArray = new InternalFriendlyObstruction[5]; View closeInterstitial = findViewById(R.id.iv_close_interstitial); + View skipInterstitial = findViewById(R.id.iv_skip); View countDownTimer = findViewById(R.id.rl_count_down); View actionButton = findViewById(R.id.tv_learn_more); obstructionArray[0] = new InternalFriendlyObstruction(closeInterstitial, InternalFriendlyObstruction.Purpose.CLOSE_AD, null); - obstructionArray[1] = new InternalFriendlyObstruction(countDownTimer, InternalFriendlyObstruction.Purpose.OTHER, "CountDownTimer"); - obstructionArray[2] = new InternalFriendlyObstruction(actionButton, InternalFriendlyObstruction.Purpose.OTHER, "Action button"); + obstructionArray[1] = new InternalFriendlyObstruction(skipInterstitial, InternalFriendlyObstruction.Purpose.CLOSE_AD, null); + obstructionArray[2] = new InternalFriendlyObstruction(countDownTimer, InternalFriendlyObstruction.Purpose.OTHER, "CountDownTimer"); + obstructionArray[3] = new InternalFriendlyObstruction(actionButton, InternalFriendlyObstruction.Purpose.OTHER, "Action button"); + + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { + View bottomNavigation = findViewById(android.R.id.navigationBarBackground); + obstructionArray[4] = new InternalFriendlyObstruction(bottomNavigation, InternalFriendlyObstruction.Purpose.OTHER, "Bottom navigation bar"); + } else { + obstructionArray[4] = null; + } return obstructionArray; } diff --git a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/utils/exposure/ViewExposureChecker.java b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/utils/exposure/ViewExposureChecker.java index a4ece17aa..159e24e7f 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/utils/exposure/ViewExposureChecker.java +++ b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/utils/exposure/ViewExposureChecker.java @@ -115,14 +115,21 @@ private List buildObstructionsRectList() { return pickedObstructionList; } - private boolean visitParent(ViewGroup parentView, View childView) { + /** + * Checks whether the parent view is visible + * and whether children are not covered by any obstruction. + */ + private boolean visitParent( + ViewGroup parentView, + View childView + ) { if (parentView.getVisibility() != View.VISIBLE || isViewTransparent(parentView)) { return false; } - boolean clip = isClippedToBounds(parentView); + boolean childrenAreClippedToParent = isClippedToBounds(parentView); - if (clip) { + if (childrenAreClippedToParent) { Rect bounds = new Rect(); parentView.getDrawingRect(bounds); Rect convertRect = convertRect(bounds, parentView, testedViewWeakReference.get()); @@ -152,8 +159,13 @@ private boolean visitParent(ViewGroup parentView, View childView) { // don't test child if it is viewGroup and transparent private boolean isFriendlyObstruction(View child) { - return (child instanceof ImageView && child.getId() == R.id.iv_close_interstitial) - || child.getId() == R.id.rl_count_down; + boolean result = (child instanceof ImageView && child.getId() == R.id.iv_close_interstitial) + || (child instanceof ImageView && child.getId() == R.id.iv_skip) + || child.getId() == R.id.rl_count_down; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + result = result || child.getId() == android.R.id.navigationBarBackground; + } + return result; } private void collectObstructionsFrom(View child) { @@ -291,7 +303,8 @@ private void fragmentize(Rect valueRect, Rect aroundRect, List destList) { new Rect(trimmedRect.right, valueRect.top, valueRect.right, - valueRect.top + valueRect.height()) + valueRect.top + valueRect.height() + ) }; for (Rect rect : subRectArray) { @@ -301,6 +314,11 @@ private void fragmentize(Rect valueRect, Rect aroundRect, List destList) { } } + /** + * Returns whether ViewGroup's children are clipped to their bounds. + *

+ * {@link ViewGroup#getClipChildren()} + */ private boolean isClippedToBounds(ViewGroup viewGroup) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { return viewGroup.getClipChildren(); @@ -308,7 +326,11 @@ private boolean isClippedToBounds(ViewGroup viewGroup) { return false; } - private Rect convertRect(Rect fromRect, View fromView, View toView) { + private Rect convertRect( + Rect fromRect, + View fromView, + View toView + ) { if (fromRect == null || fromView == null || toView == null) { LogUtil.debug(TAG, "convertRect: Failed. One of the provided param is null. Returning empty rect."); return new Rect(); diff --git a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java index 04174fa36..5c42d0fdd 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java +++ b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java @@ -16,7 +16,9 @@ package org.prebid.mobile.rendering.views; +import android.app.Activity; import android.content.Context; +import android.os.Build; import android.util.Log; import android.view.View; import android.view.ViewGroup; @@ -334,7 +336,9 @@ public void addObstructions(InternalFriendlyObstruction... friendlyObstructions) } for (InternalFriendlyObstruction friendlyObstruction : friendlyObstructions) { - currentCreative.addOmFriendlyObstruction(friendlyObstruction); + if (friendlyObstruction != null) { + currentCreative.addOmFriendlyObstruction(friendlyObstruction); + } } } @@ -444,7 +448,22 @@ private void addHtmlInterstitialObstructions(ViewGroup rootViewGroup) { return; } View closeButtonView = rootViewGroup.findViewById(R.id.iv_close_interstitial); - addObstructions(new InternalFriendlyObstruction(closeButtonView, InternalFriendlyObstruction.Purpose.CLOSE_AD, null)); + + InternalFriendlyObstruction[] obstructionArray = new InternalFriendlyObstruction[2]; + obstructionArray[0] = new InternalFriendlyObstruction(closeButtonView, InternalFriendlyObstruction.Purpose.CLOSE_AD, null); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + Context context = closeButtonView.getContext(); + Activity activity = (Activity) context; + ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); + View view = decorView.findViewById(android.R.id.navigationBarBackground); + InternalFriendlyObstruction obstruction = new InternalFriendlyObstruction(view, InternalFriendlyObstruction.Purpose.OTHER, "Bottom navigation"); + obstructionArray[1] = obstruction; + } else { + obstructionArray[1] = null; + } + + addObstructions(obstructionArray); } private void processTransaction(Transaction transaction) { From aacb0c6c715371104bc555b9441bb9a2626749f4 Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Wed, 8 Jun 2022 14:32:53 +0300 Subject: [PATCH 4/9] fix: open measurement sdk import problem --- ...ndroid-1.3.34.aar => omsdk-android-1.3.34.1.aar} | Bin build.gradle | 2 +- scripts/Maven/PrebidMobile-core-pom.xml | 2 +- scripts/Maven/PrebidMobile-open-measurement-pom.xml | 2 +- scripts/buildPrebidMobile.sh | 6 +++--- 5 files changed, 6 insertions(+), 6 deletions(-) rename PrebidMobile/omsdk-android/{omsdk-android-1.3.34.aar => omsdk-android-1.3.34.1.aar} (100%) diff --git a/PrebidMobile/omsdk-android/omsdk-android-1.3.34.aar b/PrebidMobile/omsdk-android/omsdk-android-1.3.34.1.aar similarity index 100% rename from PrebidMobile/omsdk-android/omsdk-android-1.3.34.aar rename to PrebidMobile/omsdk-android/omsdk-android-1.3.34.1.aar diff --git a/build.gradle b/build.gradle index 6c4bc8326..a46863686 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ ext { artifactGroupId = "org.prebid" artifactFolder = "${buildDir}/generated-artifacts" - omSdkVersion = "1.3.34" + omSdkVersion = "1.3.34.1" omSdkModuleName = "omsdk-android" } diff --git a/scripts/Maven/PrebidMobile-core-pom.xml b/scripts/Maven/PrebidMobile-core-pom.xml index f26e9cb68..f1932a7be 100644 --- a/scripts/Maven/PrebidMobile-core-pom.xml +++ b/scripts/Maven/PrebidMobile-core-pom.xml @@ -53,7 +53,7 @@ org.prebid prebid-mobile-sdk-open-measurement - 1.3.34 + 1.3.34.1 compile diff --git a/scripts/Maven/PrebidMobile-open-measurement-pom.xml b/scripts/Maven/PrebidMobile-open-measurement-pom.xml index 2ab5f6f46..1f1cdc4b8 100644 --- a/scripts/Maven/PrebidMobile-open-measurement-pom.xml +++ b/scripts/Maven/PrebidMobile-open-measurement-pom.xml @@ -5,7 +5,7 @@ 4.0.0 org.prebid prebid-mobile-sdk-open-measurement - 1.3.34 + 1.3.34.1 jar Prebid Mobile Android SDK diff --git a/scripts/buildPrebidMobile.sh b/scripts/buildPrebidMobile.sh index cf23eca13..33cc0ddf4 100755 --- a/scripts/buildPrebidMobile.sh +++ b/scripts/buildPrebidMobile.sh @@ -169,14 +169,14 @@ if [ "$1" != "-nojar" ]; then cd $TEMPDIR mkdir output cd output - cp -a "$BASEDIR/PrebidMobile/omsdk-android/omsdk-android-1.3.34.aar" "$TEMPDIR/output" - unzip -q -o omsdk-android-1.3.34.aar + cp -a "$BASEDIR/PrebidMobile/omsdk-android/omsdk-android-1.3.34.1.aar" "$TEMPDIR/output" + unzip -q -o omsdk-android-1.3.34.1.aar # Delete all files instead classes.jar find . ! -name 'classes.jar' -type f -exec rm -f {} + unzip -q -o classes.jar rm classes.jar - jar cf omsdk.jar com* + jar cf omsdk.jar com* a* b* c* d* e* f* g* h* mv omsdk.jar $OUTDIR cd $LIBDIR rm -r $TEMPDIR From f82b63cf246a78fbaa466d9fa7e0dc1b3c35a321 Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Wed, 8 Jun 2022 15:11:37 +0300 Subject: [PATCH 5/9] fix: video outstream watch again problem #475 --- .../org/prebid/mobile/rendering/views/AdViewManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java index 5c42d0fdd..f6fd32f6e 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java +++ b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java @@ -52,6 +52,8 @@ public class AdViewManager implements CreativeViewListener, TransactionManagerLi private static final String TAG = AdViewManager.class.getSimpleName(); + private boolean builtInVideoFirstStart = true; + private final InterstitialManager interstitialManager; private AdUnitConfiguration adConfiguration = new AdUnitConfiguration(); @@ -220,7 +222,12 @@ public AdUnitConfiguration getAdConfiguration() { } public boolean isAutoDisplayOnLoad() { - return adConfiguration.isAdType(AdFormat.BANNER) || adConfiguration.isBuiltInVideo(); + boolean result = adConfiguration.isAdType(AdFormat.BANNER); + if (builtInVideoFirstStart) { + builtInVideoFirstStart = false; + result = result || adConfiguration.isBuiltInVideo(); + } + return result; } public void destroy() { From c6407f3ea72bb9a92e0a61af794feb81c8339431 Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Wed, 8 Jun 2022 15:44:54 +0300 Subject: [PATCH 6/9] fix: add min size property to display interstitial example #475 --- .../plugplay/bidding/ppm/PpmInterstitialFragment.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/ppm/PpmInterstitialFragment.kt b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/ppm/PpmInterstitialFragment.kt index 30499a414..4b31a07ed 100644 --- a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/ppm/PpmInterstitialFragment.kt +++ b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/ppm/PpmInterstitialFragment.kt @@ -16,6 +16,7 @@ package org.prebid.mobile.renderingtestapp.plugplay.bidding.ppm +import org.prebid.mobile.AdSize import org.prebid.mobile.api.data.AdUnitFormat import org.prebid.mobile.api.rendering.InterstitialAdUnit import org.prebid.mobile.renderingtestapp.plugplay.bidding.base.BaseBidInterstitialFragment @@ -29,7 +30,9 @@ open class PpmInterstitialFragment : BaseBidInterstitialFragment() { requireContext(), configId, EnumSet.of(adUnitFormat) - ) + ).apply { + setMinSizePercentage(AdSize(30, 30)) + } } else { InterstitialAdUnit(requireContext(), configId) From fc88a2f1f4add2b1820a7d38350894ba3e4bd057 Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Wed, 8 Jun 2022 16:30:15 +0300 Subject: [PATCH 7/9] fix: mraid resize example #475 --- .../rendering/views/webview/AdWebView.java | 11 +++++-- .../rendering/views/webview/WebViewBase.java | 31 ++++--------------- build.gradle | 3 +- 3 files changed, 17 insertions(+), 28 deletions(-) diff --git a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/webview/AdWebView.java b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/webview/AdWebView.java index 59b3b1246..6d472cd95 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/webview/AdWebView.java +++ b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/webview/AdWebView.java @@ -18,6 +18,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.util.Log; import android.view.WindowManager; import android.webkit.WebSettings; import android.webkit.WebSettings.LayoutAlgorithm; @@ -86,7 +87,11 @@ protected void initializeWebSettings() { screenHeight = Utils.getScreenHeight(windowManager); } - calculateScaleForResize(screenWidth, screenHeight, width, height); + if (this instanceof WebViewInterstitial) { + calculateScaleForResize(screenWidth, screenHeight, width, height); + } else { + webSettings.setLoadWithOverviewMode(true); + } initBaseWebSettings(webSettings); if (Utils.atLeastKitKat()) { @@ -128,7 +133,9 @@ private void calculateScaleForResize( factor = newCreativeWidth / scaledScreenWidth; } - setInitialScale((int) (initialScale / factor * 100)); + int scaleInPercent = (int) (initialScale / factor * 100); + setInitialScale(scaleInPercent); + Log.d(TAG, "Using custom WebView scale: " + scaleInPercent); } } diff --git a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/webview/WebViewBase.java b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/webview/WebViewBase.java index 155cfa23a..1cf34c942 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/webview/WebViewBase.java +++ b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/webview/WebViewBase.java @@ -17,17 +17,14 @@ package org.prebid.mobile.rendering.views.webview; import android.content.Context; -import android.text.TextUtils; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; -import org.prebid.mobile.LogUtil; import org.prebid.mobile.PrebidMobile; import org.prebid.mobile.rendering.interstitial.AdBaseDialog; import org.prebid.mobile.rendering.models.internal.MraidVariableContainer; import org.prebid.mobile.rendering.sdk.JSLibraryManager; -import org.prebid.mobile.rendering.utils.helpers.Utils; import org.prebid.mobile.rendering.views.webview.mraid.BaseJSInterface; import java.util.regex.Matcher; @@ -330,28 +327,12 @@ private String buildViewportMetaTag() { // String scale = getInitialScaleValue(); - StringBuilder metaTag; - if (!TextUtils.isEmpty(scale)) { - - if (Utils.atLeastKitKat()) { - LogUtil.debug(TAG, "Metatag is set correctly"); - metaTag = new StringBuilder(""); - - meta = metaTag.toString(); - } - else { - metaTag = new StringBuilder(""); - - meta = String.format(metaTag.toString(), scale); - } - } - else { - LogUtil.debug(TAG, "Scale is null. Please check"); - metaTag = new StringBuilder(""); - - meta = metaTag.toString(); + String metaTag; + if (scale != null && !scale.isEmpty()) { + metaTag = ""; + } else { + metaTag = ""; } - - return meta; + return metaTag; } } diff --git a/build.gradle b/build.gradle index a46863686..c38d81e90 100644 --- a/build.gradle +++ b/build.gradle @@ -31,6 +31,7 @@ allprojects { mavenCentral() maven { url 'https://maven.google.com' } maven { url 'https://jitpack.io' } - maven { url "https://oss.sonatype.org/content/repositories/orgprebid-1085" } + maven { url "https://oss.sonatype.org/content/repositories/orgprebid-1089" } + maven { url "https://oss.sonatype.org/content/repositories/orgprebid-1090" } } } From 2914deb4c19426cf559b6a0159b5e56cd4458f92 Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Thu, 9 Jun 2022 15:05:44 +0300 Subject: [PATCH 8/9] fix: open measurement sdk visibility problem #475 --- .../mobile/api/rendering/InterstitialView.java | 5 +++-- .../mobile/rendering/views/AdViewManager.java | 13 ++++--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/api/rendering/InterstitialView.java b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/api/rendering/InterstitialView.java index 4d433f0f0..6e3a72199 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/api/rendering/InterstitialView.java +++ b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/api/rendering/InterstitialView.java @@ -238,8 +238,9 @@ protected InternalFriendlyObstruction[] formInterstitialObstructionsArray() { obstructionArray[3] = new InternalFriendlyObstruction(actionButton, InternalFriendlyObstruction.Purpose.OTHER, "Action button"); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { - View bottomNavigation = findViewById(android.R.id.navigationBarBackground); - obstructionArray[4] = new InternalFriendlyObstruction(bottomNavigation, InternalFriendlyObstruction.Purpose.OTHER, "Bottom navigation bar"); + View dialogRoot = closeInterstitial.getRootView(); + View navigationBar = dialogRoot.findViewById(android.R.id.navigationBarBackground); + obstructionArray[4] = new InternalFriendlyObstruction(navigationBar, InternalFriendlyObstruction.Purpose.OTHER, "Bottom navigation bar"); } else { obstructionArray[4] = null; } diff --git a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java index f6fd32f6e..e9bc73bd8 100644 --- a/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java +++ b/PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/rendering/views/AdViewManager.java @@ -16,7 +16,6 @@ package org.prebid.mobile.rendering.views; -import android.app.Activity; import android.content.Context; import android.os.Build; import android.util.Log; @@ -343,9 +342,7 @@ public void addObstructions(InternalFriendlyObstruction... friendlyObstructions) } for (InternalFriendlyObstruction friendlyObstruction : friendlyObstructions) { - if (friendlyObstruction != null) { - currentCreative.addOmFriendlyObstruction(friendlyObstruction); - } + currentCreative.addOmFriendlyObstruction(friendlyObstruction); } } @@ -460,11 +457,9 @@ private void addHtmlInterstitialObstructions(ViewGroup rootViewGroup) { obstructionArray[0] = new InternalFriendlyObstruction(closeButtonView, InternalFriendlyObstruction.Purpose.CLOSE_AD, null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - Context context = closeButtonView.getContext(); - Activity activity = (Activity) context; - ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView(); - View view = decorView.findViewById(android.R.id.navigationBarBackground); - InternalFriendlyObstruction obstruction = new InternalFriendlyObstruction(view, InternalFriendlyObstruction.Purpose.OTHER, "Bottom navigation"); + View dialogRoot = closeButtonView.getRootView(); + View navigationBarView = dialogRoot.findViewById(android.R.id.navigationBarBackground); + InternalFriendlyObstruction obstruction = new InternalFriendlyObstruction(navigationBarView, InternalFriendlyObstruction.Purpose.OTHER, "Bottom navigation bar"); obstructionArray[1] = obstruction; } else { obstructionArray[1] = null; From 1230692233bfe46125bc527f2bff6e2e8cc0bded Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Thu, 9 Jun 2022 15:06:03 +0300 Subject: [PATCH 9/9] fix: device ext field #475 --- .../plugplay/bidding/ppm/PpmInterstitialFragment.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/ppm/PpmInterstitialFragment.kt b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/ppm/PpmInterstitialFragment.kt index 4b31a07ed..936b26621 100644 --- a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/ppm/PpmInterstitialFragment.kt +++ b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/ppm/PpmInterstitialFragment.kt @@ -30,13 +30,12 @@ open class PpmInterstitialFragment : BaseBidInterstitialFragment() { requireContext(), configId, EnumSet.of(adUnitFormat) - ).apply { - setMinSizePercentage(AdSize(30, 30)) - } + ) } else { InterstitialAdUnit(requireContext(), configId) } interstitialAdUnit?.setInterstitialAdUnitListener(this) + interstitialAdUnit?.setMinSizePercentage(AdSize(30, 30)) } } \ No newline at end of file