Skip to content

Commit

Permalink
Release 4.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
runner authored and runner committed Jun 27, 2023
1 parent 0e2d599 commit 4f6c0f6
Show file tree
Hide file tree
Showing 18 changed files with 229 additions and 79 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ android {
applicationId "com.unity3d.ads.example"
minSdkVersion 19
targetSdkVersion 33
versionCode = 4710
versionName = "4.7.1"
versionCode = 4800
versionName = "4.8.0"
}

buildTypes {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ public void onBannerLoaded(BannerView bannerAdView) {
enableButton(hideBannerButton);
}

@Override
public void onBannerShown(BannerView bannerAdView) {
Log.v(LOGTAG, "onBannerShown : " + bannerAdView.getPlacementId());
}

@Override
public void onBannerFailedToLoad(BannerView bannerAdView, BannerErrorInfo errorInfo) {
Log.e(LOGTAG, "Unity Ads failed to load banner for " + bannerAdView.getPlacementId() + " with error: [" + errorInfo.errorCode + "] " + errorInfo.errorMessage);
Expand Down
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ buildscript {
okhttp_version = '3.12.13' // 3.13+ requires Java8 / Android5+(21)
androidx_webkit = '1.6.1'
androidx_core = '1.9.0'
play_services_cronet = '18.0.1'
}

repositories {
Expand All @@ -25,7 +26,7 @@ buildscript {

dependencies {
classpath 'com.android.tools.build:gradle:7.4.2'
classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.20.0'
classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.23.4'
classpath 'io.github.gradle-nexus:publish-plugin:1.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version"
Expand Down
5 changes: 3 additions & 2 deletions unity-ads/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ if (project.rootProject.file('local.properties').exists()) {
ext {
GROUP_ID = "com.unity3d.ads"
ARTIFACT_ID = "unity-ads"
VERSION_ID = "4.7.1"
VERSION_CODE = 4710
VERSION_ID = "4.8.0"
VERSION_CODE = 4800
SIGN_AAR = properties.getProperty("SIGN_AAR") ?: false
}

Expand Down Expand Up @@ -79,6 +79,7 @@ dependencies {
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
implementation "androidx.webkit:webkit:$androidx_webkit"
implementation "androidx.core:core-ktx:$androidx_core"
implementation "com.google.android.gms:play-services-cronet:$play_services_cronet"
androidTestCompileOnly project(':unity-scaradapter-2100')
androidTestCompileOnly project(':unity-scaradapter-2000')
androidTestCompileOnly project(':unity-scaradapter-1950')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,23 @@ public void onBannerLoaded(BannerView bannerAdView) {
_loadedSemaphore.acquire();
}

@Test
public void testTriggerBannerShowEvent() throws InterruptedException {
BannerViewCache bannerViewCache = new BannerViewCache();
final BannerView bannerView = new BannerView(_activityRule.getActivity(), "test", new UnityBannerSize(320, 50));
String bannerAdId = bannerViewCache.addBannerView(bannerView);
final Semaphore _shownSemaphore = new Semaphore(0);
bannerView.setListener(new BannerView.Listener() {
@Override
public void onBannerShown(BannerView bannerAdView) {
assertEquals(bannerView, bannerAdView);
_shownSemaphore.release();
}
});
bannerViewCache.triggerBannerShowEvent(bannerAdId);
_shownSemaphore.acquire();
}

@Test
public void testTriggerBannerClickEvent() throws InterruptedException {
BannerViewCache bannerViewCache = new BannerViewCache();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,60 +55,65 @@ public void onSdkInitializationFailed(String message, ErrorState errorState, int
initializeSemaphore.acquire();
}

// THESE TESTS ARE CURRENTLY FAILING DUE TO NOT RECEIVING TEST FILL FOR BANNER ADS
// @Test(timeout = 100000)
// public void LegacyBannerTest() throws InterruptedException {
// final Semaphore _loadedSemaphore = new Semaphore(0);
// final Semaphore _shownSemaphore = new Semaphore(0);
// final UnityBannerListener listener = new UnityBannerListener() {
// @Override
// public void onUnityBannerLoaded(String placementId, View view)
// {
// oldBannerView = view;
// _loadedSemaphore.release();
// Utilities.runOnUiThread(new Runnable() {
// @Override
// public void run() {
// if (oldBannerView.getParent() == null) {
// _activityRule.getActivity().addContentView(oldBannerView, oldBannerView.getLayoutParams());
// _shownSemaphore.release();
// }
// }
// });
// }
//
// @Override
// public void onUnityBannerClick(String placementId) {
//
// }
//
// @Override
// public void onUnityBannerError(String message) {
// _loadedSemaphore.release();
// _shownSemaphore.release();
// fail("Banner error encountered " + message);
// }
// };
// UnityBanners.setBannerListener(listener);
// UnityBanners.setBannerPosition(BannerPosition.BOTTOM_CENTER);
// Utilities.runOnUiThread(new Runnable() {
// @Override
// public void run() {
// UnityBanners.loadBanner(_activityRule.getActivity(), "bannerads");
// }
// });
// _loadedSemaphore.acquire();
// assertNotNull(oldBannerView);
//
// _shownSemaphore.acquire();
// Utilities.runOnUiThread(new Runnable() {
// @Override
// public void run() {
// UnityBanners.destroy();
// }
// });
// oldBannerView = null;
// }
@Test(timeout = 100000)
public void LegacyBannerTest() throws InterruptedException {
final Semaphore _loadedSemaphore = new Semaphore(0);
final Semaphore _shownSemaphore = new Semaphore(0);
final UnityBannerListener listener = new UnityBannerListener() {
@Override
public void onUnityBannerLoaded(String placementId, View view)
{
oldBannerView = view;
_loadedSemaphore.release();
Utilities.runOnUiThread(new Runnable() {
@Override
public void run() {
if (oldBannerView.getParent() == null) {
_activityRule.getActivity().addContentView(oldBannerView, oldBannerView.getLayoutParams());
}
}
});
}

@Override
public void onUnityBannerShow(String placementId) {
_shownSemaphore.release();
}

@Override
public void onUnityBannerClick(String placementId) {

}

@Override
public void onUnityBannerError(String message) {
_loadedSemaphore.release();
_shownSemaphore.release();
fail("Banner error encountered " + message);
}
};
UnityBanners.setBannerListener(listener);
UnityBanners.setBannerPosition(BannerPosition.BOTTOM_CENTER);
Utilities.runOnUiThread(new Runnable() {
@Override
public void run() {
UnityBanners.loadBanner(_activityRule.getActivity(), "bannerads");
// TODO temporary solution until onUnityBannerShow is triggered from webview
listener.onUnityBannerShow("bannerads");
}
});
_loadedSemaphore.acquire();
assertNotNull(oldBannerView);

_shownSemaphore.acquire();
Utilities.runOnUiThread(new Runnable() {
@Override
public void run() {
UnityBanners.destroy();
}
});
oldBannerView = null;
}

// @Test(timeout = 100000)
// public void BannerTest() throws InterruptedException {
Expand All @@ -118,12 +123,20 @@ public void onSdkInitializationFailed(String message, ErrorState errorState, int
// bannerView = new BannerView(_activityRule.getActivity(), "bannerads", unityBannerSize);
// final Semaphore _loadedSemaphore = new Semaphore(0);
// final Semaphore _clickSemaphore = new Semaphore(0);
// bannerView.setListener(new BannerView.IListener() {
// final Semaphore _shownSemaphore = new Semaphore(0);
//
// final BannerView.IListener listener = new BannerView.IListener() {
// public void onBannerLoaded(BannerView bannerAdView) {
// callbackbannerView = bannerAdView;
// _loadedSemaphore.release();
// }
//
// @Override
// public void onBannerShown(BannerView bannerAdView) {
// callbackbannerView = bannerAdView;
// _shownSemaphore.release();
// }
//
// public void onBannerClick(BannerView bannerAdView) {
// callbackbannerView = bannerAdView;
// _clickSemaphore.release();
Expand All @@ -132,13 +145,15 @@ public void onSdkInitializationFailed(String message, ErrorState errorState, int
// public void onBannerFailedToLoad(BannerView bannerAdView, BannerErrorInfo bannerErrorInfo) {
// _loadedSemaphore.release();
// _clickSemaphore.release();
// _shownSemaphore.release();
// fail("Banner error encountered " + bannerErrorInfo.errorMessage);
// }
//
// public void onBannerLeftApplication(BannerView bannerView) {
//
// }
// });
// };
// bannerView.setListener(listener);
// bannerView.load();
// _loadedSemaphore.acquire();
// assertEquals(bannerView, callbackbannerView);
Expand All @@ -148,6 +163,8 @@ public void onSdkInitializationFailed(String message, ErrorState errorState, int
// public void run() {
// if (bannerView.getParent() == null) {
// _activityRule.getActivity().addContentView(bannerView, bannerView.getLayoutParams());
// // TODO temporary solution until onUnityBannerShow is triggered from webview
// listener.onBannerShown(bannerView);
// }
// }
// });
Expand All @@ -166,6 +183,12 @@ public void onBannerLoaded(BannerView bannerAdView) {
fail("onBannerLoaded should not be called");
}

@Override
public void onBannerShown(BannerView bannerAdView) {
_errorSemaphore.release();
fail("onBannerShown should not be called");
}

public void onBannerClick(BannerView bannerAdView) {
_errorSemaphore.release();
fail("onBannerClick should not be called");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ public void run() {
}

@Test
@Ignore
public void testInitializeStateConfig() {
Configuration initConfig = new Configuration(SdkProperties.getConfigUrl());
InitializeThread.InitializeStateConfig state = new InitializeThread.InitializeStateConfig(initConfig);
Expand All @@ -193,6 +194,7 @@ public void testInitializeStateConfig() {
}

@Test
@Ignore
public void testInitializeStateConfigWithNwc() throws JSONException {
ExperimentsReader mockExperimentReader = Mockito.mock(ExperimentsReader.class);
Mockito.when(mockExperimentReader.getCurrentlyActiveExperiments()).thenReturn(new Experiments(new JSONObject("{\"nwc\": true}")));
Expand All @@ -209,6 +211,7 @@ public void testInitializeStateConfigWithNwc() throws JSONException {
}

@Test
@Ignore
public void testInitializeStateConfigWithWac() throws JSONException {
Configuration initConfig = new Configuration(SdkProperties.getConfigUrl(), new Experiments(new JSONObject("{\"wac\": true}")));
InitializeThread.InitializeStateConfig state = new InitializeThread.InitializeStateConfig(initConfig);
Expand Down
5 changes: 5 additions & 0 deletions unity-ads/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@
<meta-data
android:name="com.unity3d.services.core.configuration.AdsSdkInitializer"
android:value="androidx.startup" />

<meta-data
android:name="com.unity3d.services.core.network.core.CronetInitializer"
android:value="androidx.startup"
tools:node="remove"/>
</provider>
</application>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ public void run() {
public interface IListener {
void onBannerLoaded(BannerView bannerAdView);

void onBannerShown(BannerView bannerAdView);

void onBannerClick(BannerView bannerAdView);

void onBannerFailedToLoad(BannerView bannerAdView, BannerErrorInfo errorInfo);
Expand All @@ -118,6 +120,10 @@ public static abstract class Listener implements IListener {
public void onBannerLoaded(BannerView bannerAdView) {
}

@Override
public void onBannerShown(BannerView bannerAdView) {
}

@Override
public void onBannerFailedToLoad(BannerView bannerAdView, BannerErrorInfo errorInfo) {
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,21 @@ public void run() {
}
}

public synchronized void triggerBannerShowEvent(String bannerAdId) {
final BannerView bannerView = this.getBannerView(bannerAdId);
if (bannerView != null && bannerView.getListener() != null) {
final BannerView.IListener listener = bannerView.getListener();
Utilities.runOnUiThread(new Runnable() {
@Override
public void run() {
if (listener != null) {
listener.onBannerShown(bannerView);
}
}
});
}
}

public synchronized void triggerBannerClickEvent(String bannerAdId) {
final BannerView bannerView = this.getBannerView(bannerAdId);
if (bannerView != null && bannerView.getListener() != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,13 @@ public void onBannerLoaded(BannerView bannerView) {
}
}

@Override
public void onBannerShown(BannerView bannerView) {
if (self._bannerListener != null) {
self._bannerListener.onUnityBannerShow(bannerView.getPlacementId());
}
}

@Override
public void onBannerFailedToLoad(BannerView bannerView, BannerErrorInfo errorInfo) {
if (self._bannerListener != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ public static void sendLoadEvent(final String bannerAdId, WebViewCallback callba
callback.invoke();
}

@WebViewExposed
public static void sendShowEvent(final String bannerAdId, WebViewCallback callback) {
BannerViewCache.getInstance().triggerBannerShowEvent(bannerAdId);
callback.invoke();
}

@WebViewExposed
public static void sendClickEvent(final String bannerAdId, WebViewCallback callback) {
BannerViewCache.getInstance().triggerBannerClickEvent(bannerAdId);
Expand Down

0 comments on commit 4f6c0f6

Please sign in to comment.