<img src="https://img.shields.io/badge/%20-ENTERPRISE-%23B10031" style="float:left"/><br /> <img src="https://img.shields.io/badge/Android-V4-009727?logo=android" style="float:left"/><br />

## Configuration API

The Configuration API is largely the same between 3.x and 4.x. There are some important differences.

In SDK 4.x, all configuration classes have the following qualities:

  • Immutable (for example,. thread-safe)

  • Constructed using a Builder

Below is a list of the differences between each 3.x and 4.x configuration class.

<br /> <br />

### AdBreak

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>AdBreak(AdBreak src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>AdBreak(java.lang.String offset, AdSource adSource, java.lang.String`...`tags)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>cloneList(java.util.List<AdBreak> src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed utility method
`equals(java.lang.Object obj)``equals(java.lang.Object obj)`Does not currently override default `equals()` method
<span style="color:red; font-size:13px"><strong><code>getSource()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed field<br /><br />`AdClient` is now defined in the `AdvertisingConfig` object
`hashCode()``hashCode()`Does not currently override default `equals()` method
<span style="color:red; font-size:13px"><strong><code>parseJson(java.lang.String jsonStr)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>setSource(AdSource adSource)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed field<br /><br />`AdClient` is now defined in the `AdvertisingConfig` object
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
**- - -**`describeContents()`Now implements `Parcelable` interface
**- - -**`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### AdRules

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>AdRules(AdRules src)Copy constructor</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(java.lang.String json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
**- - -**`describeContents()`Now implements `Parcelable` interface
**- - -**`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### AdSource

Renamed to `AdClient`

3.x4.xNotes
`AdSource``AdClient`Renamed `Enum`

<br />

### Advertising

Renamed to `VastAdvertisingConfig`

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>Advertising(AdSource client, java.util.List<AdBreak> schedule)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead<br /><br />Removed utility method
<span style="color:red; font-size:13px"><strong><code>Advertising(Advertising src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead<br /><br />Removed utility method
<span style="color:red; font-size:13px"><strong><code>copy()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed utility method
`getClient()``getAdClient()`Renamed
<span style="color:red; font-size:13px"><strong><code>setAdMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setAdRules()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setClient()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setConditionalAdOptOut(java.lang.Boolean conditionalAdOptOut)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setCreativeTimeout(java.lang.Integer creativeTimeout)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setCueText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setPodMessage(java.lang.String podMessage)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setRequestTimeout()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setSchedule(java.util.List<AdBreak> schedule)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setSkipMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setSkipOffset()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setSkipText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setVpaidControls()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON

<br />

### AudioTrack

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject audioJson)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
**- - -**`describeContents()`Now implements `Parcelable` interface
**- - -**`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### Caption

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>Caption(Caption source)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed copy constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>cloneList(java.util.List<Caption> src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed utility method
<span style="color:red; font-size:13px"><strong><code>listFromJson(java.lang.String json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>listFromJson(org.json.JSONArray json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(java.lang.String json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
**- - -**`describeContents()`Now implements `Parcelable` interface
**- - -**`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### CaptionsConfig

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>CaptionsConfig</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed the class. Users configure caption styling at the device level instead.

<br />

### ExternalMetadata

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>cloneList(java.util.List<ExternalMetadata> src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer implements `Jsonable` interface
<span style="color:red; font-size:13px"><strong><code>ExternalMetadata(ExternalMetadata other)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed copy constructor
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer implements `Jsonable` interface
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer implements `Jsonable` interface
**- - -**`describeContents()`Now implements `Parcelable` interface
**- - -**`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### ImaAdvertising

Renamed to `ImaAdvertisingConfig`

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>copy()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed utility method
<span style="color:red; font-size:13px"><strong><code>getAdMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
<span style="color:red; font-size:13px"><strong><code>getAdRules()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
`getClient()``getAdClient()`Renamed
<span style="color:red; font-size:13px"><strong><code>getConditionalAdOptOut()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
<span style="color:red; font-size:13px"><strong><code>getCreativeTimeout()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
<span style="color:red; font-size:13px"><strong><code>getCueText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
<span style="color:red; font-size:13px"><strong><code>getPodMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
<span style="color:red; font-size:13px"><strong><code>getSkipMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
<span style="color:red; font-size:13px"><strong><code>getSkipOffset()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
<span style="color:red; font-size:13px"><strong><code>getSkipText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
<span style="color:red; font-size:13px"><strong><code>getVpaidControls()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field.
<span style="color:red; font-size:13px"><strong><code>ImaAdvertising(ImaAdvertising src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed copy constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>ImaAdvertising(java.util.List<AdBreak> schedule)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed copy constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>ImaAdvertising(java.util.List<AdBreak> schedule, com.google.ads.interactivemedia.v3.api.ImaSdkSettings imaSdkSettings)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed copy constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setAdMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setAdRules()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setClient()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable. <br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setConditionalAdOptOut()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setCreativeTimeout()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setCueText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setImaSdkSettings(com.google.ads.interactivemedia.v3.api.ImaSdkSettings imaSdkSettings)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setPodMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setRequestTimeout()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setSchedule()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable. <br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setSkipMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setSkipOffset()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setSkipText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setVpaidControls()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON

<br />

### ImaDaiAdvertising

Renamed to `ImaDaiAdvertisingConfig`

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>copy()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed utility method
<span style="color:red; font-size:13px"><strong><code>getAdMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getAdRules()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
`getClient()``getAdClient()`Renamed
<span style="color:red; font-size:13px"><strong><code>getCueText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getRequestTimeout()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getSkipMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getSkipOffset()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getSkipText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getVpaidControls()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>ImaDaiAdvertising(ImaDaiAdvertising src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>ImaDaiAdvertising(ImaDaiSettings imaDaiSettings)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setAdMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setAdRules()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setClient()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setCueText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setImaDaiSettings(ImaDaiSettings settings)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setRequestTimeout()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setSkipMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setSkipOffset()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setSkipText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setVpaidControls()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON

<br />

### ImaDaiSettings

3.x4.xNotes
---<code>setAdTagParameters(Map<String,String>)</code>Added
---<code>Map<String, String> getAdTagParameters</code>Added

<br />

### ImaVMAPAdvertising

Renamed to `ImaVmapAdvertisingConfig`

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>copy()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed utility method
<span style="color:red; font-size:13px"><strong><code>getAdMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getAdRules()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
`getClient()``getAdClient()`Renamed
<span style="color:red; font-size:13px"><strong><code>getCueText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getRequestTimeout()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getSkipMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getSkipOffset()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getSkipText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>getVpaidControls()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed getter. Unused field
<span style="color:red; font-size:13px"><strong><code>ImaVMAPAdvertising(ImaVMAPAdvertising src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>ImaVMAPAdvertising(java.lang.String tag)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>ImaVMAPAdvertising(java.lang.String tag, com.google.ads.interactivemedia.v3.api.ImaSdkSettings imaSdkSettings)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setClient()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setAdMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setAdRules()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setCueText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setImaSdkSettings(com.google.ads.interactivemedia.v3.api.ImaSdkSettings imaSdkSettings)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setRequestTimeout()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setSkipMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setSkipOffset()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setSkipText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>setTag()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setVpaidControls()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setter. Unused field
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serialize to JSON

<br />

### LocalizationConfig

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serialize to JSON
---`getWeakContext()`Provides a weak reference to the `Context` provided via the constructor

<br />

### LogoConfig

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>LogoConfig(LogoConfig.Builder builder)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>LogoConfig(LogoConfig src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serialize to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(java.lang.String jsonStr)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serialize to JSON
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serialize to JSON
---`describeContents()`Now implements `Parcelable` interface
---`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### MediaDrmCallback

3.x4.xNotes
`MediaDrmCallback``MediaDrmCallback`Now implements `Parcelable` interface

<br />

### MediaSource

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>cloneList(java.util.List<MediaSource> src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Remove copy list utility
<span style="color:red; font-size:13px"><strong><code>MediaSource(MediaSource src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed copy constructor
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(java.lang.String json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseTypeFromFile(java.lang.String file)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>typeAsMediaType(java.lang.String fileType)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed utility method
---`describeContents()`Now implements `Parcelable` interface
---`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### Metadata

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>toString()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Does not currently override default `toString()` method
---`describeContents()`Now implements `Parcelable` interface
---`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### PlaybackRateConfig

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>PlaybackRateConfig</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed the class<br /><br />Developers can configure playback rates and playback rate controls on the `PlayerConfig` object
`Builder.advertising(AdvertisingBase)``Builder.advertisingConfig(AdvertisingConfig)`Renamed
`Builder.playbackRates(PlaybackRatesConfig)``Builder.playbackRates(float[])`Renamed, removed unnecessary `PlaybackRatesConfig` class
<span style="color:red; font-size:13px"><strong><code>getFile()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed<br /><br />Setting only `file` in the Builder creates a single item playlist accessible via `getPlaylist()`
<span style="color:red; font-size:13px"><strong><code>getImage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed<br /><br />Setting `file` and `image` in the Builder creates a single item playlist accessible via `getPlaylist()`
<span style="color:red; font-size:13px"><strong><code>PlayerConfig(PlayerConfig) ctor</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed<br /><br />Removed, class is immutable
---`Builder.playbackRateControls(Boolean)`Added, broken out of `PlaybackRatesConfig`
---`Builder.uiConfig(UiConfig)`Added to support Native UI

<br />

### PlaylistItem

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>cloneList(java.util.List<PlaylistItem> src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed copy list utility method
<span style="color:red; font-size:13px"><strong><code>listFromJson(java.lang.String json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>listFromJson(org.json.JSONArray json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>listFromJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(java.lang.String json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>PlaylistItem()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed empty constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>PlaylistItem(java.lang.String file)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed empty constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>PlaylistItem(java.lang.String title, java.lang.String description, java.lang.String file, java.lang.String image, java.lang.String mediaId, java.util.List<MediaSource> sources, java.util.List<Caption> tracks, java.util.List<AdBreak> adSchedule, java.util.Map<java.lang.String,java.lang.String> httpHeaders, java.lang.String recommendations, FwSettings settings, ImaDaiSettings imaDaiSettings, double startTime, java.util.List<ExternalMetadata> externalMetadata)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed kitchen sink constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>PlaylistItem(PlaylistItem src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed copy constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setAdSchedule(java.util.List<AdBreak> adSchedule)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setAdScheduleInternal(java.util.List<AdBreak> adSchedule)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setCaptions(java.util.List<Caption> tracks)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setDescription(java.lang.String description)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setFile(java.lang.String file)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setFWSettings(FwSettings mFWSettings)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setHttpHeaders(java.util.Map<java.lang.String,java.lang.String> httpHeaders)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setImaDaiSettings(ImaDaiSettings imaDaiSettings)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setMediaDrmCallback(MediaDrmCallback callback)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setMediaId(java.lang.String mediaId)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setRecommendations(java.lang.String recommendations)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setSources(java.util.List<MediaSource> sources)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setStartTime(double startTime)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setTitle(java.lang.String title)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
---`describeContents()`Now implements `Parcelable` interface
---`hasHasPreroll()`Utility method
---`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### QualityLevel

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>fromJson(org.json.JSONObject jso)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject qualityJson)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>toString()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Does not currently override default `toString()` method
---`describeContents()`Now implements `Parcelable` interface
---`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### RelatedConfig

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>parseJson(org.json.JSONObject json)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>parseJson(java.lang.String jsonStr)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
<span style="color:red; font-size:13px"><strong><code>RelatedConfig(RelatedConfig src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed copy constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setAutoPlayMessage(java.lang.String message)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setAutoPlayTimer(java.lang.Integer timer)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setDisplayMode(java.lang.String displayMode)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setFile(java.lang.String file)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setOnClick(java.lang.String onClick)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>setOnComplete(java.lang.String onComplete)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` to configure
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serializes to JSON
---`describeContents()`Now implements `Parcelable` interface
---`writeToParcel(android.os.Parcel dest, int flags)`Now implements `Parcelable` interface

<br />

### SharingConfig

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>SharingConfig</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed the class<br /><br />Developers should implement their own sharing functionality to best suit their needs.

<br />

### UiConfig

3.x4.xNotes
---`UiConfig(UiConfig.Builder builder)`New class to configure visible UI elements

<br />

### VMAPAdvertising

Renamed to `VmapAdvertisingConfig`

3.x4.xNotes
<span style="color:red; font-size:13px"><strong><code>copy()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed utility method
`getClient()``getAdClient()`Renamed
<span style="color:red; font-size:13px"><strong><code>setAdMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setTag(java.lang.String tag)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setAdRules()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setClient()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setCueText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setRequestTimeout()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setSkipMessage()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setSkipOffset()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setSkipText()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>setVpaidControls()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed setters. Object is immutable.<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>toJson()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>No longer serialize to JSON
<span style="color:red; font-size:13px"><strong><code>VMAPAdvertising(AdSource client, java.lang.String tag)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
<span style="color:red; font-size:13px"><strong><code>VMAPAdvertising(VMAPAdvertising src)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed constructor<br /><br />Use `Builder()` instead
---`getConditionalOptOut()`ο»Ώ
---`getCreativeTimeout()`ο»Ώ

<br /> <hr />

## Events API

The Events API has been updated to be more generic. Several small changes were made to Event payloads.

<br />

### Event Registration / Deregistration

`player.addListener(EventType.SEEK, listener);` `player.removeListener(EventType.SEEK, listener);`

<br />

### List of events supported

ο»Ώ

<br />

### AdErrorEvent

3.x4.xNotes
---`int getAdErrorCode()`JWP ad error code to describe the cause of the ad error
---`int getCode()`VAST ad error code to describing the cause of the ad error

<br />

### AdImpressionEvent

3.x4.xNotes
---`int getPodcount()`New method to return the count of pods in the ad
---`int getSequence()`New method to return the sequence of the current pod in the ad

<br />

### AdMetaEvent

3.x4.xNotes
`getType()``getMetaType()`Renamed method

<br />

### AdScheduleFromEvent

3.x4.xNotes
`getmBreakId()``getBreakId()`Renamed method
`getmItem()``getBreakId()`Renamed method

<br /> <hr />

## Player API

The JWP API is now decoupled from the Player View, which means that you will need to access the player API on the `JWPlayer` class.

### JWPlayer

3.x4.xNotes
`add*Listener(On*Listener)``addListener(EventType, EventListener)`Combined all event registration into one method
<span style="color:red"><strong><code>addButton()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed<br /><br />Use custom native controls instead
<span style="color:red"><strong><code>closeSharingOverlay()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed<br /><br />Sharing is not supported ​
<span style="color:red"><strong><code>getExperimentalAPI()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed<br /><br />ExperimentalAPI has been finalized into the regular API ​
<span style="color:red"><strong><code>load(<all variants>)</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed<br /><br />Use `setup(PlayerConfig)` instead ​​
<span style="color:red"><strong><code>onStart()</code></strong> and <strong><code>onStop()</code></strong></span><img src="https://img.shields.io/badge/DEPRECATED-%20-yellow"/>Removed<br /><br />Use `setup(PlayerConfig)` instead ​​
`remove*Listener(On*Listener)``removeListener(EventType, EventListener)`Combined all event registration into one method
**- - -**`getViewModelForUiGroup(UiGroup)`Used to get the `ViewModel` for a group of UI controls (for example, center controls)

<br /> <hr />

## Player API Compatibility

If you prefer to use the old style of event registration/deregistration, it is still available in the `JWPlayerCompat` class. This class offers type checking against each individual listener type, but cannot use generics like the new style of event registration.

ο»Ώ

<br />