Skip to content

Commit

Permalink
Releases/v3.3.0 (#265)
Browse files Browse the repository at this point in the history
## New

* Add ad-related metadata to ad events (#264)

## Improvements

* Update to Gradle 7.3 + Wrapper 7.4.0 + Simplify Demo Variant Names (#263)
  • Loading branch information
daytime-em authored Jan 31, 2023
1 parent 15add6a commit 6ca385a
Show file tree
Hide file tree
Showing 369 changed files with 267 additions and 255 deletions.
13 changes: 11 additions & 2 deletions ExoPlayerAdapter/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ android {
java.srcDirs += 'src/exo-analytics-upto-2_16/java'
java.srcDirs += 'src/exo-error-upto-2_13/java'
java.srcDirs += 'src/exo-event-upto-2_13/java'
java.srcDirs += 'src/exo-mediaitem-upto-2_13/java'
java.srcDirs += 'src/exo-player-upto-2_15/java'
}
just2_11 {
Expand All @@ -76,6 +77,7 @@ android {
java.srcDirs += 'src/exo-analytics-upto-2_16/java'
java.srcDirs += 'src/exo-error-upto-2_13/java'
java.srcDirs += 'src/exo-event-upto-2_13/java'
java.srcDirs += 'src/exo-mediaitem-upto-2_13/java'
java.srcDirs += 'src/exo-player-upto-2_15/java'
}
from2_12to2_13 {
Expand All @@ -84,6 +86,7 @@ android {
java.srcDirs += 'src/exo-analytics-upto-2_16/java'
java.srcDirs += 'src/exo-error-upto-2_13/java'
java.srcDirs += 'src/exo-event-upto-2_13/java'
java.srcDirs += 'src/exo-mediaitem-upto-2_13/java'
java.srcDirs += 'src/exo-player-upto-2_15/java'
}
just2_14 {
Expand All @@ -92,6 +95,7 @@ android {
java.srcDirs += 'src/exo-analytics-upto-2_16/java'
java.srcDirs += 'src/exo-error-just-2_14/java'
java.srcDirs += 'src/exo-event-2_14-now/java'
java.srcDirs += 'src/exo-mediaitem-2_14-now/java'
java.srcDirs += 'src/exo-player-upto-2_15/java'
}
just2_15 {
Expand All @@ -100,13 +104,15 @@ android {
java.srcDirs += 'src/exo-analytics-upto-2_16/java'
java.srcDirs += 'src/exo-error-2_15-now/java'
java.srcDirs += 'src/exo-event-2_14-now/java'
java.srcDirs += 'src/exo-mediaitem-2_14-now/java'
java.srcDirs += 'src/exo-player-upto-2_15/java'
}
just2_16 {
java.srcDirs += 'src/exo-analytics-listener-2_13-2_16/java'
java.srcDirs += 'src/exo-collector-2_10-now/java'
java.srcDirs += 'src/exo-analytics-2_16-now/java'
java.srcDirs += 'src/exo-error-2_15-now/java'
java.srcDirs += 'src/exo-mediaitem-2_14-now/java'
java.srcDirs += 'src/exo-player-2_16-now/java'
// From 2.16 onward, we don't need exo-event
}
Expand All @@ -115,6 +121,7 @@ android {
java.srcDirs += 'src/exo-collector-2_10-now/java'
java.srcDirs += 'src/exo-analytics-2_16-now/java'
java.srcDirs += 'src/exo-error-2_15-now/java'
java.srcDirs += 'src/exo-mediaitem-2_14-now/java'
java.srcDirs += 'src/exo-player-2_16-now/java'
// From 2.16 onward, we don't need exo-event
}
Expand All @@ -123,6 +130,7 @@ android {
java.srcDirs += 'src/exo-collector-2_10-now/java'
java.srcDirs += 'src/exo-analytics-2_16-now/java'
java.srcDirs += 'src/exo-error-2_15-now/java'
java.srcDirs += 'src/exo-mediaitem-2_14-now/java'
java.srcDirs += 'src/exo-player-2_16-now/java'
// From 2.16 onward, we don't need exo-event
}
Expand All @@ -135,6 +143,7 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
namespace 'com.mux.exoplayeradapter'
}

muxDistribution {
Expand Down Expand Up @@ -179,7 +188,7 @@ dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:${project.ext.kotlinxCoroutinesVersion}"

testImplementation 'junit:junit:4.13.2'
testImplementation 'androidx.test.ext:junit:1.1.3'
testImplementation 'androidx.test.ext:junit:1.1.5'
testImplementation "io.mockk:mockk:1.12.3"
testImplementation 'org.robolectric:robolectric:4.8'
testImplementation 'org.robolectric:robolectric:4.8.1'
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.mux.stats.sdk.muxstats

import com.google.android.exoplayer2.ExoPlayer
import com.google.android.exoplayer2.MediaItem

/*
* # ExoPlayerExt.kt: Useful extensions on [ExoPlayer].
*/

/**
* Gets the Ad Tag URL for the [AdsConfiguration] associated with this [MediaItem], if any
*
* Returns null if there's no ads configured, or no media item set
*/
fun ExoPlayer.getAdTagUrl(): String? =
currentMediaItem?.playbackProperties?.adsConfiguration?.adTagUri?.toString()
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.mux.stats.sdk.muxstats

import com.google.android.exoplayer2.ExoPlayer

/*
* # ExoPlayerExt.kt: Useful extensions on [ExoPlayer].
*/

/**
* This method is not supported for this version of ExoPlayer, and it always returns null
*/
@Suppress("unused")
fun ExoPlayer.getAdTagUrl(): String? = null
3 changes: 1 addition & 2 deletions ExoPlayerAdapter/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mux.exoplayeradapter">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

</manifest>
11 changes: 5 additions & 6 deletions MuxExoPlayer/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,6 @@ android {
}
}

lintOptions {
disable 'GradleCompatible'
// exoplayer 2.8.1 workaround
// https://github.com/google/ExoPlayer/issues/4234
lintConfig file("../checker-framework-lint.xml")
}

flavorDimensions 'exoplayer'

Expand Down Expand Up @@ -108,6 +102,11 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
lint {
disable 'GradleCompatible'
lintConfig file('../checker-framework-lint.xml')
}
namespace 'com.mux.stats.sdk.muxstats'
} //android

muxDistribution {
Expand Down
3 changes: 1 addition & 2 deletions MuxExoPlayer/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mux.stats.sdk.muxstats">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ import com.google.ads.interactivemedia.v3.api.AdEvent
import com.google.android.exoplayer2.ExoPlayer
import com.mux.stats.sdk.core.events.EventBus
import com.mux.stats.sdk.core.events.playback.*
import com.mux.stats.sdk.core.model.AdData
import com.mux.stats.sdk.core.model.ViewData
import com.mux.stats.sdk.muxstats.internal.oneOf
import com.mux.stats.sdk.muxstats.internal.weak
import com.mux.stats.sdk.core.events.playback.AdEvent as MuxAdEvent

/**
* Ima SDK wrapper, listen to ad events and dispatch the appropriate AdPlayback events accordingly.
Expand Down Expand Up @@ -55,12 +57,12 @@ class AdsImaSDKListener private constructor(
private var missingAdBreakStartEvent = false

/**
* Handles the Ad error.
* Handles Ad errors
*
* @param adErrorEvent, Error to be handled.
*/
override fun onAdError(adErrorEvent: AdErrorEvent) {
val event: PlaybackEvent = AdErrorEvent(null)
val event = AdErrorEvent(null)
setupAdViewData(event, null)
eventBus.dispatch(event)
}
Expand All @@ -71,15 +73,23 @@ class AdsImaSDKListener private constructor(
* @param event, event to be updated.
* @param ad, current ad event that is being processed.
*/
private fun setupAdViewData(event: PlaybackEvent, ad: Ad?) {
private fun setupAdViewData(event: MuxAdEvent, ad: Ad?) {
val viewData = ViewData()
val adData = AdData();
if (stateCollector.playbackPositionMills == 0L) {
if (ad != null) {
viewData.viewPrerollAdId = ad.adId
viewData.viewPrerollCreativeId = ad.creativeId

adData.adTagUrl = exoPlayer?.getAdTagUrl()

ad.adId?.let { adData.adId = it }
ad.creativeId?.let { adData.adCreativeId = it }
ad.universalAdIdValue?.let { adData.adUniversalId = it }
}
}
event.viewData = viewData
event.adData = adData;
}

/**
Expand Down Expand Up @@ -140,7 +150,8 @@ class AdsImaSDKListener private constructor(
}
AdEvent.AdEventType.PAUSED -> {
if (!player.playWhenReady
&& player.currentPosition == 0L) {
&& player.currentPosition == 0L
) {
// This is preroll ads when play when ready is set to false, we need to ignore these events
return;
}
Expand Down Expand Up @@ -169,7 +180,7 @@ class AdsImaSDKListener private constructor(
* @param event, to be dispatched.
* @param ad, ad being processed.
*/
private fun dispatchAdPlaybackEvent(event: PlaybackEvent, ad: Ad?) {
private fun dispatchAdPlaybackEvent(event: MuxAdEvent, ad: Ad?) {
setupAdViewData(event, ad)
eventBus.dispatch(event)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.mux.stats.sdk.muxstats.internal

import com.google.android.exoplayer2.ExoPlayer
import com.mux.stats.sdk.muxstats.BuildConfig
import com.mux.stats.sdk.muxstats.MuxStats

Expand Down
15 changes: 7 additions & 8 deletions automatedtests/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,6 @@ android {
}
}

lintOptions {
abortOnError false
disable 'GradleCompatible'
// exoplayer 2.8.1 workaround
// https://github.com/google/ExoPlayer/issues/4234
lintConfig file("../checker-framework-lint.xml")
}

testOptions {
// Changes the directory where Gradle saves test reports. By default, Gradle saves test reports
Expand All @@ -47,7 +40,7 @@ android {
sourceSets {
androidTest {
// Important, can't get asset file in instrumentation test without this
assets.srcDirs = ['src/main/assets']
assets.srcDirs += 'src/main/assets'
}
}

Expand Down Expand Up @@ -98,6 +91,12 @@ android {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
lint {
abortOnError false
disable 'GradleCompatible'
lintConfig file('../checker-framework-lint.xml')
}
namespace 'com.mux.stats.sdk.muxstats.automatedtests'
}

dependencies {
Expand Down
3 changes: 1 addition & 2 deletions automatedtests/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.mux.stats.sdk.muxstats.automatedtests">
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />

Expand Down
26 changes: 8 additions & 18 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ buildscript {
}

dependencies {
classpath 'com.android.tools.build:gradle:7.2.2'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.29.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10"
classpath 'com.mux.gradle.android:mux-android-distribution:0.8.7'
classpath 'com.android.tools.build:gradle:7.4.0'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.31.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.21"
classpath 'com.mux.gradle.android:mux-android-distribution:1.0.3'
}
}

Expand All @@ -38,19 +38,9 @@ allprojects {
mavenCentral()
mavenLocal()

maven {
url 'https://muxinc.jfrog.io/artifactory/default-maven-virtual'
}

// Both our release and dev repos are imported
maven {
url 'https://muxinc.jfrog.io/artifactory/default-maven-release-local'
}

maven {
url 'https://muxinc.jfrog.io/artifactory/default-maven-local'

}
maven { url 'https://muxinc.jfrog.io/artifactory/default-maven-virtual' }
maven { url 'https://muxinc.jfrog.io/artifactory/default-maven-release-local' }
maven { url 'https://muxinc.jfrog.io/artifactory/default-maven-local' }

tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
Expand All @@ -61,7 +51,7 @@ allprojects {
compileSdkVersion = 31
targetSdkVersion = 31

muxCoreVersion = "7.6.0"
muxCoreVersion = "7.7.0"
kotlinxCoroutinesVersion = "1.6.1"
}
}
Expand Down
Loading

0 comments on commit 6ca385a

Please sign in to comment.