neoagent 2.3.1-beta.20 → 2.3.1-beta.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/flutter_app/.metadata +42 -0
  2. package/flutter_app/README.md +21 -0
  3. package/flutter_app/analysis_options.yaml +32 -0
  4. package/flutter_app/android/app/build.gradle.kts +109 -0
  5. package/flutter_app/android/app/src/debug/AndroidManifest.xml +7 -0
  6. package/flutter_app/android/app/src/main/AndroidManifest.xml +147 -0
  7. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/MainActivity.kt +747 -0
  8. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthConnectGateway.kt +280 -0
  9. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthSyncNotifications.kt +113 -0
  10. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthSyncPayload.kt +57 -0
  11. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthSyncScheduler.kt +78 -0
  12. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthSyncWorker.kt +253 -0
  13. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/PermissionsRationaleActivity.kt +46 -0
  14. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingBootReceiver.kt +21 -0
  15. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingForegroundService.kt +586 -0
  16. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingStateStore.kt +78 -0
  17. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingUploadClient.kt +104 -0
  18. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/AiHomeWidgetProvider.kt +457 -0
  19. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/AiWidgetStore.kt +194 -0
  20. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/VoiceLaunchWidgetProvider.kt +67 -0
  21. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/WidgetConfigActivity.kt +228 -0
  22. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/WidgetSyncScheduler.kt +72 -0
  23. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/WidgetSyncWorker.kt +186 -0
  24. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/WidgetTaskRunWorker.kt +210 -0
  25. package/flutter_app/android/app/src/main/res/drawable/launch_background.xml +12 -0
  26. package/flutter_app/android/app/src/main/res/drawable/neoagent_ai_widget_bg.xml +11 -0
  27. package/flutter_app/android/app/src/main/res/drawable/neoagent_ai_widget_task_bg.xml +8 -0
  28. package/flutter_app/android/app/src/main/res/drawable-v21/launch_background.xml +12 -0
  29. package/flutter_app/android/app/src/main/res/layout/neoagent_ai_widget.xml +138 -0
  30. package/flutter_app/android/app/src/main/res/layout/neoagent_ai_widget_task_row.xml +52 -0
  31. package/flutter_app/android/app/src/main/res/layout/neoagent_voice_widget.xml +49 -0
  32. package/flutter_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  33. package/flutter_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  34. package/flutter_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  35. package/flutter_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  36. package/flutter_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  37. package/flutter_app/android/app/src/main/res/values/strings.xml +12 -0
  38. package/flutter_app/android/app/src/main/res/values/styles.xml +18 -0
  39. package/flutter_app/android/app/src/main/res/values-night/styles.xml +18 -0
  40. package/flutter_app/android/app/src/main/res/xml/file_paths.xml +6 -0
  41. package/flutter_app/android/app/src/main/res/xml/neoagent_ai_widget_info.xml +12 -0
  42. package/flutter_app/android/app/src/main/res/xml/neoagent_voice_widget_info.xml +12 -0
  43. package/flutter_app/android/app/src/profile/AndroidManifest.xml +7 -0
  44. package/flutter_app/android/build.gradle.kts +24 -0
  45. package/flutter_app/android/ci-release.keystore +0 -0
  46. package/flutter_app/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  47. package/flutter_app/android/gradle.properties +3 -0
  48. package/flutter_app/android/key.properties +4 -0
  49. package/flutter_app/android/settings.gradle.kts +26 -0
  50. package/flutter_app/assets/branding/app_icon_1024.png +0 -0
  51. package/flutter_app/assets/branding/app_icon_128.png +0 -0
  52. package/flutter_app/assets/branding/app_icon_192.png +0 -0
  53. package/flutter_app/assets/branding/app_icon_256.png +0 -0
  54. package/flutter_app/assets/branding/app_icon_32.png +0 -0
  55. package/flutter_app/assets/branding/app_icon_512.png +0 -0
  56. package/flutter_app/assets/branding/app_icon_64.png +0 -0
  57. package/flutter_app/assets/branding/tray_icon_template.png +0 -0
  58. package/flutter_app/lib/features/location/location_service.dart +119 -0
  59. package/flutter_app/lib/features/notifications/notification_interceptor.dart +97 -0
  60. package/flutter_app/lib/main.dart +23057 -0
  61. package/flutter_app/lib/main_app_shell.dart +1682 -0
  62. package/flutter_app/lib/main_integrations.dart +931 -0
  63. package/flutter_app/lib/main_launcher.dart +959 -0
  64. package/flutter_app/lib/main_launcher_entry.dart +5 -0
  65. package/flutter_app/lib/main_models.dart +3473 -0
  66. package/flutter_app/lib/main_shared.dart +2861 -0
  67. package/flutter_app/lib/main_theme.dart +204 -0
  68. package/flutter_app/lib/main_voice_assistant.dart +831 -0
  69. package/flutter_app/lib/src/android_apk_drop_zone.dart +32 -0
  70. package/flutter_app/lib/src/android_apk_drop_zone_stub.dart +16 -0
  71. package/flutter_app/lib/src/android_apk_drop_zone_web.dart +348 -0
  72. package/flutter_app/lib/src/android_app_installer.dart +22 -0
  73. package/flutter_app/lib/src/android_app_installer_io.dart +122 -0
  74. package/flutter_app/lib/src/android_app_installer_stub.dart +21 -0
  75. package/flutter_app/lib/src/android_launcher_bridge.dart +239 -0
  76. package/flutter_app/lib/src/app_launch_bridge.dart +29 -0
  77. package/flutter_app/lib/src/app_release_updater.dart +511 -0
  78. package/flutter_app/lib/src/backend_client.dart +1833 -0
  79. package/flutter_app/lib/src/desktop_companion.dart +2 -0
  80. package/flutter_app/lib/src/desktop_companion_actions.dart +586 -0
  81. package/flutter_app/lib/src/desktop_companion_io.dart +538 -0
  82. package/flutter_app/lib/src/desktop_companion_stub.dart +59 -0
  83. package/flutter_app/lib/src/desktop_native_bridge.dart +91 -0
  84. package/flutter_app/lib/src/desktop_screen_capture.dart +21 -0
  85. package/flutter_app/lib/src/desktop_screen_capture_io.dart +142 -0
  86. package/flutter_app/lib/src/desktop_screen_capture_stub.dart +12 -0
  87. package/flutter_app/lib/src/diagnostics_logger.dart +119 -0
  88. package/flutter_app/lib/src/health_bridge.dart +136 -0
  89. package/flutter_app/lib/src/live_voice_capture.dart +85 -0
  90. package/flutter_app/lib/src/messaging_access_summary.dart +46 -0
  91. package/flutter_app/lib/src/network/app_http_client.dart +53 -0
  92. package/flutter_app/lib/src/network/app_http_client_factory.dart +6 -0
  93. package/flutter_app/lib/src/network/app_http_client_io.dart +138 -0
  94. package/flutter_app/lib/src/network/app_http_client_stub.dart +3 -0
  95. package/flutter_app/lib/src/network/app_http_client_web.dart +94 -0
  96. package/flutter_app/lib/src/oauth_launcher.dart +33 -0
  97. package/flutter_app/lib/src/oauth_launcher_io.dart +77 -0
  98. package/flutter_app/lib/src/oauth_launcher_stub.dart +33 -0
  99. package/flutter_app/lib/src/oauth_launcher_web.dart +107 -0
  100. package/flutter_app/lib/src/recording_bridge.dart +232 -0
  101. package/flutter_app/lib/src/recording_bridge_io.dart +1019 -0
  102. package/flutter_app/lib/src/recording_bridge_stub.dart +120 -0
  103. package/flutter_app/lib/src/recording_bridge_web.dart +689 -0
  104. package/flutter_app/lib/src/recording_payloads.dart +86 -0
  105. package/flutter_app/lib/src/theme/palette.dart +81 -0
  106. package/flutter_app/lib/src/widget_bridge.dart +49 -0
  107. package/flutter_app/linux/CMakeLists.txt +128 -0
  108. package/flutter_app/linux/flutter/CMakeLists.txt +88 -0
  109. package/flutter_app/linux/flutter/generated_plugin_registrant.cc +43 -0
  110. package/flutter_app/linux/flutter/generated_plugin_registrant.h +15 -0
  111. package/flutter_app/linux/flutter/generated_plugins.cmake +31 -0
  112. package/flutter_app/linux/runner/CMakeLists.txt +26 -0
  113. package/flutter_app/linux/runner/main.cc +6 -0
  114. package/flutter_app/linux/runner/my_application.cc +144 -0
  115. package/flutter_app/linux/runner/my_application.h +18 -0
  116. package/flutter_app/linux/runner/resources/app_icon.png +0 -0
  117. package/flutter_app/macos/Flutter/Flutter-Debug.xcconfig +2 -0
  118. package/flutter_app/macos/Flutter/Flutter-Release.xcconfig +2 -0
  119. package/flutter_app/macos/Flutter/GeneratedPluginRegistrant.swift +40 -0
  120. package/flutter_app/macos/Podfile +42 -0
  121. package/flutter_app/macos/Podfile.lock +87 -0
  122. package/flutter_app/macos/Runner/AppDelegate.swift +576 -0
  123. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
  124. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png +0 -0
  125. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png +0 -0
  126. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png +0 -0
  127. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png +0 -0
  128. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png +0 -0
  129. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png +0 -0
  130. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png +0 -0
  131. package/flutter_app/macos/Runner/Base.lproj/MainMenu.xib +342 -0
  132. package/flutter_app/macos/Runner/Configs/AppInfo.xcconfig +14 -0
  133. package/flutter_app/macos/Runner/Configs/Debug.xcconfig +2 -0
  134. package/flutter_app/macos/Runner/Configs/Release.xcconfig +2 -0
  135. package/flutter_app/macos/Runner/Configs/Warnings.xcconfig +13 -0
  136. package/flutter_app/macos/Runner/DebugProfile.entitlements +16 -0
  137. package/flutter_app/macos/Runner/Info.plist +36 -0
  138. package/flutter_app/macos/Runner/MainFlutterWindow.swift +19 -0
  139. package/flutter_app/macos/Runner/Release.entitlements +12 -0
  140. package/flutter_app/macos/Runner.xcodeproj/project.pbxproj +801 -0
  141. package/flutter_app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  142. package/flutter_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +99 -0
  143. package/flutter_app/macos/Runner.xcworkspace/contents.xcworkspacedata +10 -0
  144. package/flutter_app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  145. package/flutter_app/macos/RunnerTests/RunnerTests.swift +12 -0
  146. package/flutter_app/patch_strings.py +12 -0
  147. package/flutter_app/pubspec.lock +1088 -0
  148. package/flutter_app/pubspec.yaml +53 -0
  149. package/flutter_app/test/messaging_access_summary_test.dart +22 -0
  150. package/flutter_app/test/recording_payloads_test.dart +53 -0
  151. package/flutter_app/third_party/desktop_audio_capture/LICENSE +21 -0
  152. package/flutter_app/third_party/desktop_audio_capture/README.md +262 -0
  153. package/flutter_app/third_party/desktop_audio_capture/lib/audio_capture.dart +65 -0
  154. package/flutter_app/third_party/desktop_audio_capture/lib/config/mic_audio_config.dart +153 -0
  155. package/flutter_app/third_party/desktop_audio_capture/lib/config/system_adudio_config.dart +110 -0
  156. package/flutter_app/third_party/desktop_audio_capture/lib/mic/mic_audio_capture.dart +461 -0
  157. package/flutter_app/third_party/desktop_audio_capture/lib/model/audio_status.dart +91 -0
  158. package/flutter_app/third_party/desktop_audio_capture/lib/model/decibel_data.dart +106 -0
  159. package/flutter_app/third_party/desktop_audio_capture/lib/model/input_device_type.dart +219 -0
  160. package/flutter_app/third_party/desktop_audio_capture/lib/system/system_audio_capture.dart +336 -0
  161. package/flutter_app/third_party/desktop_audio_capture/linux/CMakeLists.txt +101 -0
  162. package/flutter_app/third_party/desktop_audio_capture/linux/audio_capture_plugin.cc +692 -0
  163. package/flutter_app/third_party/desktop_audio_capture/linux/include/audio_capture/audio_capture_plugin.h +35 -0
  164. package/flutter_app/third_party/desktop_audio_capture/linux/include/audio_capture/mic_capture_plugin.h +36 -0
  165. package/flutter_app/third_party/desktop_audio_capture/linux/include/desktop_audio_capture/audio_capture_plugin.h +32 -0
  166. package/flutter_app/third_party/desktop_audio_capture/linux/include/desktop_audio_capture/mic_capture_plugin.h +32 -0
  167. package/flutter_app/third_party/desktop_audio_capture/linux/mic_capture_plugin.cc +878 -0
  168. package/flutter_app/third_party/desktop_audio_capture/macos/Classes/AudioCapturePlugin.swift +27 -0
  169. package/flutter_app/third_party/desktop_audio_capture/macos/Classes/MicCapturePlugin.swift +1172 -0
  170. package/flutter_app/third_party/desktop_audio_capture/macos/Classes/SystemCapturePlugin.swift +655 -0
  171. package/flutter_app/third_party/desktop_audio_capture/macos/Resources/PrivacyInfo.xcprivacy +12 -0
  172. package/flutter_app/third_party/desktop_audio_capture/macos/desktop_audio_capture.podspec +30 -0
  173. package/flutter_app/third_party/desktop_audio_capture/pubspec.yaml +87 -0
  174. package/flutter_app/third_party/desktop_audio_capture/windows/CMakeLists.txt +105 -0
  175. package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin.cpp +80 -0
  176. package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin.h +31 -0
  177. package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin_c_api.cpp +12 -0
  178. package/flutter_app/third_party/desktop_audio_capture/windows/include/audio_capture/audio_capture_plugin_c_api.h +23 -0
  179. package/flutter_app/third_party/desktop_audio_capture/windows/include/desktop_audio_capture/audio_capture_plugin.h +25 -0
  180. package/flutter_app/third_party/desktop_audio_capture/windows/mic_capture_plugin.cpp +1117 -0
  181. package/flutter_app/third_party/desktop_audio_capture/windows/mic_capture_plugin.h +115 -0
  182. package/flutter_app/third_party/desktop_audio_capture/windows/system_audio_capture_plugin.cpp +777 -0
  183. package/flutter_app/third_party/desktop_audio_capture/windows/system_audio_capture_plugin.h +87 -0
  184. package/flutter_app/third_party/flutter_secure_storage_linux/linux/CMakeLists.txt +30 -0
  185. package/flutter_app/third_party/flutter_secure_storage_linux/linux/flutter_secure_storage_linux_plugin.cc +215 -0
  186. package/flutter_app/third_party/flutter_secure_storage_linux/linux/include/flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h +27 -0
  187. package/flutter_app/third_party/flutter_secure_storage_linux/pubspec.yaml +20 -0
  188. package/flutter_app/tool/generate_desktop_branding.py +219 -0
  189. package/flutter_app/web/favicon.png +0 -0
  190. package/flutter_app/web/favicon.svg +12 -0
  191. package/flutter_app/web/icons/Icon-192.png +0 -0
  192. package/flutter_app/web/icons/Icon-512.png +0 -0
  193. package/flutter_app/web/icons/Icon-maskable-192.png +0 -0
  194. package/flutter_app/web/icons/Icon-maskable-512.png +0 -0
  195. package/flutter_app/web/index.html +39 -0
  196. package/flutter_app/web/manifest.json +35 -0
  197. package/flutter_app/windows/CMakeLists.txt +108 -0
  198. package/flutter_app/windows/flutter/CMakeLists.txt +109 -0
  199. package/flutter_app/windows/flutter/generated_plugin_registrant.cc +47 -0
  200. package/flutter_app/windows/flutter/generated_plugin_registrant.h +15 -0
  201. package/flutter_app/windows/flutter/generated_plugins.cmake +35 -0
  202. package/flutter_app/windows/runner/CMakeLists.txt +41 -0
  203. package/flutter_app/windows/runner/Runner.rc +121 -0
  204. package/flutter_app/windows/runner/flutter_window.cpp +533 -0
  205. package/flutter_app/windows/runner/flutter_window.h +37 -0
  206. package/flutter_app/windows/runner/main.cpp +53 -0
  207. package/flutter_app/windows/runner/resource.h +16 -0
  208. package/flutter_app/windows/runner/resources/app_icon.ico +0 -0
  209. package/flutter_app/windows/runner/runner.exe.manifest +14 -0
  210. package/flutter_app/windows/runner/utils.cpp +65 -0
  211. package/flutter_app/windows/runner/utils.h +19 -0
  212. package/flutter_app/windows/runner/win32_window.cpp +299 -0
  213. package/flutter_app/windows/runner/win32_window.h +102 -0
  214. package/lib/install_helpers.js +13 -0
  215. package/lib/manager.js +0 -4
  216. package/package.json +2 -1
  217. package/server/public/flutter_bootstrap.js +1 -1
@@ -0,0 +1,42 @@
1
+ # This file tracks properties of this Flutter project.
2
+ # Used by Flutter tool to assess capabilities and perform upgrades etc.
3
+ #
4
+ # This file should be version controlled and should not be manually edited.
5
+
6
+ version:
7
+ revision: "ac4e799d237041cf905519190471f657b657155a"
8
+ channel: "stable"
9
+
10
+ project_type: app
11
+
12
+ # Tracks metadata for the flutter migrate command
13
+ migration:
14
+ platforms:
15
+ - platform: root
16
+ create_revision: ac4e799d237041cf905519190471f657b657155a
17
+ base_revision: ac4e799d237041cf905519190471f657b657155a
18
+ - platform: android
19
+ create_revision: ac4e799d237041cf905519190471f657b657155a
20
+ base_revision: ac4e799d237041cf905519190471f657b657155a
21
+ - platform: linux
22
+ create_revision: ac4e799d237041cf905519190471f657b657155a
23
+ base_revision: ac4e799d237041cf905519190471f657b657155a
24
+ - platform: macos
25
+ create_revision: ac4e799d237041cf905519190471f657b657155a
26
+ base_revision: ac4e799d237041cf905519190471f657b657155a
27
+ - platform: web
28
+ create_revision: ac4e799d237041cf905519190471f657b657155a
29
+ base_revision: ac4e799d237041cf905519190471f657b657155a
30
+ - platform: windows
31
+ create_revision: ac4e799d237041cf905519190471f657b657155a
32
+ base_revision: ac4e799d237041cf905519190471f657b657155a
33
+
34
+ # User provided section
35
+
36
+ # List of Local paths (relative to this file) that should be
37
+ # ignored by the migrate tool.
38
+ #
39
+ # Files that are not part of the templates will be ignored by default.
40
+ unmanaged_files:
41
+ - 'lib/main.dart'
42
+ - 'ios/Runner.xcodeproj/project.pbxproj'
@@ -0,0 +1,21 @@
1
+ # neoagent_flutter
2
+
3
+ A new Flutter project.
4
+
5
+ ## Getting Started
6
+
7
+ This project is a starting point for a Flutter application.
8
+
9
+ A few resources to get you started if this is your first Flutter project:
10
+
11
+ - [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
12
+ - [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
13
+
14
+ For help getting started with Flutter development, view the
15
+ [online documentation](https://docs.flutter.dev/), which offers tutorials,
16
+ samples, guidance on mobile development, and a full API reference.
17
+
18
+ ## Desktop audio capture note
19
+
20
+ Desktop recording currently depends on `desktop_audio_capture` and is pinned to
21
+ `0.0.2` to avoid unexpected API shifts from automatic minor updates.
@@ -0,0 +1,32 @@
1
+ # This file configures the analyzer, which statically analyzes Dart code to
2
+ # check for errors, warnings, and lints.
3
+ #
4
+ # The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5
+ # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6
+ # invoked from the command line by running `flutter analyze`.
7
+
8
+ # The following line activates a set of recommended lints for Flutter apps,
9
+ # packages, and plugins designed to encourage good coding practices.
10
+ include: package:flutter_lints/flutter.yaml
11
+
12
+ analyzer:
13
+ exclude:
14
+ - third_party/**
15
+
16
+ linter:
17
+ # The lint rules applied to this project can be customized in the
18
+ # section below to disable rules from the `package:flutter_lints/flutter.yaml`
19
+ # included above or to enable additional rules. A list of all available lints
20
+ # and their documentation is published at https://dart.dev/lints.
21
+ #
22
+ # Instead of disabling a lint rule for the entire project in the
23
+ # section below, it can also be suppressed for a single line of code
24
+ # or a specific dart file by using the `// ignore: name_of_lint` and
25
+ # `// ignore_for_file: name_of_lint` syntax on the line or in the file
26
+ # producing the lint.
27
+ rules:
28
+ # avoid_print: false # Uncomment to disable the `avoid_print` rule
29
+ # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
30
+
31
+ # Additional information about this file can be found at
32
+ # https://dart.dev/guides/language/analysis-options
@@ -0,0 +1,109 @@
1
+ import java.util.Properties
2
+
3
+ plugins {
4
+ id("com.android.application")
5
+ id("kotlin-android")
6
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
7
+ id("dev.flutter.flutter-gradle-plugin")
8
+ }
9
+
10
+ val envReleaseKeystorePath = System.getenv("ANDROID_KEYSTORE_PATH")?.trim().orEmpty()
11
+ val envReleaseKeystorePassword = System.getenv("ANDROID_KEYSTORE_PASSWORD")?.trim().orEmpty()
12
+ val envReleaseKeyAlias = System.getenv("ANDROID_KEY_ALIAS")?.trim().orEmpty()
13
+ val envReleaseKeyPassword = System.getenv("ANDROID_KEY_PASSWORD")?.trim().orEmpty()
14
+ val keyPropertiesFile = rootProject.file("key.properties")
15
+ val keyProperties = Properties()
16
+ if (keyPropertiesFile.exists()) {
17
+ keyPropertiesFile.inputStream().use(keyProperties::load)
18
+ }
19
+ val repoReleaseKeystorePath = keyProperties.getProperty("storeFile", "").trim()
20
+ val repoReleaseKeystorePassword = keyProperties.getProperty("storePassword", "").trim()
21
+ val repoReleaseKeyAlias = keyProperties.getProperty("keyAlias", "").trim()
22
+ val repoReleaseKeyPassword = keyProperties.getProperty("keyPassword", "").trim()
23
+ val hasEnvReleaseSigning =
24
+ envReleaseKeystorePath.isNotEmpty() &&
25
+ envReleaseKeystorePassword.isNotEmpty() &&
26
+ envReleaseKeyAlias.isNotEmpty() &&
27
+ envReleaseKeyPassword.isNotEmpty()
28
+ val hasRepoReleaseSigning =
29
+ repoReleaseKeystorePath.isNotEmpty() &&
30
+ repoReleaseKeystorePassword.isNotEmpty() &&
31
+ repoReleaseKeyAlias.isNotEmpty() &&
32
+ repoReleaseKeyPassword.isNotEmpty()
33
+ val launcherBuild =
34
+ System.getenv("NEOAGENT_ANDROID_LAUNCHER_MODE")
35
+ ?.trim()
36
+ ?.lowercase() in setOf("1", "true", "yes", "on")
37
+ val applicationIdValue =
38
+ if (launcherBuild) "com.neoagent.flutter_app.launcher" else "com.neoagent.flutter_app"
39
+ val applicationLabelValue = if (launcherBuild) "NeoAgent Launcher" else "NeoAgent"
40
+ val androidAppModeValue = if (launcherBuild) "launcher" else "standard"
41
+ val launcherHomeEnabledValue = launcherBuild.toString()
42
+
43
+ android {
44
+ namespace = "com.neoagent.flutter_app"
45
+ compileSdk = flutter.compileSdkVersion
46
+ ndkVersion = flutter.ndkVersion
47
+
48
+ compileOptions {
49
+ sourceCompatibility = JavaVersion.VERSION_11
50
+ targetCompatibility = JavaVersion.VERSION_11
51
+ }
52
+
53
+ kotlinOptions {
54
+ jvmTarget = JavaVersion.VERSION_11.toString()
55
+ }
56
+
57
+ defaultConfig {
58
+ applicationId = applicationIdValue
59
+ minSdk = 26
60
+ targetSdk = flutter.targetSdkVersion
61
+ versionCode = flutter.versionCode
62
+ versionName = flutter.versionName
63
+ manifestPlaceholders["neoagentAppLabel"] = applicationLabelValue
64
+ manifestPlaceholders["neoagentAppMode"] = androidAppModeValue
65
+ manifestPlaceholders["neoagentLauncherHomeEnabled"] =
66
+ launcherHomeEnabledValue
67
+ }
68
+
69
+ signingConfigs {
70
+ if (hasEnvReleaseSigning) {
71
+ create("release") {
72
+ storeFile = file(envReleaseKeystorePath)
73
+ storePassword = envReleaseKeystorePassword
74
+ keyAlias = envReleaseKeyAlias
75
+ keyPassword = envReleaseKeyPassword
76
+ }
77
+ } else if (hasRepoReleaseSigning) {
78
+ create("release") {
79
+ storeFile = rootProject.file(repoReleaseKeystorePath)
80
+ storePassword = repoReleaseKeystorePassword
81
+ keyAlias = repoReleaseKeyAlias
82
+ keyPassword = repoReleaseKeyPassword
83
+ }
84
+ }
85
+ }
86
+
87
+ buildTypes {
88
+ release {
89
+ signingConfig =
90
+ if (hasEnvReleaseSigning || hasRepoReleaseSigning) {
91
+ signingConfigs.getByName("release")
92
+ } else {
93
+ signingConfigs.getByName("debug")
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+ dependencies {
100
+ implementation("androidx.activity:activity-ktx:1.10.1")
101
+ implementation("androidx.health.connect:connect-client:1.1.0")
102
+ implementation("androidx.security:security-crypto:1.1.0")
103
+ implementation("androidx.work:work-runtime-ktx:2.10.1")
104
+ implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
105
+ }
106
+
107
+ flutter {
108
+ source = "../.."
109
+ }
@@ -0,0 +1,7 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ <!-- The INTERNET permission is required for development. Specifically,
3
+ the Flutter tool needs it to communicate with the running application
4
+ to allow setting breakpoints, to provide hot reload, etc.
5
+ -->
6
+ <uses-permission android:name="android.permission.INTERNET"/>
7
+ </manifest>
@@ -0,0 +1,147 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
+ xmlns:tools="http://schemas.android.com/tools">
3
+ <uses-permission android:name="android.permission.INTERNET" />
4
+ <uses-permission android:name="android.permission.CAMERA" />
5
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
6
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
7
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
8
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
9
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
10
+ <uses-permission android:name="android.permission.health.READ_STEPS" />
11
+ <uses-permission android:name="android.permission.health.READ_HEART_RATE" />
12
+ <uses-permission android:name="android.permission.health.READ_SLEEP" />
13
+ <uses-permission android:name="android.permission.health.READ_EXERCISE" />
14
+ <uses-permission android:name="android.permission.health.READ_WEIGHT" />
15
+ <uses-permission android:name="android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND" />
16
+ <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
17
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
18
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
19
+ <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
20
+
21
+ <queries>
22
+ <package android:name="com.google.android.apps.healthdata" />
23
+ <intent>
24
+ <action android:name="android.intent.action.PROCESS_TEXT"/>
25
+ <data android:mimeType="text/plain"/>
26
+ </intent>
27
+ </queries>
28
+
29
+ <application
30
+ android:label="${neoagentAppLabel}"
31
+ android:name="${applicationName}"
32
+ android:icon="@mipmap/ic_launcher"
33
+ android:usesCleartextTraffic="true">
34
+ <activity
35
+ android:name=".MainActivity"
36
+ android:exported="true"
37
+ android:launchMode="singleTop"
38
+ android:taskAffinity=""
39
+ android:theme="@style/LaunchTheme"
40
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
41
+ android:hardwareAccelerated="true"
42
+ android:windowSoftInputMode="adjustResize">
43
+ <!-- Specifies an Android theme to apply to this Activity as soon as
44
+ the Android process has started. This theme is visible to the user
45
+ while the Flutter UI initializes. After that, this theme continues
46
+ to determine the Window background behind the Flutter UI. -->
47
+ <meta-data
48
+ android:name="io.flutter.embedding.android.NormalTheme"
49
+ android:resource="@style/NormalTheme"
50
+ />
51
+ <intent-filter>
52
+ <action android:name="android.intent.action.MAIN"/>
53
+ <category android:name="android.intent.category.LAUNCHER"/>
54
+ </intent-filter>
55
+ </activity>
56
+ <provider
57
+ android:name="androidx.core.content.FileProvider"
58
+ android:authorities="${applicationId}.fileprovider"
59
+ android:exported="false"
60
+ android:grantUriPermissions="true">
61
+ <meta-data
62
+ android:name="android.support.FILE_PROVIDER_PATHS"
63
+ android:resource="@xml/file_paths" />
64
+ </provider>
65
+ <activity-alias
66
+ android:name=".LauncherHomeAlias"
67
+ android:enabled="${neoagentLauncherHomeEnabled}"
68
+ android:exported="true"
69
+ android:label="${neoagentAppLabel}"
70
+ android:targetActivity=".MainActivity">
71
+ <intent-filter>
72
+ <action android:name="android.intent.action.MAIN" />
73
+ <category android:name="android.intent.category.HOME" />
74
+ <category android:name="android.intent.category.DEFAULT" />
75
+ </intent-filter>
76
+ </activity-alias>
77
+ <activity
78
+ android:name=".health.PermissionsRationaleActivity"
79
+ android:exported="false" />
80
+ <activity
81
+ android:name=".widgets.WidgetConfigActivity"
82
+ android:exported="true"
83
+ android:theme="@style/LaunchTheme" />
84
+ <activity-alias
85
+ android:name=".ViewPermissionUsageActivity"
86
+ android:exported="true"
87
+ android:permission="android.permission.START_VIEW_PERMISSION_USAGE"
88
+ android:targetActivity=".health.PermissionsRationaleActivity">
89
+ <intent-filter>
90
+ <action android:name="android.intent.action.VIEW_PERMISSION_USAGE" />
91
+ <category android:name="android.intent.category.HEALTH_PERMISSIONS" />
92
+ </intent-filter>
93
+ </activity-alias>
94
+ <service
95
+ android:name="androidx.work.impl.foreground.SystemForegroundService"
96
+ android:foregroundServiceType="dataSync"
97
+ tools:node="merge" />
98
+ <service
99
+ android:name=".recording.RecordingForegroundService"
100
+ android:exported="false"
101
+ android:foregroundServiceType="microphone|connectedDevice" />
102
+ <receiver
103
+ android:name=".recording.RecordingBootReceiver"
104
+ android:enabled="true"
105
+ android:exported="false">
106
+ <intent-filter>
107
+ <action android:name="android.intent.action.BOOT_COMPLETED" />
108
+ </intent-filter>
109
+ </receiver>
110
+ <receiver
111
+ android:name=".widgets.AiHomeWidgetProvider"
112
+ android:exported="true">
113
+ <intent-filter>
114
+ <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
115
+ </intent-filter>
116
+ <meta-data
117
+ android:name="android.appwidget.provider"
118
+ android:resource="@xml/neoagent_ai_widget_info" />
119
+ </receiver>
120
+ <receiver
121
+ android:name=".widgets.VoiceLaunchWidgetProvider"
122
+ android:exported="true">
123
+ <intent-filter>
124
+ <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
125
+ </intent-filter>
126
+ <meta-data
127
+ android:name="android.appwidget.provider"
128
+ android:resource="@xml/neoagent_voice_widget_info" />
129
+ </receiver>
130
+ <meta-data
131
+ android:name="com.neoagent.APP_MODE"
132
+ android:value="${neoagentAppMode}" />
133
+ <meta-data
134
+ android:name="flutterEmbedding"
135
+ android:value="2" />
136
+
137
+ <!-- Notification Listener Service for Interception -->
138
+ <service android:name="notification.listener.service.NotificationListener"
139
+ android:label="NeoAgent Notifications"
140
+ android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
141
+ android:exported="true">
142
+ <intent-filter>
143
+ <action android:name="android.service.notification.NotificationListenerService" />
144
+ </intent-filter>
145
+ </service>
146
+ </application>
147
+ </manifest>