# Migrating from 3.x to 4.x - Android

This guide provides an introduction to the 4.x Programmable Video Android SDK and a set of guidelines to migrate an application from 3.x to 4.x.

## Programming Model

The programming model has not changed from 3.x to 4.x. To learn more about older migration guides, see our [documentation retention policy](/docs/video/platform-sdk-support-policy#documentation-retention-policy).

## WebRTC

The media stack, WebRTC 67, has not changed from 3.x to 4.x. The process by which our team upgrades WebRTC has been improved and developers can expect a steadier cadence of releases with WebRTC upgrades moving forward.

## Java 8

The Video Android SDK has not changed JDK versions from 3.x to 4.x. Consumers of the Video Android SDK must update their applications to use Java 8 if they haven't done so already. Add the following to your application build.gradle to enable Java 8 features.

```text
android {
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
```

Optionally, you can also instruct Android Studio to optimize your project for Java 8 by clicking "Analyze -> Inspect Code".

### Reconnecting API

In 4.x we have introduced a new set of callbacks in `Room.Listener` to notify developers of a network disruption. As a result, developers will need to add these new callbacks to every instance of the `Room.Listener` interface.

```java

@Override
public void onReconnecting(@NonNull Room room, @NonNull TwilioException twilioException) {

}

@Override
public void onReconnected(@NonNull Room room) {

}
```
