name: chanora_flutter description: "Chanora — cross-platform voice client for TeamSpeak-compatible servers." # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 # followed by an optional build number separated by a +. # Both the version and the builder number may be overridden in flutter # build by specifying --build-name and --build-number, respectively. # In Android, build-name is used as versionName while build-number used as versionCode. # Read more about Android versioning at https://developer.android.com/studio/publish/versioning # In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. version: 0.3.0+100 environment: sdk: ^3.11.5 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions # consider running `flutter pub upgrade --major-versions`. Alternatively, # dependencies can be manually updated by changing the version numbers below to # the latest version available on pub.dev. To see which dependencies have newer # versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: any flutter_rust_bridge: 2.12.0 freezed_annotation: ^3.1.0 connectivity_plus: ^7.1.1 path_provider: ^2.1.4 # audio_session 0.2.3 (MIT, Ryan Heise, 865k downloads) gives us # programmatic access to AVAudioSession on iOS + AudioManager on # Android. We use: # # * AVAudioSession.availableInputs \u2014 enumerate real input ports # (Built-in Mic, Bluetooth HFP, wired headset, USB). # * AVAudioSession.currentRoute \u2014 inputs + outputs of the # active route. # * AVAudioSession.setPreferredInput(port) \u2014 switch input # (also drives matching output for HFP devices). # * AVAudioSession.overrideOutputAudioPort(speaker|none) \u2014 # toggle the built-in receiver/earpiece vs speakerphone. # * AVAudioSession.routeChangeStream \u2014 live notifications when # the user plugs / unplugs / connects a device. # # This is the right primitive for a VoIP-style 'pick speaker / # receiver / AirPods / wired' picker. Discord, WhatsApp, FaceTime # all do exactly this. We previously tried audio_router 1.1.1 # whose iOS path is AVRoutePickerView (the AirPlay button) \u2014 the # wrong UI: only lists AirPlay output destinations, not the # speaker/receiver/Bluetooth choices we actually want. audio_session: ^0.2.3 # package_info_plus 8.x (Flutter Community Plus, BSD-3, ~3M # downloads) exposes the platform-canonical app version + build # number at runtime so the About dialog (and any future # diagnostic export) can display "v1.0.0-rc.8+60" sourced from # the SAME pubspec.yaml field that drives CFBundleShortVersionString # + CFBundleVersion on iOS and versionName + versionCode on # Android. Single source of truth means the version on the # iPhone screen always matches the commit that built it; no # more "am I testing the right build?" question during the # iOS audio test cycle. package_info_plus: ^10.1.0 # Touch-only PTT feedback for mobile voice UX (P0 voice basics, # DEC-003 iOS 13 floor; haptic_kit supports iOS 12+). haptic_kit: ^1.0.0 flutter_foreground_task: ^9.2.2 flutter_local_notifications: ^22.0.0 url_launcher: ^6.3.2 shared_preferences: ^2.5.5 share_plus: ^13.1.0 dev_dependencies: flutter_test: sdk: flutter # The "flutter_lints" package below contains a set of recommended lints to # encourage good coding practices. The lint set provided by the package is # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. flutter_lints: ^6.0.0 freezed: ^3.2.5 build_runner: ^2.15.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec # The following section is specific to Flutter packages. flutter: # Generate localization bindings from lib/l10n/*.arb at build time. # Per DEC-015 (register v0.9.5) Chanora ships English + Chinese # Simplified at MVP with an i18n-ready architecture for additional # languages. generate: true # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. uses-material-design: true assets: - assets/models/silero_vad.onnx # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/to/resolution-aware-images # For details regarding adding assets from package dependencies, see # https://flutter.dev/to/asset-from-package # To add custom fonts to your application, add a fonts section here, # in this "flutter" section. Each entry in this list should have a # "family" key with the font family name, and a "fonts" key with a # list giving the asset and other descriptors for the font. For # example: # fonts: # - family: Schyler # fonts: # - asset: fonts/Schyler-Regular.ttf # - asset: fonts/Schyler-Italic.ttf # style: italic # - family: Trajan Pro # fonts: # - asset: fonts/TrajanPro.ttf # - asset: fonts/TrajanPro_Bold.ttf # weight: 700 # # For details regarding fonts from package dependencies, # see https://flutter.dev/to/font-from-package