## 2.0.1
* Make sure androidx.lifecycle.DefaultLifecycleObservable doesn't get shrunk
  away.

## 2.0.0

* Bump Dart SDK for null-safety compatibility.
* Fix outdated links across a number of markdown files ([#3276](https://github.com/flutter/plugins/pull/3276))

## 1.0.12

* Update Flutter SDK constraint.

## 1.0.11

* Keep handling deprecated Android v1 classes for backward compatibility.

## 1.0.10

* Update android compileSdkVersion to 29.

## 1.0.9

* Let the no-op plugin implement the `FlutterPlugin` interface.

## 1.0.8

* Post-v2 Android embedding cleanup.

## 1.0.7

* Update Gradle version. Fixes https://github.com/flutter/flutter/issues/48724.
* Fix CocoaPods podspec lint warnings.

## 1.0.6

* Make the pedantic dev_dependency explicit.

## 1.0.5

* Add notice in example this plugin only provides Android Lifecycle API.

## 1.0.4

* Require Flutter SDK 1.12.13 or greater.
* Change to avoid reflection.

## 1.0.3

* Remove the deprecated `author:` field from pubspec.yaml
* Require Flutter SDK 1.10.0 or greater.

## 1.0.2

* Adapt to the embedding API changes in https://github.com/flutter/engine/pull/13280 (only supports Activity Lifecycle).

## 1.0.1
* Register the E2E plugin in the example app.

## 1.0.0

* Introduces a `FlutterLifecycleAdapter`, which can be used by other plugins to obtain a `Lifecycle`
  reference from a `FlutterPluginBinding`.
