* 2.0.1:
  * Moved `AlertDialogFragment` and related utilities to `fragment` package, with support for Fragment Result API from AndroidX Fragment 1.3.
  * Dependency updates:
    - `androidx.fragment:fragment-ktx:1.3.3`;
    - `com.google.android.material:material:1.3.0`;
    - `org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32`.
* 2.0.0:
  * Deprecated passing `-V` and `--fast-open` to plugin.
    Please find `__android_vpn` option passed via plugin options.
  * Dependency updates:
    - `androidx.core:core-ktx:1.3.2`;
    - `androidx.drawerlayout:drawerlayout:1.1.1`;
    - `com.google.android.material:material:1.2.1`;
    - `org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10`.
* 1.3.4:
  * Optional new metadata `com.github.shadowsocks.plugin.id.aliases` for plugin ID aliases;
    (see doc for `PluginContract.METADATA_KEY_ID_ALIASES` and main documentation "Plugin ID Aliasing" for more information)
  * Please use `android:path` instead of `android:pathPrefix`, sample code in documentations have been updated to reflect this recommendation.
  * Added missing documentation regarding direct boot support.
    Please add `android:directBootAware="true"` with proper support for your `provider` if possible.
  * You can now use `android:resources` on `meta-data` tags. (main/host app update required, however, you should never use dynamic resources)
  * Fix occasional crash in `AlertDialogFragment`.
  * Translation updates.
  * Dependency updates:
    - `androidx.core:core-ktx:1.2.0`;
    - `com.google.android.material:material:1.1.0`.
* 1.3.3:
  * Fix a build script issue.
* 1.3.2:
  * Fix first key-value pair disappearing with null value. (#2391)
  * Dependency updates:
    - `androidx.core:core-ktx:1.1.0`;
    - `com.google.android.material:material:1.1.0-rc01`;
    - `org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61`.
* 1.3.1:
  * New theme resource `Theme.Shadowsocks.Immersive` for better Android Q-esque translucent navigation bars.
    This is an opt-in feature.
    Please add `android:theme="@style/Theme.Shadowsocks.Immersive"` to your `<activity>` to enable this theme.
  * New color resources `light_*` and `dark_*` for passing to custom tabs;
  * Dependency updates:
    - `androidx.core:core-ktx:1.1.0-rc03`;
    - `androidx.drawerlayout:drawerlayout:1.1.0-alpha03`;
    - `com.google.android.material:material:1.1.0-alpha09`;
    - `org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.41`.
* 1.3.0:
  * Optional new metadata `com.github.shadowsocks.plugin.executable_path` for even faster initialization;
    (see doc for `PluginContract.METADATA_KEY_EXECUTABLE_PATH` for more information)
  * Breaking API change: `val AlertDialogFragment.ret: Ret?` => `fun AlertDialogFragment.ret(which: Int): Ret?`;
    (nothing needs to be done if you are not using this API)
  * Dependency updates:
    - Now targeting API 29;
    - `androidx.core:core-ktx:1.1.0-rc01`;
    - `com.google.android.material:material:1.1.0-alpha07`;
    - `org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.40`.
* 1.2.0:
  * New helper class `AlertDialogFragment` for creating `AlertDialog` that persists through configuration changes;
  * Dependency update: `com.google.android.material:material:1.1.0-alpha03`.
* 1.1.0:
  * Having control characters in plugin options is no longer allowed.
    If this breaks your plugin, you are doing it wrong.
  * New helper method: `PluginOptions.putWithDefault`.
* 1.0.0:
  * BREAKING CHANGE: Plugins developed using this version and forward require shadowsocks-android 4.6.5 or higher.
  * `PathProvider` now takes `Int` instead of `String` for file modes;
  * Refactor to AndroidX;
  * No longer depends on preference libraries.
* 0.1.1:
  * Rewritten in Kotlin;
  * Fix assert not working;
  * Min API 21;
  * Update support library version to 27.1.1.
* 0.0.4:
  * Enlarge text size of number pickers;
  * Update support library version to 26.0.0.
* 0.0.3:
  * Update support library version to 25.2.0.
* 0.0.2:
  * Add `getOrDefault` to `PluginOptions`;
  * Update support library version to 25.1.1.
* 0.0.1: Initial release.
