build: Android's built-in Kotlin, the three plugins applying KGP themselves patched in third_party/
AGP 9 compiles Kotlin itself (android.builtInKotlin=true in every app), and warns that applying the Kotlin Gradle Plugin will soon fail. flutter_web_auth_2 5.1.0, keyboard_height_plugin 0.3.0 and flutter_tts 4.2.5 still apply it unconditionally, so their pub releases are copied into third_party/ with only their android/build.gradle changed, and the root overrides them by path (third_party/README.md says when to drop each). The servers' images copy third_party/, as pub refuses an override whose path is missing. third_party/ isn't our own code: left out of the analysis and the format check. All four apps' APKs build without the warning. A Kotlin daemon's session file that slipped into Train's android/ goes, and every app's android/.gitignore keeps .kotlin/ out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
396e010949
commit
438ce20dbf
95 changed files with 8440 additions and 23 deletions
|
|
@ -15,6 +15,7 @@ Halkyon's apps and the packages they share, in one repository and one pub worksp
|
|||
- `halkyon_keys` (pure Dart on libsodium, ADR 0017): an account's keys on the device, the password's Argon2id and SRP's x, the key pairs and their wrapping, the recovery phrase, data keys, content sealed and signed, row IDs keyed by the account (`keyedRowId`). SRP-6a's two halves are the module's (`halkyon_base_server`'s `base.dart`, `halkyon_base_client`'s `srp.dart`), as are TOTP and the recovery codes. `sodium`'s build hook compiles libsodium, so every machine that builds or tests needs a C compiler and `make`.
|
||||
- `halkyon_llm` (pure Dart, Halkyon Learn's ADR 0021, D15 and D46): language models' APIs streamed over plain HTTP, no SDKs: Anthropic's Messages API, OpenAI's chat completions (each known host's fields, D45) and its Responses API, behind one interface (`LlmClient`), with `FakeLlmClient` for tests; tested on replies written from the providers' documentation and on those `tool/record_llm.dart` records with a key (D36). The module forwards the operator's assistants with it, and the apps call a person's own provider. BSD-3-Clause as `halkyon_oidc`, `publish_to: none`.
|
||||
- `halkyon_oidc_server`, `halkyon_oidc_client` (ADR 0023): signing in with OpenID Connect, with a SimpleLogin preset, as a Serverpod module that halkyon_base builds on; `halkyon_oidc_flutter`, the device's half: the provider's page opened, the way back caught (the app's scheme, or the loopback on Linux and Windows, `LoopbackWebAuth`) and its state checked. Nothing of Halkyon's is in it, so that others can use it with Serverpod: under BSD-3-Clause, Serverpod's own licence, where the other packages are AGPL; `publish_to: none` until it is published to pub.dev, which is asked again first.
|
||||
- **`third_party/`**: others' packages patched for us, each a pub release copied whole with only what its README names changed, overridden by path in the root `pubspec.yaml` (today the three Android plugins still applying the Kotlin Gradle Plugin themselves, which AGP 9's built-in Kotlin refuses soon); not our code, so left out of the analysis and the format check; the servers' images copy it, as pub refuses an override whose path is missing. Drop an override once its package's release has the change.
|
||||
- **`deploy/`**: the instance deploy at the root, learn.halkyon.eu's today (Learn's `AGENTS.md`, *CI and deploys*), where other services' compose files join Learn's (Train's `compose.train.yaml`, Todo's `compose.todo.yaml`, each switched on in `.env`). **`snap/`**: Learn's snap, built from the root, which its build needs whole; Todo's and Train's are `apps/todo/snap/` and `apps/train/snap/`, which the release tool builds each in a clone of the repository with it in place of `snap/` (Todo's `AGENTS.md`, *Releases*). **`docs/adr/`**: the decision records of every app and package, one numbering. **`tool/`**: the repository's tools (below).
|
||||
- **One workspace, one lock**: the root `pubspec.yaml` lists every package, `pubspec.lock` holds one version of each dependency for all of them, and its `dependency_overrides` hold for every app (the offline sync fork, Learn's `AGENTS.md`; `cli_util`, below). **Serverpod's version moves as one**: every package pins Serverpod's packages to the same version (4.0.4), the module's, Meditate's, Todo's and Train's too, together with the CLI version CI generates code with (`SERVERPOD_VERSION` in `.forgejo/workflows/ci.yaml`) and the sync packages Learn's server depends on.
|
||||
|
||||
|
|
|
|||
|
|
@ -9,3 +9,9 @@ include: package:leancode_lint/analysis_options.yaml
|
|||
|
||||
plugins:
|
||||
leancode_lint: ^27.0.0
|
||||
|
||||
analyzer:
|
||||
# Others' plugins, patched for their Gradle files alone (third_party/README.md),
|
||||
# are analysed and formatted as their authors keep them.
|
||||
exclude:
|
||||
- third_party/**
|
||||
|
|
|
|||
|
|
@ -14,3 +14,6 @@ GeneratedPluginRegistrant.java
|
|||
key.properties
|
||||
**/*.keystore
|
||||
**/*.jks
|
||||
|
||||
# The Kotlin compiler daemon's sessions.
|
||||
.kotlin/
|
||||
|
|
|
|||
|
|
@ -2,5 +2,6 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m
|
|||
android.useAndroidX=true
|
||||
# This newDsl flag was added by the Flutter template
|
||||
android.newDsl=false
|
||||
# This builtInKotlin flag was added by the Flutter template
|
||||
android.builtInKotlin=false
|
||||
# Kotlin built into the Android Gradle plugin (4 Nov 2026), every plugin
|
||||
# migrated (third_party/README.md).
|
||||
android.builtInKotlin=true
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@ FROM dart:3.13.4 AS build
|
|||
WORKDIR /app
|
||||
COPY pubspec.yaml pubspec.lock ./
|
||||
COPY tool/workspace_only.sh tool/
|
||||
# The root's dependency_overrides name these by path; pub refuses a path
|
||||
# that isn't there, though no server uses them.
|
||||
COPY third_party third_party
|
||||
COPY apps/learn/halkyon_learn_server apps/learn/halkyon_learn_server
|
||||
COPY packages/halkyon_base_server packages/halkyon_base_server
|
||||
COPY packages/halkyon_base_client packages/halkyon_base_client
|
||||
|
|
|
|||
|
|
@ -12,3 +12,6 @@ GeneratedPluginRegistrant.java
|
|||
key.properties
|
||||
**/*.keystore
|
||||
**/*.jks
|
||||
|
||||
# The Kotlin compiler daemon's sessions.
|
||||
.kotlin/
|
||||
|
|
|
|||
|
|
@ -2,5 +2,6 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m
|
|||
android.useAndroidX=true
|
||||
# This newDsl flag was added by the Flutter template
|
||||
android.newDsl=false
|
||||
# This builtInKotlin flag was added by the Flutter template
|
||||
android.builtInKotlin=false
|
||||
# Kotlin built into the Android Gradle plugin (4 Nov 2026), every plugin
|
||||
# migrated (third_party/README.md).
|
||||
android.builtInKotlin=true
|
||||
|
|
|
|||
|
|
@ -12,3 +12,6 @@ GeneratedPluginRegistrant.java
|
|||
key.properties
|
||||
**/*.keystore
|
||||
**/*.jks
|
||||
|
||||
# The Kotlin compiler daemon's sessions.
|
||||
.kotlin/
|
||||
|
|
|
|||
|
|
@ -2,5 +2,6 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m
|
|||
android.useAndroidX=true
|
||||
# This newDsl flag was added by the Flutter template
|
||||
android.newDsl=false
|
||||
# This builtInKotlin flag was added by the Flutter template
|
||||
android.builtInKotlin=false
|
||||
# Kotlin built into the Android Gradle plugin (4 Nov 2026), every plugin
|
||||
# migrated (third_party/README.md).
|
||||
android.builtInKotlin=true
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ FROM dart:3.13.4 AS build
|
|||
WORKDIR /app
|
||||
COPY pubspec.yaml pubspec.lock ./
|
||||
COPY tool/workspace_only.sh tool/
|
||||
# The root's dependency_overrides name these by path; pub refuses a path
|
||||
# that isn't there, though no server uses them.
|
||||
COPY third_party third_party
|
||||
COPY apps/todo/halkyon_todo_server apps/todo/halkyon_todo_server
|
||||
COPY packages/halkyon_base_server packages/halkyon_base_server
|
||||
COPY packages/halkyon_base_client packages/halkyon_base_client
|
||||
|
|
|
|||
|
|
@ -12,3 +12,6 @@ GeneratedPluginRegistrant.java
|
|||
key.properties
|
||||
**/*.keystore
|
||||
**/*.jks
|
||||
|
||||
# The Kotlin compiler daemon's sessions.
|
||||
.kotlin/
|
||||
|
|
|
|||
|
|
@ -2,5 +2,6 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m
|
|||
android.useAndroidX=true
|
||||
# This newDsl flag was added by the Flutter template
|
||||
android.newDsl=false
|
||||
# This builtInKotlin flag was added by the Flutter template
|
||||
android.builtInKotlin=false
|
||||
# Kotlin built into the Android Gradle plugin (4 Nov 2026), every plugin
|
||||
# migrated (third_party/README.md).
|
||||
android.builtInKotlin=true
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ FROM dart:3.13.4 AS build
|
|||
WORKDIR /app
|
||||
COPY pubspec.yaml pubspec.lock ./
|
||||
COPY tool/workspace_only.sh tool/
|
||||
# The root's dependency_overrides name these by path; pub refuses a path
|
||||
# that isn't there, though no server uses them.
|
||||
COPY third_party third_party
|
||||
COPY apps/train/halkyon_train_server apps/train/halkyon_train_server
|
||||
COPY packages/halkyon_base_server packages/halkyon_base_server
|
||||
COPY packages/halkyon_base_client packages/halkyon_base_client
|
||||
|
|
|
|||
27
pubspec.lock
27
pubspec.lock
|
|
@ -807,20 +807,18 @@ packages:
|
|||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_tts:
|
||||
dependency: transitive
|
||||
dependency: "direct overridden"
|
||||
description:
|
||||
name: flutter_tts
|
||||
sha256: ce5eb209b40e95f2f4a1397116c87ab2fcdff32257d04ed7a764e75894c03775
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
path: "third_party/flutter_tts"
|
||||
relative: true
|
||||
source: path
|
||||
version: "4.2.5"
|
||||
flutter_web_auth_2:
|
||||
dependency: transitive
|
||||
dependency: "direct overridden"
|
||||
description:
|
||||
name: flutter_web_auth_2
|
||||
sha256: a7655829251ee63aae64a748f8512f36670d8eba4657b0055cdf5ef304a9d164
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
path: "third_party/flutter_web_auth_2"
|
||||
relative: true
|
||||
source: path
|
||||
version: "5.1.0"
|
||||
flutter_web_auth_2_platform_interface:
|
||||
dependency: transitive
|
||||
|
|
@ -1142,12 +1140,11 @@ packages:
|
|||
source: hosted
|
||||
version: "4.12.0"
|
||||
keyboard_height_plugin:
|
||||
dependency: transitive
|
||||
dependency: "direct overridden"
|
||||
description:
|
||||
name: keyboard_height_plugin
|
||||
sha256: d57944cd3e4f8d9cb4adb1b7f1300d14a8dcec99bfb4414d78c7dd0120c1d66c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
path: "third_party/keyboard_height_plugin"
|
||||
relative: true
|
||||
source: path
|
||||
version: "0.3.0"
|
||||
latlong2:
|
||||
dependency: transitive
|
||||
|
|
|
|||
14
pubspec.yaml
14
pubspec.yaml
|
|
@ -57,6 +57,20 @@ dependency_overrides:
|
|||
# (`Logger.standard`, `Logger.verbose`, `Ansi`, `Progress`), the same in 0.5.2.
|
||||
# Drop this once flutter_launcher_icons allows 0.5.
|
||||
cli_util: ^0.5.2
|
||||
# Three Android plugins patched for Kotlin built into the Android Gradle
|
||||
# plugin (android.builtInKotlin=true, which every app sets since 4 Nov
|
||||
# 2026): their latest releases still apply the Kotlin Gradle plugin
|
||||
# themselves, which Flutter warns will fail builds. Only android/build.gradle
|
||||
# differs from the release (third_party/README.md); drop each override once
|
||||
# its plugin's own release has migrated. flutter_web_auth_2 is
|
||||
# halkyon_oidc_flutter's, keyboard_height_plugin appflowy_editor's (Learn's
|
||||
# notes), flutter_tts Learn's voice mode's.
|
||||
flutter_tts:
|
||||
path: third_party/flutter_tts
|
||||
flutter_web_auth_2:
|
||||
path: third_party/flutter_web_auth_2
|
||||
keyboard_height_plugin:
|
||||
path: third_party/keyboard_height_plugin
|
||||
# The offline sync package's shared part from our fork: v0.0.10 with seven
|
||||
# changes. Byte payloads compared as bytes: v0.0.10 compares them byte by byte
|
||||
# through a UUID parse that throws for each byte, so a sync touching a few thousand
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ void main() {
|
|||
'apps/learn/halkyon_learn_flutter/lib/l10n/app_localizations_de.dart',
|
||||
'packages/halkyon_ui/lib/l10n/halkyon_ui_localizations_en.dart',
|
||||
'packages/halkyon_app/lib/l10n/halkyon_app_localizations.dart',
|
||||
// Others' plugins, kept patched for their Gradle files alone.
|
||||
'third_party/flutter_tts/lib/flutter_tts.dart',
|
||||
]) {
|
||||
expect(isOwnDartFile(path), isFalse, reason: path);
|
||||
}
|
||||
|
|
|
|||
23
third_party/README.md
vendored
Normal file
23
third_party/README.md
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Others' plugins, patched
|
||||
|
||||
Android plugins whose latest release still applies the Kotlin Gradle plugin itself,
|
||||
which Flutter warns will fail builds once Kotlin is built into the Android Gradle
|
||||
plugin (`android.builtInKotlin=true`, which every Halkyon app sets since 4 Nov 2026).
|
||||
The root `pubspec.yaml` takes each from here through `dependency_overrides`.
|
||||
|
||||
Each folder is the release from pub.dev as it was (its `example/`, `test/` and lint
|
||||
options left out), under its own licence, but for `android/build.gradle`, changed as
|
||||
[Flutter's guide for plugin authors](https://docs.flutter.dev/release/breaking-changes/migrate-to-built-in-kotlin/for-plugin-authors)
|
||||
has it: `apply plugin: 'kotlin-android'`, the Kotlin Gradle plugin's classpath, the
|
||||
`kotlinOptions` block and the explicit `kotlin-stdlib` dropped, a `kotlin {
|
||||
compilerOptions { jvmTarget } }` block added with the same JVM target.
|
||||
|
||||
| Plugin | Release | Licence | Used by |
|
||||
|---|---|---|---|
|
||||
| `flutter_web_auth_2` | 5.1.0 | MIT | `halkyon_oidc_flutter` (signing in with SimpleLogin) |
|
||||
| `keyboard_height_plugin` | 0.3.0 | BSD-3-Clause | `appflowy_editor` (Learn's notes) |
|
||||
| `flutter_tts` | 4.2.5 | MIT | Learn's voice mode |
|
||||
|
||||
When a plugin's own release has migrated, take it from pub.dev again: drop its
|
||||
override and its folder here. Before then, a newer release is brought in by copying
|
||||
it here and making the same change.
|
||||
493
third_party/flutter_tts/CHANGELOG.md
vendored
Normal file
493
third_party/flutter_tts/CHANGELOG.md
vendored
Normal file
|
|
@ -0,0 +1,493 @@
|
|||
# ChangeLog
|
||||
|
||||
## 4.2.5
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Fixing namespace path
|
||||
|
||||
## 4.2.4
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Windows:** CMake fix
|
||||
|
||||
### Features
|
||||
|
||||
- **iOS:** Add playbackAndRecord category to iOS audio category mapping
|
||||
- **Android:** Bump to AGP 8.13
|
||||
|
||||
## 4.2.3
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Fix TTS reconnection behaviors
|
||||
- **Windows:** Replace deprecated exec_program with execute_process
|
||||
- **Windows:** Fix error on MSVC compilers
|
||||
|
||||
## 4.2.2
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Web:** Fixing setLanguage on iOS browsers
|
||||
|
||||
## 4.2.1
|
||||
|
||||
### Fixes
|
||||
|
||||
- **iOS:** speeding up iOS plugin initialization
|
||||
- **Android:** Fixes npe on plugin initialization
|
||||
|
||||
## 4.2.0
|
||||
|
||||
### Features
|
||||
|
||||
- **Windows:** Added extra metadata for voices
|
||||
- **Web:** Added progress events using onboundary
|
||||
|
||||
## 4.1.0
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Windows:** Fixes setvoices
|
||||
- **iOS:** Fixes exported audio having the wrong sampleRate on ios 18
|
||||
- **Android:** Fixes 'Reply already submitted' bug during synthesizeToFile
|
||||
|
||||
### Features
|
||||
|
||||
- **Android:** Added AudioFocus and Audio Attributes For Navigation
|
||||
- **Android/iOS/macOS:** Added extra metadata for voices
|
||||
- **Web:** Migrated js_interop to support WASM
|
||||
- **Android/iOS:** Improving synthesizeToFile
|
||||
|
||||
## 4.0.2
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Package:** using recommended static analysis and fixing issues from analyze
|
||||
- **Package:** Upating android example to use declarative plugins block
|
||||
|
||||
## 4.0.1
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Fixing synthesizeToFile
|
||||
|
||||
## 4.0.0
|
||||
|
||||
### Features
|
||||
|
||||
- **iOS:** Add clear selected voice
|
||||
- **Android:** Add clear selected voice
|
||||
- **Android:** Upgrade to Kotlin 1.9.10
|
||||
- **Android:** Upgrade Gradle to 8.2.0
|
||||
- **Android:** Change compileSDK target to 34
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Fix TTS initialization (removed setInitHandler)
|
||||
- **Web:** Fix pause
|
||||
- **Package:** Fix describeEnum deprecation (requires Flutter SDK >=2.15.0)
|
||||
- **Package:** Remove unnecessary foundation.dart include
|
||||
|
||||
## 3.8.5
|
||||
|
||||
### Fixes
|
||||
|
||||
- **iOS:** Fix AVSpeechSynthesisVoiceGender with available on iOS 13 or greater
|
||||
|
||||
## 3.8.4
|
||||
|
||||
- **Android:** Fix 'Reply already submitted' bug
|
||||
- **iOS:** Return additional voice information fields (quality, gender, and identifier)
|
||||
- **iOS:** Fix synthesizeToFile on iOS 17+
|
||||
|
||||
## 3.8.3
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Clear pending method calls on initialization
|
||||
|
||||
## 3.8.2
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Web:** Fixing onError to prevent crashing
|
||||
|
||||
## 3.8.1
|
||||
|
||||
- **iOS:** Fixing fileName type back to URL
|
||||
|
||||
## 3.8.0
|
||||
|
||||
### Features
|
||||
|
||||
- *iOS/Android:** Support relative path of synthesization audio file
|
||||
- **Android:** Improved android manifest notice
|
||||
- **Android:** Removed deprecated registerWith
|
||||
- **iOS:** Improved iOS audio documentation
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Set speaking and synth to false in the stop method
|
||||
- **Web:** Fix error in check available language without locale (country)
|
||||
|
||||
## 3.7.0
|
||||
|
||||
### Features
|
||||
|
||||
- **iOS:** add option to disable the auto stop for the audio session after speech completion
|
||||
- **Android:** Upgrade gradle and kotlin. Make project compatible with AGP 8
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Web:** Add try-catch on initializing web plugin.
|
||||
- **iOS:** Support project import fallback if the generated compatibility header is not copied when this plugin is created as a library.
|
||||
|
||||
## 3.6.3
|
||||
|
||||
- **Android:** fixed initHandler with setEngineInitHandler
|
||||
- **Android:** refactored pause work around which fixed a couple of reports bugs
|
||||
|
||||
## 3.6.2
|
||||
|
||||
- **Android:** setEngine - adding initHandler within the method
|
||||
|
||||
## 3.6.1
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** setEngine initialization bug
|
||||
|
||||
### Features
|
||||
|
||||
- **Android:** added initHandler for android to help with engine initialization
|
||||
|
||||
## 3.6.0
|
||||
|
||||
### Features
|
||||
|
||||
- **Android:** Adding pause/continue
|
||||
- **Windows:** Adding callbacks
|
||||
|
||||
### Fixes
|
||||
|
||||
- **All:** Adding async/await to Channel invokeMethods
|
||||
|
||||
## 3.5.3
|
||||
|
||||
### Features
|
||||
|
||||
- **Android:** Adding getDefaultVoice
|
||||
|
||||
## 3.5.2
|
||||
|
||||
### Updates
|
||||
|
||||
- **Android:** Converting Java to Kotlin and package upgrades
|
||||
|
||||
## 3.5.1
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Web:** Fixing late variable and updating value being passed through a message channel to a primitive type
|
||||
|
||||
## 3.5.0
|
||||
|
||||
### Features
|
||||
|
||||
- **Web:** - Adding setVoice support
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Web:** Fix chrome bug
|
||||
|
||||
## 3.4.0
|
||||
|
||||
### Features
|
||||
|
||||
- **Windows:** - Adding Windows Support
|
||||
|
||||
## 3.3.3
|
||||
|
||||
### Fixes
|
||||
|
||||
- **iOS:** Fix synthesizeToFile fatal error
|
||||
|
||||
## 3.3.2
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Fix build.gradle missing property
|
||||
|
||||
## 3.3.1
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Web:** Fix awaitSpeakCompletion
|
||||
|
||||
## 3.3.0
|
||||
|
||||
### Features
|
||||
|
||||
- **iOS:** Adding support for AVAudioSession.Mode
|
||||
|
||||
## 3.2.4
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Fix compileSDK version
|
||||
|
||||
## 3.2.3
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Fix await speak completion when queue mode is set to 1
|
||||
|
||||
## 3.2.2
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Android 11 fix
|
||||
|
||||
## 3.2.1
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Fix deprecation warning
|
||||
|
||||
## 3.2.0
|
||||
|
||||
### Features
|
||||
|
||||
- **Android:** Adding get max speech input length
|
||||
- **Android:** Changed Android speed rate mapping
|
||||
- **iOS/macOS/Android:** Adding awaitSynthCompletion for synthesize to file
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Android:** Fix tts connection disconnection after long running time
|
||||
|
||||
## 3.1.0
|
||||
|
||||
### Features
|
||||
|
||||
- **Android:** Adding set engine and get default engine
|
||||
|
||||
## 3.0.0
|
||||
|
||||
### Features
|
||||
|
||||
- Adding null safety
|
||||
|
||||
## 2.1.0
|
||||
|
||||
### Features
|
||||
|
||||
- **Android:** Adding the ability to set the queue mode
|
||||
|
||||
## 2.0.0
|
||||
|
||||
### Features
|
||||
|
||||
- **Android:** Adding installed language check
|
||||
|
||||
### BREAKING CHANGES
|
||||
|
||||
- **iOS/Android:** Adding voice name and locale to voice methods
|
||||
|
||||
## 1.3.0
|
||||
|
||||
- All: Adding await speak completion
|
||||
|
||||
## 1.2.7
|
||||
|
||||
- iOS: Adding utterance settings to synthesizeToFile
|
||||
- Android: Fix crash when utterance completes after Engine is detached
|
||||
|
||||
## 1.2.6
|
||||
|
||||
- Android: Fixing new API onAttachedToEngine call
|
||||
|
||||
## 1.2.5
|
||||
|
||||
- macOS: Adding support
|
||||
|
||||
## 1.2.4
|
||||
|
||||
- iOS: Deactivate audio session only when needed
|
||||
- Android: Better exception handling for getLanguages
|
||||
- Android: Adding getEngines
|
||||
- Android: Adding new Android plugin APIs
|
||||
|
||||
## 1.2.3
|
||||
|
||||
- iOS: Adding synthesize to file
|
||||
- iOS: Fix set category ios
|
||||
|
||||
## 1.2.2
|
||||
|
||||
- Web: Adding pause and continue
|
||||
|
||||
## 1.2.1
|
||||
|
||||
- iOS: Fix setting iOS Category
|
||||
- iOS/Android: Adding additional platform calls
|
||||
|
||||
## 1.2.0
|
||||
|
||||
- iOS: Adding Set Audio Session Category
|
||||
- Android: Bug fixes
|
||||
|
||||
## 1.1.0
|
||||
|
||||
- iOS: Adding Pause
|
||||
- iOS: Adding set Shared Instance
|
||||
|
||||
## 1.0.0
|
||||
|
||||
- iOS/Android: Feature - Speech marks
|
||||
- iOS/Android: Breaking changes to Speech rate
|
||||
|
||||
## 0.9.2
|
||||
|
||||
- iOS: Changing audio session to playAndRecord
|
||||
|
||||
## 0.9.1
|
||||
|
||||
- Android: Fixing method call error
|
||||
|
||||
## 0.9.0
|
||||
|
||||
- Android: Adding synthesize to file
|
||||
|
||||
## 0.8.7
|
||||
|
||||
- Android: Fix sporadic ANR on initialization
|
||||
|
||||
## 0.8.6
|
||||
|
||||
- iOS: Reducing volume of other sessions while TTS is playing
|
||||
|
||||
## 0.8.5
|
||||
|
||||
- Android: Fix Android async platform initialization
|
||||
- Android: Removing initHandler
|
||||
|
||||
## 0.8.2
|
||||
|
||||
- Web: Adding isLanguageAvailable method
|
||||
- All: Fixing isLanguageAvailable platform channel and making it case insensitive
|
||||
|
||||
## 0.8.0
|
||||
|
||||
- Web: Adding Web Support
|
||||
|
||||
## 0.7.0
|
||||
|
||||
- iOS: Adding Swift version 4.2 to podspec and correct audio playback category
|
||||
|
||||
## 0.6.0
|
||||
|
||||
- Android: AndroidX support
|
||||
|
||||
## 0.5.2
|
||||
|
||||
- Android: Bug Fix on isLanguageAvailable
|
||||
|
||||
## 0.5.1
|
||||
|
||||
- Applying flutter format to fix health suggestion
|
||||
|
||||
## 0.5.0
|
||||
|
||||
- Android: Adding silence before speak
|
||||
- Android: Removing deprecated API
|
||||
|
||||
## 0.2.6
|
||||
|
||||
- IOS: Add voice selection implementation
|
||||
|
||||
## 0.2.5
|
||||
|
||||
- Android: Ensure invokeMethod runs on main thread
|
||||
|
||||
## 0.2.4
|
||||
|
||||
- Android: setting minSDK back to 21 and adding instructions to readme
|
||||
- Android: Adding fallback for getLanguages and defaultLanguage
|
||||
|
||||
## 0.2.3
|
||||
|
||||
- IOS: Audio continues with the Ring/Silent switch set to silent
|
||||
|
||||
## 0.2.2
|
||||
|
||||
- Android: Fixing Locale bug
|
||||
|
||||
## 0.2.1
|
||||
|
||||
- IOS: Fixing getLanguages bug
|
||||
|
||||
## 0.2.0
|
||||
|
||||
- Android: Adding exception catch for samsung devices
|
||||
- Android: Using default com.google.android.tts engine
|
||||
- Android: Get and Set Voice
|
||||
- Android: InitHandler
|
||||
- Cleaning up the example
|
||||
|
||||
## 0.1.2
|
||||
|
||||
- Support for Android background execution
|
||||
- Updating Android build gradle version to 3.2.1
|
||||
|
||||
## 0.1.1
|
||||
|
||||
- Fixing TTS bound error in the example
|
||||
- Fixing default voice language not found error on Android
|
||||
|
||||
## 0.1.0
|
||||
|
||||
- Updating version for improved maintenance score
|
||||
- Updating package description for improved maintenance score
|
||||
|
||||
## 0.0.8
|
||||
|
||||
- Adding analysis_options.yaml for improved health score
|
||||
- Fixing info/errors from flutter analyze
|
||||
|
||||
## 0.0.7
|
||||
|
||||
- Updating SDK version in pubspec.yaml
|
||||
- Adding package link to README
|
||||
- Fixing language string warning received from xcode
|
||||
|
||||
## 0.0.6
|
||||
|
||||
- Android: Upgrading Gradle 4.1 to 4.4
|
||||
- Android: Setting minSdk version to 21
|
||||
- Android: Adding try/catch to getAvailableLanguages & getDefaultVoice methods (Issues with API 21 & 22)
|
||||
|
||||
## 0.0.5
|
||||
|
||||
- Adding IOS/Android isLanguageAvailable
|
||||
- Rename setRate to setSpeechRate
|
||||
|
||||
## 0.0.4
|
||||
|
||||
- Simplify podspec for Cocoapods 1.5.0
|
||||
|
||||
## 0.0.3
|
||||
|
||||
- Adding IOS/Android speech pitch and volume
|
||||
|
||||
## 0.0.2
|
||||
|
||||
- Flutter formatting and fixing pubspec sdk versioning
|
||||
|
||||
## 0.0.1
|
||||
|
||||
- first POC :
|
||||
- methods : speak, stop, setRate, setLangauge, getLanguages
|
||||
- a globalHandler for completion
|
||||
21
third_party/flutter_tts/LICENSE
vendored
Normal file
21
third_party/flutter_tts/LICENSE
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2018 Daniel Lutton
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue