~repos /only-bible-app

#kotlin#android#ios

GIT_CONFIG_PARAMETERS="'http.version=HTTP/1.1'" git clone https://git.pyrossh.dev/only-bible-app.git
Discussions: https://groups.google.com/g/rust-embed-devs

The only bible app you will ever need. No ads. No in-app purchases. No distractions.


Files changed (273) hide show
  1. .flutter-plugins-dependencies +1 -0
  2. .gitignore +5 -0
  3. .idea/deploymentTargetSelector.xml +1 -1
  4. .idea/gradle.xml +1 -1
  5. .metadata +19 -7
  6. android/.gitignore +2 -1
  7. android/Gemfile +0 -3
  8. android/Gemfile.lock +0 -218
  9. android/app/build.gradle +0 -88
  10. android/app/build.gradle.kts +44 -0
  11. android/app/src/main/AndroidManifest.xml +14 -4
  12. android/app/src/main/app_icon-playstore.png +0 -0
  13. android/app/src/main/kotlin/sh/pyros/only_bible_app/MainActivity.kt +1 -2
  14. android/app/src/main/res/drawable-hdpi/android12splash.png +0 -0
  15. android/app/src/main/res/drawable-hdpi/splash.png +0 -0
  16. android/app/src/main/res/drawable-mdpi/android12splash.png +0 -0
  17. android/app/src/main/res/drawable-mdpi/splash.png +0 -0
  18. android/app/src/main/res/drawable-night-hdpi/android12splash.png +0 -0
  19. android/app/src/main/res/drawable-night-mdpi/android12splash.png +0 -0
  20. android/app/src/main/res/drawable-night-xhdpi/android12splash.png +0 -0
  21. android/app/src/main/res/drawable-night-xxhdpi/android12splash.png +0 -0
  22. android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png +0 -0
  23. android/app/src/main/res/drawable-v21/background.png +0 -0
  24. android/app/src/main/res/drawable-v21/launch_background.xml +9 -6
  25. android/app/src/main/res/drawable-xhdpi/android12splash.png +0 -0
  26. android/app/src/main/res/drawable-xhdpi/splash.png +0 -0
  27. android/app/src/main/res/drawable-xxhdpi/android12splash.png +0 -0
  28. android/app/src/main/res/drawable-xxhdpi/splash.png +0 -0
  29. android/app/src/main/res/drawable-xxxhdpi/android12splash.png +0 -0
  30. android/app/src/main/res/drawable-xxxhdpi/splash.png +0 -0
  31. android/app/src/main/res/drawable/app_icon_background.xml +0 -22
  32. android/app/src/main/res/drawable/app_icon_foreground.xml +0 -16
  33. android/app/src/main/res/drawable/background.png +0 -0
  34. android/app/src/main/res/drawable/launch_background.xml +9 -6
  35. android/app/src/main/res/mipmap-anydpi-v26/app_icon.xml +0 -5
  36. android/app/src/main/res/mipmap-anydpi-v26/app_icon_round.xml +0 -5
  37. android/app/src/main/res/mipmap-hdpi/app_icon.webp +0 -0
  38. android/app/src/main/res/mipmap-hdpi/app_icon_round.webp +0 -0
  39. android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  40. android/app/src/main/res/mipmap-mdpi/app_icon.webp +0 -0
  41. android/app/src/main/res/mipmap-mdpi/app_icon_round.webp +0 -0
  42. android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  43. android/app/src/main/res/mipmap-xhdpi/app_icon.webp +0 -0
  44. android/app/src/main/res/mipmap-xhdpi/app_icon_round.webp +0 -0
  45. android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  46. android/app/src/main/res/mipmap-xxhdpi/app_icon.webp +0 -0
  47. android/app/src/main/res/mipmap-xxhdpi/app_icon_round.webp +0 -0
  48. android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  49. android/app/src/main/res/mipmap-xxxhdpi/app_icon.webp +0 -0
  50. android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.webp +0 -0
  51. android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  52. android/app/src/main/res/values-night-v31/styles.xml +0 -21
  53. android/app/src/main/res/values-night/styles.xml +0 -4
  54. android/app/src/main/res/values-v31/styles.xml +0 -21
  55. android/app/src/main/res/values/styles.xml +0 -4
  56. android/build.gradle +0 -18
  57. android/build.gradle.kts +24 -0
  58. android/fastlane/Appfile +0 -2
  59. android/fastlane/Fastfile +0 -38
  60. android/fastlane/metadata/android/en-GB/changelogs/10.txt +0 -2
  61. android/fastlane/metadata/android/en-GB/changelogs/9.txt +0 -2
  62. android/fastlane/metadata/android/en-GB/full_description.txt +0 -15
  63. android/fastlane/metadata/android/en-GB/images/featureGraphic.png +0 -0
  64. android/fastlane/metadata/android/en-GB/images/icon.png +0 -0
  65. android/fastlane/metadata/android/en-GB/images/phoneScreenshots/1_en-GB.png +0 -0
  66. android/fastlane/metadata/android/en-GB/images/phoneScreenshots/2_en-GB.png +0 -0
  67. android/fastlane/metadata/android/en-GB/images/phoneScreenshots/3_en-GB.png +0 -0
  68. android/fastlane/metadata/android/en-GB/images/phoneScreenshots/4_en-GB.png +0 -0
  69. android/fastlane/metadata/android/en-GB/images/phoneScreenshots/5_en-GB.png +0 -0
  70. android/fastlane/metadata/android/en-GB/images/phoneScreenshots/6_en-GB.png +0 -0
  71. android/fastlane/metadata/android/en-GB/images/phoneScreenshots/7_en-GB.png +0 -0
  72. android/fastlane/metadata/android/en-GB/images/sevenInchScreenshots/1_en-GB.png +0 -0
  73. android/fastlane/metadata/android/en-GB/images/sevenInchScreenshots/2_en-GB.png +0 -0
  74. android/fastlane/metadata/android/en-GB/images/sevenInchScreenshots/3_en-GB.png +0 -0
  75. android/fastlane/metadata/android/en-GB/images/sevenInchScreenshots/4_en-GB.png +0 -0
  76. android/fastlane/metadata/android/en-GB/images/tenInchScreenshots/1_en-GB.png +0 -0
  77. android/fastlane/metadata/android/en-GB/images/tenInchScreenshots/2_en-GB.png +0 -0
  78. android/fastlane/metadata/android/en-GB/images/tenInchScreenshots/3_en-GB.png +0 -0
  79. android/fastlane/metadata/android/en-GB/images/tenInchScreenshots/4_en-GB.png +0 -0
  80. android/fastlane/metadata/android/en-GB/short_description.txt +0 -1
  81. android/fastlane/metadata/android/en-GB/title.txt +0 -1
  82. android/fastlane/metadata/android/en-GB/video.txt +0 -0
  83. android/gradle.properties +1 -2
  84. android/gradle/wrapper/gradle-wrapper.properties +1 -1
  85. android/key.properties +0 -4
  86. android/settings.gradle +0 -25
  87. android/settings.gradle.kts +26 -0
  88. devtools_options.yaml +3 -0
  89. ios/.gitignore +0 -1
  90. ios/Flutter/AppFrameworkInfo.plist +0 -2
  91. ios/Gemfile +0 -3
  92. ios/Gemfile.lock +0 -218
  93. ios/Podfile +1 -10
  94. ios/Podfile.lock +20 -31
  95. ios/Runner.xcodeproj/project.pbxproj +64 -80
  96. ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +3 -0
  97. ios/Runner/AppDelegate.swift +7 -4
  98. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  99. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  100. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  101. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  102. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  103. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  104. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  105. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  106. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  107. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  108. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  109. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  110. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  111. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  112. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  113. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  114. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  115. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  116. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  117. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  118. ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] +0 -0
  119. ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json +0 -21
  120. ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png +0 -0
  121. ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +5 -5
  122. ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png +0 -0
  123. ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected] +0 -0
  124. ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected] +0 -0
  125. ios/Runner/Base.lproj/LaunchScreen.storyboard +5 -12
  126. ios/Runner/Info.plist +22 -5
  127. ios/Runner/SceneDelegate.swift +6 -0
  128. ios/export_options.plist +0 -21
  129. ios/fastlane/Appfile +0 -8
  130. ios/fastlane/Deliverfile +0 -3
  131. ios/fastlane/Fastfile +0 -25
  132. ios/fastlane/metadata/copyright.txt +0 -1
  133. ios/fastlane/metadata/en-US/apple_tv_privacy_policy.txt +0 -1
  134. ios/fastlane/metadata/en-US/description.txt +0 -15
  135. ios/fastlane/metadata/en-US/keywords.txt +0 -1
  136. ios/fastlane/metadata/en-US/marketing_url.txt +0 -1
  137. ios/fastlane/metadata/en-US/name.txt +0 -1
  138. ios/fastlane/metadata/en-US/privacy_url.txt +0 -1
  139. ios/fastlane/metadata/en-US/promotional_text.txt +0 -1
  140. ios/fastlane/metadata/en-US/release_notes.txt +0 -2
  141. ios/fastlane/metadata/en-US/subtitle.txt +0 -1
  142. ios/fastlane/metadata/en-US/support_url.txt +0 -1
  143. ios/fastlane/metadata/primary_category.txt +0 -1
  144. ios/fastlane/metadata/primary_first_sub_category.txt +0 -1
  145. ios/fastlane/metadata/primary_second_sub_category.txt +0 -1
  146. ios/fastlane/metadata/review_information/demo_password.txt +0 -1
  147. ios/fastlane/metadata/review_information/demo_user.txt +0 -1
  148. ios/fastlane/metadata/review_information/email_address.txt +0 -1
  149. ios/fastlane/metadata/review_information/first_name.txt +0 -1
  150. ios/fastlane/metadata/review_information/last_name.txt +0 -1
  151. ios/fastlane/metadata/review_information/notes.txt +0 -1
  152. ios/fastlane/metadata/review_information/phone_number.txt +0 -1
  153. ios/fastlane/metadata/secondary_category.txt +0 -1
  154. ios/fastlane/metadata/secondary_first_sub_category.txt +0 -1
  155. ios/fastlane/metadata/secondary_second_sub_category.txt +0 -1
  156. ios/fastlane/screenshots/README.txt +0 -30
  157. ios/fastlane/screenshots/en-US/0_APP_IPAD_PRO_129_0.png +0 -0
  158. ios/fastlane/screenshots/en-US/0_APP_IPAD_PRO_3GEN_129_0.png +0 -0
  159. ios/fastlane/screenshots/en-US/0_APP_IPHONE_55_0.png +0 -0
  160. ios/fastlane/screenshots/en-US/0_APP_IPHONE_67_0.png +0 -0
  161. ios/fastlane/screenshots/en-US/1_APP_IPAD_PRO_129_1.png +0 -0
  162. ios/fastlane/screenshots/en-US/1_APP_IPAD_PRO_3GEN_129_1.png +0 -0
  163. ios/fastlane/screenshots/en-US/1_APP_IPHONE_55_1.png +0 -0
  164. ios/fastlane/screenshots/en-US/1_APP_IPHONE_67_1.png +0 -0
  165. ios/fastlane/screenshots/en-US/2_APP_IPAD_PRO_129_2.png +0 -0
  166. ios/fastlane/screenshots/en-US/2_APP_IPAD_PRO_3GEN_129_2.png +0 -0
  167. ios/fastlane/screenshots/en-US/2_APP_IPHONE_67_2.png +0 -0
  168. ios/fastlane/screenshots/en-US/3_APP_IPHONE_67_3.png +0 -0
  169. ios/fastlane/screenshots/en-US/4_APP_IPHONE_67_4.png +0 -0
  170. ios/fastlane/screenshots/en-US/5_APP_IPHONE_67_5.png +0 -0
  171. ios/fastlane/screenshots/en-US/6_APP_IPHONE_67_6.png +0 -0
  172. lib/app.dart +1 -1
  173. lib/dialog.dart +3 -3
  174. lib/gen/assets.gen.dart +68 -0
  175. lib/gen/fonts.gen.dart +16 -0
  176. lib/l10n/app_localizations.dart +708 -0
  177. lib/l10n/app_localizations_bn.dart +274 -0
  178. lib/l10n/app_localizations_en.dart +275 -0
  179. lib/l10n/app_localizations_gu.dart +274 -0
  180. lib/l10n/app_localizations_hi.dart +274 -0
  181. lib/l10n/app_localizations_kn.dart +274 -0
  182. lib/l10n/app_localizations_ml.dart +274 -0
  183. lib/l10n/app_localizations_ne.dart +274 -0
  184. lib/l10n/app_localizations_or.dart +275 -0
  185. lib/l10n/app_localizations_pa.dart +275 -0
  186. lib/l10n/app_localizations_ta.dart +274 -0
  187. lib/l10n/app_localizations_te.dart +274 -0
  188. lib/main.dart +28 -28
  189. lib/models.dart +1 -1
  190. lib/navigation.dart +33 -33
  191. lib/screens/book_select_screen.dart +1 -1
  192. lib/screens/chapter_view_screen.dart +5 -5
  193. lib/screens/webview_screen.dart +1 -1
  194. lib/sheets/actions_sheet.dart +1 -1
  195. lib/sheets/highlight_sheet.dart +1 -1
  196. lib/sheets/settings_sheet.dart +5 -5
  197. lib/store/state.dart +8 -8
  198. lib/theme.dart +21 -21
  199. lib/utils.dart +34 -26
  200. lib/widgets/modal_button.dart +1 -1
  201. lib/widgets/scaffold_menu.dart +2 -2
  202. lib/widgets/sliver_heading.dart +1 -1
  203. lib/widgets/verses_view.dart +5 -5
  204. linux/.gitignore +1 -0
  205. linux/CMakeLists.txt +128 -0
  206. linux/flutter/CMakeLists.txt +88 -0
  207. linux/flutter/generated_plugin_registrant.cc +15 -0
  208. linux/flutter/generated_plugin_registrant.h +15 -0
  209. linux/flutter/generated_plugins.cmake +24 -0
  210. linux/runner/CMakeLists.txt +26 -0
  211. linux/runner/main.cc +6 -0
  212. linux/runner/my_application.cc +148 -0
  213. linux/runner/my_application.h +21 -0
  214. macos/.gitignore +7 -0
  215. macos/Flutter/Flutter-Debug.xcconfig +2 -0
  216. macos/Flutter/Flutter-Release.xcconfig +2 -0
  217. macos/Flutter/GeneratedPluginRegistrant.swift +26 -0
  218. macos/Podfile +42 -0
  219. macos/Runner.xcodeproj/project.pbxproj +705 -0
  220. macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  221. macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +99 -0
  222. macos/Runner.xcworkspace/contents.xcworkspacedata +7 -0
  223. macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  224. macos/Runner/AppDelegate.swift +13 -0
  225. macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
  226. macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png +0 -0
  227. macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png +0 -0
  228. macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png +0 -0
  229. macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png +0 -0
  230. macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png +0 -0
  231. macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png +0 -0
  232. macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png +0 -0
  233. macos/Runner/Base.lproj/MainMenu.xib +343 -0
  234. macos/Runner/Configs/AppInfo.xcconfig +14 -0
  235. macos/Runner/Configs/Debug.xcconfig +2 -0
  236. macos/Runner/Configs/Release.xcconfig +2 -0
  237. macos/Runner/Configs/Warnings.xcconfig +13 -0
  238. macos/Runner/DebugProfile.entitlements +12 -0
  239. macos/Runner/Info.plist +32 -0
  240. macos/Runner/MainFlutterWindow.swift +15 -0
  241. macos/Runner/Release.entitlements +8 -0
  242. macos/RunnerTests/RunnerTests.swift +12 -0
  243. pubspec.lock +405 -293
  244. pubspec.yaml +18 -15
  245. scripts/generate_book_names.dart +12 -12
  246. scripts/scrape.dart +9 -8
  247. secrets.properties +5 -0
  248. test/widget_test.dart +30 -0
  249. web/favicon.png +0 -0
  250. web/icons/Icon-192.png +0 -0
  251. web/icons/Icon-512.png +0 -0
  252. web/icons/Icon-maskable-192.png +0 -0
  253. web/icons/Icon-maskable-512.png +0 -0
  254. web/index.html +46 -0
  255. web/manifest.json +35 -0
  256. windows/.gitignore +17 -0
  257. windows/CMakeLists.txt +108 -0
  258. windows/flutter/CMakeLists.txt +109 -0
  259. windows/flutter/generated_plugin_registrant.cc +17 -0
  260. windows/flutter/generated_plugin_registrant.h +15 -0
  261. windows/flutter/generated_plugins.cmake +25 -0
  262. windows/runner/CMakeLists.txt +40 -0
  263. windows/runner/Runner.rc +121 -0
  264. windows/runner/flutter_window.cpp +71 -0
  265. windows/runner/flutter_window.h +33 -0
  266. windows/runner/main.cpp +43 -0
  267. windows/runner/resource.h +16 -0
  268. windows/runner/resources/app_icon.ico +0 -0
  269. windows/runner/runner.exe.manifest +14 -0
  270. windows/runner/utils.cpp +65 -0
  271. windows/runner/utils.h +19 -0
  272. windows/runner/win32_window.cpp +288 -0
  273. windows/runner/win32_window.h +102 -0
.flutter-plugins-dependencies ADDED
@@ -0,0 +1 @@
1
+ {"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"app_review","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/app_review-3.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"audio_session","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/audio_session-0.2.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_native_splash","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/flutter_native_splash-2.4.7/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"integration_test","path":"/opt/homebrew/share/flutter/packages/integration_test/","native_build":true,"dependencies":[],"dev_dependency":true},{"name":"just_audio","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/just_audio-0.10.5/","shared_darwin_source":true,"native_build":true,"dependencies":["audio_session"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/package_info_plus-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/path_provider_foundation-2.6.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/share_plus-12.0.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.6/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_ios","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/url_launcher_ios-6.4.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"webview_flutter_wkwebview","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.24.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"app_review","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/app_review-3.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"audio_session","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/audio_session-0.2.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_native_splash","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/flutter_native_splash-2.4.7/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"integration_test","path":"/opt/homebrew/share/flutter/packages/integration_test/","native_build":true,"dependencies":[],"dev_dependency":true},{"name":"just_audio","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/just_audio-0.10.5/","native_build":true,"dependencies":["audio_session"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/package_info_plus-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/path_provider_android-2.2.22/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/share_plus-12.0.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_android","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/shared_preferences_android-2.4.21/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_android","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.28/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"webview_flutter_android","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/webview_flutter_android-4.10.13/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"app_review","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/app_review-3.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"audio_session","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/audio_session-0.2.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"just_audio","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/just_audio-0.10.5/","shared_darwin_source":true,"native_build":true,"dependencies":["audio_session"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/package_info_plus-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/path_provider_foundation-2.6.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/share_plus-12.0.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.6/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_macos","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"webview_flutter_wkwebview","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.24.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"package_info_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/package_info_plus-9.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/share_plus-12.0.1/","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"shared_preferences_linux","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.2/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"package_info_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/package_info_plus-9.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/share_plus-12.0.1/","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"shared_preferences_windows","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.5/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"audio_session","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/audio_session-0.2.3/","dependencies":[],"dev_dependency":false},{"name":"flutter_native_splash","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/flutter_native_splash-2.4.7/","dependencies":[],"dev_dependency":false},{"name":"just_audio_web","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/just_audio_web-0.4.16/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/package_info_plus-9.0.0/","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/share_plus-12.0.1/","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"shared_preferences_web","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.3/","dependencies":[],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/pyrossh/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.2/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"app_review","dependencies":[]},{"name":"audio_session","dependencies":[]},{"name":"flutter_native_splash","dependencies":[]},{"name":"integration_test","dependencies":[]},{"name":"just_audio","dependencies":["just_audio_web","audio_session","path_provider"]},{"name":"just_audio_web","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2026-03-21 18:21:22.875489","version":"3.41.4","swift_package_manager_enabled":{"ios":false,"macos":false}}
.gitignore CHANGED
@@ -18,3 +18,8 @@ local.properties
18
18
  keystore.properties
19
19
  upload-keystore.jks
20
20
  svc.json
21
+ .dart_tool
22
+ .idea
23
+ composeApp
24
+ target
25
+ ui
.idea/deploymentTargetSelector.xml CHANGED
@@ -13,7 +13,7 @@
13
13
  </DropdownSelection>
14
14
  <DialogSelection />
15
15
  </SelectionState>
16
- <SelectionState runConfigName="useAppContext()">
16
+ <SelectionState runConfigName="composeApp">
17
17
  <option name="selectionMode" value="DROPDOWN" />
18
18
  </SelectionState>
19
19
  </selectionStates>
.idea/gradle.xml CHANGED
@@ -4,6 +4,7 @@
4
4
  <component name="GradleSettings">
5
5
  <option name="linkedExternalProjectsSettings">
6
6
  <GradleProjectSettings>
7
+ <option name="testRunner" value="CHOOSE_PER_TEST" />
7
8
  <option name="externalProjectPath" value="$PROJECT_DIR$" />
8
9
  <option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
9
10
  <option name="modules">
@@ -12,7 +13,6 @@
12
13
  <option value="$PROJECT_DIR$/app" />
13
14
  </set>
14
15
  </option>
15
- <option name="resolveExternalAnnotations" value="false" />
16
16
  </GradleProjectSettings>
17
17
  </option>
18
18
  </component>
.metadata CHANGED
@@ -4,7 +4,7 @@
4
4
  # This file should be version controlled and should not be manually edited.
5
5
 
6
6
  version:
7
- revision: "54e66469a933b60ddf175f858f82eaeb97e48c8d"
7
+ revision: "ff37bef603469fb030f2b72995ab929ccfc227f0"
8
8
  channel: "stable"
9
9
 
10
10
  project_type: app
@@ -13,14 +13,26 @@ project_type: app
13
13
  migration:
14
14
  platforms:
15
15
  - platform: root
16
- create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
16
+ create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
17
- base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
17
+ base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
18
18
  - platform: android
19
- create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
19
+ create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
20
- base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
20
+ base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
21
21
  - platform: ios
22
- create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
22
+ create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
23
- base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
23
+ base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
24
+ - platform: linux
25
+ create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
26
+ base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
27
+ - platform: macos
28
+ create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
29
+ base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
30
+ - platform: web
31
+ create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
32
+ base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
33
+ - platform: windows
34
+ create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
35
+ base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
24
36
 
25
37
  # User provided section
26
38
 
android/.gitignore CHANGED
@@ -5,9 +5,10 @@ gradle-wrapper.jar
5
5
  /gradlew.bat
6
6
  /local.properties
7
7
  GeneratedPluginRegistrant.java
8
+ .cxx/
8
9
 
9
10
  # Remember to never publicly share your keystore.
10
- # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11
+ # See https://flutter.dev/to/reference-keystore
11
12
  key.properties
12
13
  **/*.keystore
13
14
  **/*.jks
android/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "fastlane"
android/Gemfile.lock DELETED
@@ -1,218 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- CFPropertyList (3.0.7)
5
- base64
6
- nkf
7
- rexml
8
- addressable (2.8.6)
9
- public_suffix (>= 2.0.2, < 6.0)
10
- artifactory (3.0.17)
11
- atomos (0.1.3)
12
- aws-eventstream (1.3.0)
13
- aws-partitions (1.922.0)
14
- aws-sdk-core (3.194.0)
15
- aws-eventstream (~> 1, >= 1.3.0)
16
- aws-partitions (~> 1, >= 1.651.0)
17
- aws-sigv4 (~> 1.8)
18
- jmespath (~> 1, >= 1.6.1)
19
- aws-sdk-kms (1.80.0)
20
- aws-sdk-core (~> 3, >= 3.193.0)
21
- aws-sigv4 (~> 1.1)
22
- aws-sdk-s3 (1.149.0)
23
- aws-sdk-core (~> 3, >= 3.194.0)
24
- aws-sdk-kms (~> 1)
25
- aws-sigv4 (~> 1.8)
26
- aws-sigv4 (1.8.0)
27
- aws-eventstream (~> 1, >= 1.0.2)
28
- babosa (1.0.4)
29
- base64 (0.2.0)
30
- claide (1.1.0)
31
- colored (1.2)
32
- colored2 (3.1.2)
33
- commander (4.6.0)
34
- highline (~> 2.0.0)
35
- declarative (0.0.20)
36
- digest-crc (0.6.5)
37
- rake (>= 12.0.0, < 14.0.0)
38
- domain_name (0.6.20240107)
39
- dotenv (2.8.1)
40
- emoji_regex (3.2.3)
41
- excon (0.110.0)
42
- faraday (1.10.3)
43
- faraday-em_http (~> 1.0)
44
- faraday-em_synchrony (~> 1.0)
45
- faraday-excon (~> 1.1)
46
- faraday-httpclient (~> 1.0)
47
- faraday-multipart (~> 1.0)
48
- faraday-net_http (~> 1.0)
49
- faraday-net_http_persistent (~> 1.0)
50
- faraday-patron (~> 1.0)
51
- faraday-rack (~> 1.0)
52
- faraday-retry (~> 1.0)
53
- ruby2_keywords (>= 0.0.4)
54
- faraday-cookie_jar (0.0.7)
55
- faraday (>= 0.8.0)
56
- http-cookie (~> 1.0.0)
57
- faraday-em_http (1.0.0)
58
- faraday-em_synchrony (1.0.0)
59
- faraday-excon (1.1.0)
60
- faraday-httpclient (1.0.1)
61
- faraday-multipart (1.0.4)
62
- multipart-post (~> 2)
63
- faraday-net_http (1.0.1)
64
- faraday-net_http_persistent (1.2.0)
65
- faraday-patron (1.0.0)
66
- faraday-rack (1.0.0)
67
- faraday-retry (1.0.3)
68
- faraday_middleware (1.2.0)
69
- faraday (~> 1.0)
70
- fastimage (2.3.1)
71
- fastlane (2.220.0)
72
- CFPropertyList (>= 2.3, < 4.0.0)
73
- addressable (>= 2.8, < 3.0.0)
74
- artifactory (~> 3.0)
75
- aws-sdk-s3 (~> 1.0)
76
- babosa (>= 1.0.3, < 2.0.0)
77
- bundler (>= 1.12.0, < 3.0.0)
78
- colored (~> 1.2)
79
- commander (~> 4.6)
80
- dotenv (>= 2.1.1, < 3.0.0)
81
- emoji_regex (>= 0.1, < 4.0)
82
- excon (>= 0.71.0, < 1.0.0)
83
- faraday (~> 1.0)
84
- faraday-cookie_jar (~> 0.0.6)
85
- faraday_middleware (~> 1.0)
86
- fastimage (>= 2.1.0, < 3.0.0)
87
- gh_inspector (>= 1.1.2, < 2.0.0)
88
- google-apis-androidpublisher_v3 (~> 0.3)
89
- google-apis-playcustomapp_v1 (~> 0.1)
90
- google-cloud-env (>= 1.6.0, < 2.0.0)
91
- google-cloud-storage (~> 1.31)
92
- highline (~> 2.0)
93
- http-cookie (~> 1.0.5)
94
- json (< 3.0.0)
95
- jwt (>= 2.1.0, < 3)
96
- mini_magick (>= 4.9.4, < 5.0.0)
97
- multipart-post (>= 2.0.0, < 3.0.0)
98
- naturally (~> 2.2)
99
- optparse (>= 0.1.1, < 1.0.0)
100
- plist (>= 3.1.0, < 4.0.0)
101
- rubyzip (>= 2.0.0, < 3.0.0)
102
- security (= 0.1.5)
103
- simctl (~> 1.6.3)
104
- terminal-notifier (>= 2.0.0, < 3.0.0)
105
- terminal-table (~> 3)
106
- tty-screen (>= 0.6.3, < 1.0.0)
107
- tty-spinner (>= 0.8.0, < 1.0.0)
108
- word_wrap (~> 1.0.0)
109
- xcodeproj (>= 1.13.0, < 2.0.0)
110
- xcpretty (~> 0.3.0)
111
- xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
112
- gh_inspector (1.1.3)
113
- google-apis-androidpublisher_v3 (0.54.0)
114
- google-apis-core (>= 0.11.0, < 2.a)
115
- google-apis-core (0.11.3)
116
- addressable (~> 2.5, >= 2.5.1)
117
- googleauth (>= 0.16.2, < 2.a)
118
- httpclient (>= 2.8.1, < 3.a)
119
- mini_mime (~> 1.0)
120
- representable (~> 3.0)
121
- retriable (>= 2.0, < 4.a)
122
- rexml
123
- google-apis-iamcredentials_v1 (0.17.0)
124
- google-apis-core (>= 0.11.0, < 2.a)
125
- google-apis-playcustomapp_v1 (0.13.0)
126
- google-apis-core (>= 0.11.0, < 2.a)
127
- google-apis-storage_v1 (0.31.0)
128
- google-apis-core (>= 0.11.0, < 2.a)
129
- google-cloud-core (1.7.0)
130
- google-cloud-env (>= 1.0, < 3.a)
131
- google-cloud-errors (~> 1.0)
132
- google-cloud-env (1.6.0)
133
- faraday (>= 0.17.3, < 3.0)
134
- google-cloud-errors (1.4.0)
135
- google-cloud-storage (1.47.0)
136
- addressable (~> 2.8)
137
- digest-crc (~> 0.4)
138
- google-apis-iamcredentials_v1 (~> 0.1)
139
- google-apis-storage_v1 (~> 0.31.0)
140
- google-cloud-core (~> 1.6)
141
- googleauth (>= 0.16.2, < 2.a)
142
- mini_mime (~> 1.0)
143
- googleauth (1.8.1)
144
- faraday (>= 0.17.3, < 3.a)
145
- jwt (>= 1.4, < 3.0)
146
- multi_json (~> 1.11)
147
- os (>= 0.9, < 2.0)
148
- signet (>= 0.16, < 2.a)
149
- highline (2.0.3)
150
- http-cookie (1.0.5)
151
- domain_name (~> 0.5)
152
- httpclient (2.8.3)
153
- jmespath (1.6.2)
154
- json (2.7.2)
155
- jwt (2.8.1)
156
- base64
157
- mini_magick (4.12.0)
158
- mini_mime (1.1.5)
159
- multi_json (1.15.0)
160
- multipart-post (2.4.0)
161
- nanaimo (0.3.0)
162
- naturally (2.2.1)
163
- nkf (0.2.0)
164
- optparse (0.5.0)
165
- os (1.1.4)
166
- plist (3.7.1)
167
- public_suffix (5.0.5)
168
- rake (13.2.1)
169
- representable (3.2.0)
170
- declarative (< 0.1.0)
171
- trailblazer-option (>= 0.1.1, < 0.2.0)
172
- uber (< 0.2.0)
173
- retriable (3.1.2)
174
- rexml (3.2.6)
175
- rouge (2.0.7)
176
- ruby2_keywords (0.0.5)
177
- rubyzip (2.3.2)
178
- security (0.1.5)
179
- signet (0.19.0)
180
- addressable (~> 2.8)
181
- faraday (>= 0.17.5, < 3.a)
182
- jwt (>= 1.5, < 3.0)
183
- multi_json (~> 1.10)
184
- simctl (1.6.10)
185
- CFPropertyList
186
- naturally
187
- terminal-notifier (2.0.0)
188
- terminal-table (3.0.2)
189
- unicode-display_width (>= 1.1.1, < 3)
190
- trailblazer-option (0.1.2)
191
- tty-cursor (0.7.1)
192
- tty-screen (0.8.2)
193
- tty-spinner (0.9.3)
194
- tty-cursor (~> 0.7)
195
- uber (0.1.0)
196
- unicode-display_width (2.5.0)
197
- word_wrap (1.0.0)
198
- xcodeproj (1.24.0)
199
- CFPropertyList (>= 2.3.3, < 4.0)
200
- atomos (~> 0.1.3)
201
- claide (>= 1.0.2, < 2.0)
202
- colored2 (~> 3.1)
203
- nanaimo (~> 0.3.0)
204
- rexml (~> 3.2.4)
205
- xcpretty (0.3.0)
206
- rouge (~> 2.0.7)
207
- xcpretty-travis-formatter (1.0.1)
208
- xcpretty (~> 0.2, >= 0.0.7)
209
-
210
- PLATFORMS
211
- arm64-darwin-23
212
- ruby
213
-
214
- DEPENDENCIES
215
- fastlane
216
-
217
- BUNDLED WITH
218
- 2.5.9
android/app/build.gradle DELETED
@@ -1,88 +0,0 @@
1
- plugins {
2
- id "com.android.application"
3
- id "kotlin-android"
4
- id "dev.flutter.flutter-gradle-plugin"
5
- }
6
-
7
- def localProperties = new Properties()
8
- def localPropertiesFile = rootProject.file('local.properties')
9
- if (localPropertiesFile.exists()) {
10
- localPropertiesFile.withReader('UTF-8') { reader ->
11
- localProperties.load(reader)
12
- }
13
- }
14
-
15
- def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
16
- if (flutterVersionCode == null) {
17
- throw new GradleException("flutter.versionCode is required")
18
- }
19
-
20
- def flutterVersionName = localProperties.getProperty('flutter.versionName')
21
- if (flutterVersionName == null) {
22
- throw new GradleException("flutter.versionName is required")
23
- }
24
-
25
- def keystoreProperties = new Properties()
26
- def keystorePropertiesFile = rootProject.file('key.properties')
27
- if (keystorePropertiesFile.exists()) {
28
- keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
29
- }
30
-
31
- android {
32
- namespace "sh.pyros.only_bible_app"
33
- compileSdkVersion flutter.compileSdkVersion
34
- ndkVersion flutter.ndkVersion
35
-
36
- compileOptions {
37
- sourceCompatibility JavaVersion.VERSION_1_8
38
- targetCompatibility JavaVersion.VERSION_1_8
39
- }
40
-
41
- kotlinOptions {
42
- jvmTarget = '1.8'
43
- }
44
-
45
- sourceSets {
46
- main.java.srcDirs += 'src/main/kotlin'
47
- }
48
-
49
- defaultConfig {
50
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
51
- applicationId "sh.pyros.only_bible_app"
52
- // You can update the following values to match your application needs.
53
- // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
54
- minSdkVersion 30
55
- targetSdkVersion 33
56
- versionCode flutterVersionCode.toInteger()
57
- versionName flutterVersionName
58
- }
59
-
60
- signingConfigs {
61
- release {
62
- keyAlias keystoreProperties['keyAlias']
63
- keyPassword keystoreProperties['keyPassword']
64
- storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
65
- storePassword keystoreProperties['storePassword']
66
- }
67
- }
68
-
69
- buildTypes {
70
- release {
71
- signingConfig signingConfigs.release
72
- }
73
- }
74
- }
75
-
76
- flutter {
77
- source '../..'
78
- }
79
-
80
- configurations.all {
81
- resolutionStrategy {
82
- eachDependency {
83
- if ((requested.group == "org.jetbrains.kotlin") && (requested.name.startsWith("kotlin-stdlib"))) {
84
- useVersion("1.8.0")
85
- }
86
- }
87
- }
88
- }
android/app/build.gradle.kts ADDED
@@ -0,0 +1,44 @@
1
+ plugins {
2
+ id("com.android.application")
3
+ id("kotlin-android")
4
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
5
+ id("dev.flutter.flutter-gradle-plugin")
6
+ }
7
+
8
+ android {
9
+ namespace = "sh.pyros.only_bible_app"
10
+ compileSdk = flutter.compileSdkVersion
11
+ ndkVersion = flutter.ndkVersion
12
+
13
+ compileOptions {
14
+ sourceCompatibility = JavaVersion.VERSION_17
15
+ targetCompatibility = JavaVersion.VERSION_17
16
+ }
17
+
18
+ kotlinOptions {
19
+ jvmTarget = JavaVersion.VERSION_17.toString()
20
+ }
21
+
22
+ defaultConfig {
23
+ // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
24
+ applicationId = "sh.pyros.only_bible_app"
25
+ // You can update the following values to match your application needs.
26
+ // For more information, see: https://flutter.dev/to/review-gradle-config.
27
+ minSdk = flutter.minSdkVersion
28
+ targetSdk = flutter.targetSdkVersion
29
+ versionCode = flutter.versionCode
30
+ versionName = flutter.versionName
31
+ }
32
+
33
+ buildTypes {
34
+ release {
35
+ // TODO: Add your own signing config for the release build.
36
+ // Signing with the debug keys for now, so `flutter run --release` works.
37
+ signingConfig = signingConfigs.getByName("debug")
38
+ }
39
+ }
40
+ }
41
+
42
+ flutter {
43
+ source = "../.."
44
+ }
android/app/src/main/AndroidManifest.xml CHANGED
@@ -1,12 +1,13 @@
1
1
  <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
2
  <application
3
- android:label="Only Bible"
3
+ android:label="only_bible_app"
4
4
  android:name="${applicationName}"
5
- android:icon="@mipmap/app_icon">
5
+ android:icon="@mipmap/ic_launcher">
6
6
  <activity
7
7
  android:name=".MainActivity"
8
8
  android:exported="true"
9
9
  android:launchMode="singleTop"
10
+ android:taskAffinity=""
10
11
  android:theme="@style/LaunchTheme"
11
12
  android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
12
13
  android:hardwareAccelerated="true"
@@ -30,6 +31,15 @@
30
31
  android:name="flutterEmbedding"
31
32
  android:value="2" />
32
33
  </application>
34
+ <!-- Required to query activities that can process text, see:
35
+ https://developer.android.com/training/package-visibility and
36
+ https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
37
+
38
+ In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
39
+ <queries>
40
+ <intent>
33
- <uses-permission android:name="android.permission.INTERNET" />
41
+ <action android:name="android.intent.action.PROCESS_TEXT"/>
34
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
42
+ <data android:mimeType="text/plain"/>
43
+ </intent>
44
+ </queries>
35
45
  </manifest>
android/app/src/main/app_icon-playstore.png DELETED
Binary file
android/app/src/main/kotlin/sh/pyros/only_bible_app/MainActivity.kt CHANGED
@@ -2,5 +2,4 @@ package sh.pyros.only_bible_app
2
2
 
3
3
  import io.flutter.embedding.android.FlutterActivity
4
4
 
5
- class MainActivity: FlutterActivity() {
5
+ class MainActivity : FlutterActivity()
6
- }
android/app/src/main/res/drawable-hdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-hdpi/splash.png DELETED
Binary file
android/app/src/main/res/drawable-mdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-mdpi/splash.png DELETED
Binary file
android/app/src/main/res/drawable-night-hdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-night-mdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-night-xhdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-night-xxhdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-v21/background.png DELETED
Binary file
android/app/src/main/res/drawable-v21/launch_background.xml CHANGED
@@ -1,9 +1,12 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Modify this file to customize your launch splash screen -->
2
3
  <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <item android:drawable="?android:colorBackground" />
5
+
6
+ <!-- You can insert your own image assets here -->
3
- <item>
7
+ <!-- <item>
8
+ <bitmap
9
+ android:gravity="center"
4
- <bitmap android:gravity="fill" android:src="@drawable/background"/>
10
+ android:src="@mipmap/launch_image" />
5
- </item>
11
+ </item> -->
6
- <item>
7
- <bitmap android:gravity="center" android:src="@drawable/splash"/>
8
- </item>
9
12
  </layer-list>
android/app/src/main/res/drawable-xhdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-xhdpi/splash.png DELETED
Binary file
android/app/src/main/res/drawable-xxhdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-xxhdpi/splash.png DELETED
Binary file
android/app/src/main/res/drawable-xxxhdpi/android12splash.png DELETED
Binary file
android/app/src/main/res/drawable-xxxhdpi/splash.png DELETED
Binary file
android/app/src/main/res/drawable/app_icon_background.xml DELETED
@@ -1,22 +0,0 @@
1
- <vector xmlns:android="http://schemas.android.com/apk/res/android"
2
- android:width="108dp"
3
- android:height="108dp"
4
- android:viewportWidth="108.05"
5
- android:viewportHeight="108.1">
6
- <group android:scaleX="0.99953747"
7
- android:translateX="0.024988437">
8
- <path
9
- android:pathData="M20.18,0.05L108.05,0.05L108.05,108.05L20.18,108.05L20.18,0.05Z"
10
- android:fillColor="#aa504c"
11
- android:fillType="nonZero"
12
- android:strokeColor="#00000000"/>
13
- <path
14
- android:pathData="M0.05,0.05L20.18,0.05L20.18,108.05L6.61,108.05L0.05,108.05L0.05,0.05Z"
15
- android:strokeLineJoin="round"
16
- android:strokeWidth="0.1"
17
- android:fillColor="#7f3c3c"
18
- android:fillType="nonZero"
19
- android:strokeColor="#7d3837"
20
- android:strokeLineCap="butt"/>
21
- </group>
22
- </vector>
android/app/src/main/res/drawable/app_icon_foreground.xml DELETED
@@ -1,16 +0,0 @@
1
- <vector xmlns:android="http://schemas.android.com/apk/res/android"
2
- android:width="108dp"
3
- android:height="108dp"
4
- android:viewportWidth="45.074"
5
- android:viewportHeight="72.118">
6
- <group android:scaleX="0.38576603"
7
- android:scaleY="0.61722225"
8
- android:translateX="13.842991"
9
- android:translateY="13.802584">
10
- <path
11
- android:pathData="M42.82,15.776L29.298,15.776L29.298,2.254C29.298,1.009 28.289,0 27.044,0L18.03,0C16.785,0 15.776,1.009 15.776,2.254L15.776,15.776L2.254,15.776C1.009,15.776 0,16.785 0,18.03L0,27.044C0,28.289 1.009,29.298 2.254,29.298L15.776,29.298L15.776,69.865C15.776,71.109 16.785,72.118 18.03,72.118L27.044,72.118C28.289,72.118 29.298,71.109 29.298,69.865L29.298,29.298L42.82,29.298C44.065,29.298 45.074,28.289 45.074,27.044L45.074,18.03C45.074,16.785 44.065,15.776 42.82,15.776Z"
12
- android:fillColor="#ffb441"
13
- android:fillType="nonZero"
14
- android:strokeColor="#00000000"/>
15
- </group>
16
- </vector>
android/app/src/main/res/drawable/background.png DELETED
Binary file
android/app/src/main/res/drawable/launch_background.xml CHANGED
@@ -1,9 +1,12 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Modify this file to customize your launch splash screen -->
2
3
  <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
4
+ <item android:drawable="@android:color/white" />
5
+
6
+ <!-- You can insert your own image assets here -->
3
- <item>
7
+ <!-- <item>
8
+ <bitmap
9
+ android:gravity="center"
4
- <bitmap android:gravity="fill" android:src="@drawable/background"/>
10
+ android:src="@mipmap/launch_image" />
5
- </item>
11
+ </item> -->
6
- <item>
7
- <bitmap android:gravity="center" android:src="@drawable/splash"/>
8
- </item>
9
12
  </layer-list>
android/app/src/main/res/mipmap-anydpi-v26/app_icon.xml DELETED
@@ -1,5 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3
- <background android:drawable="@drawable/app_icon_background"/>
4
- <foreground android:drawable="@drawable/app_icon_foreground"/>
5
- </adaptive-icon>
android/app/src/main/res/mipmap-anydpi-v26/app_icon_round.xml DELETED
@@ -1,5 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3
- <background android:drawable="@drawable/app_icon_background"/>
4
- <foreground android:drawable="@drawable/app_icon_foreground"/>
5
- </adaptive-icon>
android/app/src/main/res/mipmap-hdpi/app_icon.webp DELETED
Binary file
android/app/src/main/res/mipmap-hdpi/app_icon_round.webp DELETED
Binary file
android/app/src/main/res/mipmap-hdpi/ic_launcher.png ADDED
Binary file
android/app/src/main/res/mipmap-mdpi/app_icon.webp DELETED
Binary file
android/app/src/main/res/mipmap-mdpi/app_icon_round.webp DELETED
Binary file
android/app/src/main/res/mipmap-mdpi/ic_launcher.png ADDED
Binary file
android/app/src/main/res/mipmap-xhdpi/app_icon.webp DELETED
Binary file
android/app/src/main/res/mipmap-xhdpi/app_icon_round.webp DELETED
Binary file
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png ADDED
Binary file
android/app/src/main/res/mipmap-xxhdpi/app_icon.webp DELETED
Binary file
android/app/src/main/res/mipmap-xxhdpi/app_icon_round.webp DELETED
Binary file
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png ADDED
Binary file
android/app/src/main/res/mipmap-xxxhdpi/app_icon.webp DELETED
Binary file
android/app/src/main/res/mipmap-xxxhdpi/app_icon_round.webp DELETED
Binary file
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png ADDED
Binary file
android/app/src/main/res/values-night-v31/styles.xml DELETED
@@ -1,21 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <resources>
3
- <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
4
- <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
5
- <item name="android:forceDarkAllowed">false</item>
6
- <item name="android:windowFullscreen">false</item>
7
- <item name="android:windowDrawsSystemBarBackgrounds">false</item>
8
- <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
9
- <item name="android:windowSplashScreenBackground">#FFFFFF</item>
10
- <item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
11
- </style>
12
- <!-- Theme applied to the Android Window as soon as the process has started.
13
- This theme determines the color of the Android Window while your
14
- Flutter UI initializes, as well as behind your Flutter UI while its
15
- running.
16
-
17
- This Theme is only used starting with V2 of Flutter's Android embedding. -->
18
- <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
19
- <item name="android:windowBackground">?android:colorBackground</item>
20
- </style>
21
- </resources>
android/app/src/main/res/values-night/styles.xml CHANGED
@@ -5,10 +5,6 @@
5
5
  <!-- Show a splash screen on the activity. Automatically removed when
6
6
  the Flutter engine draws its first frame -->
7
7
  <item name="android:windowBackground">@drawable/launch_background</item>
8
- <item name="android:forceDarkAllowed">false</item>
9
- <item name="android:windowFullscreen">false</item>
10
- <item name="android:windowDrawsSystemBarBackgrounds">false</item>
11
- <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
12
8
  </style>
13
9
  <!-- Theme applied to the Android Window as soon as the process has started.
14
10
  This theme determines the color of the Android Window while your
android/app/src/main/res/values-v31/styles.xml DELETED
@@ -1,21 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <resources>
3
- <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
4
- <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
5
- <item name="android:forceDarkAllowed">false</item>
6
- <item name="android:windowFullscreen">false</item>
7
- <item name="android:windowDrawsSystemBarBackgrounds">false</item>
8
- <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
9
- <item name="android:windowSplashScreenBackground">#FFFFFF</item>
10
- <item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
11
- </style>
12
- <!-- Theme applied to the Android Window as soon as the process has started.
13
- This theme determines the color of the Android Window while your
14
- Flutter UI initializes, as well as behind your Flutter UI while its
15
- running.
16
-
17
- This Theme is only used starting with V2 of Flutter's Android embedding. -->
18
- <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
19
- <item name="android:windowBackground">?android:colorBackground</item>
20
- </style>
21
- </resources>
android/app/src/main/res/values/styles.xml CHANGED
@@ -5,10 +5,6 @@
5
5
  <!-- Show a splash screen on the activity. Automatically removed when
6
6
  the Flutter engine draws its first frame -->
7
7
  <item name="android:windowBackground">@drawable/launch_background</item>
8
- <item name="android:forceDarkAllowed">false</item>
9
- <item name="android:windowFullscreen">false</item>
10
- <item name="android:windowDrawsSystemBarBackgrounds">false</item>
11
- <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
12
8
  </style>
13
9
  <!-- Theme applied to the Android Window as soon as the process has started.
14
10
  This theme determines the color of the Android Window while your
android/build.gradle DELETED
@@ -1,18 +0,0 @@
1
- allprojects {
2
- repositories {
3
- google()
4
- mavenCentral()
5
- }
6
- }
7
-
8
- rootProject.buildDir = '../build'
9
- subprojects {
10
- project.buildDir = "${rootProject.buildDir}/${project.name}"
11
- }
12
- subprojects {
13
- project.evaluationDependsOn(':app')
14
- }
15
-
16
- tasks.register("clean", Delete) {
17
- delete rootProject.buildDir
18
- }
android/build.gradle.kts ADDED
@@ -0,0 +1,24 @@
1
+ allprojects {
2
+ repositories {
3
+ google()
4
+ mavenCentral()
5
+ }
6
+ }
7
+
8
+ val newBuildDir: Directory =
9
+ rootProject.layout.buildDirectory
10
+ .dir("../../build")
11
+ .get()
12
+ rootProject.layout.buildDirectory.value(newBuildDir)
13
+
14
+ subprojects {
15
+ val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
16
+ project.layout.buildDirectory.value(newSubprojectBuildDir)
17
+ }
18
+ subprojects {
19
+ project.evaluationDependsOn(":app")
20
+ }
21
+
22
+ tasks.register<Delete>("clean") {
23
+ delete(rootProject.layout.buildDirectory)
24
+ }
android/fastlane/Appfile DELETED
@@ -1,2 +0,0 @@
1
- json_key_file("pc-api-6297146122987569611-934-3fe14b04a8de.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
2
- package_name("sh.pyros.only_bible_app") # e.g. com.krausefx.app
android/fastlane/Fastfile DELETED
@@ -1,38 +0,0 @@
1
- # This file contains the fastlane.tools configuration
2
- # You can find the documentation at https://docs.fastlane.tools
3
- #
4
- # For a list of all available actions, check out
5
- #
6
- # https://docs.fastlane.tools/actions
7
- #
8
- # For a list of all available plugins, check out
9
- #
10
- # https://docs.fastlane.tools/plugins/available-plugins
11
- #
12
-
13
- # Uncomment the line if you want fastlane to automatically update itself
14
- # update_fastlane
15
-
16
- default_platform(:android)
17
-
18
- platform :android do
19
- desc "Runs all the tests"
20
- lane :test do
21
- gradle(task: "test")
22
- end
23
-
24
- desc "Submit a new Beta Build to Crashlytics Beta"
25
- lane :beta do
26
- gradle(task: "clean assembleRelease")
27
- crashlytics
28
-
29
- # sh "your_script.sh"
30
- # You can also use other beta testing services here
31
- end
32
-
33
- desc "Deploy a new version to the Google Play"
34
- lane :deploy do
35
- gradle(task: "clean assembleRelease")
36
- upload_to_play_store
37
- end
38
- end
android/fastlane/metadata/android/en-GB/changelogs/10.txt DELETED
@@ -1,2 +0,0 @@
1
- Remove markdown
2
- Improve audio loading
android/fastlane/metadata/android/en-GB/changelogs/9.txt DELETED
@@ -1,2 +0,0 @@
1
- Remove notes feature
2
- Fixed some issues
android/fastlane/metadata/android/en-GB/full_description.txt DELETED
@@ -1,15 +0,0 @@
1
- A minimalistic bible app with a simplistic design for easy reading everyday
2
- You can highlight verses and share them as well.
3
- Audio playback is available for some of the languages.
4
- These are the languages currently available in the app,
5
- Bengali
6
- English
7
- Gujarati
8
- Hindi
9
- Kannada
10
- Malayalam
11
- Nepali
12
- Oriya
13
- Punjabi
14
- Tamil
15
- Telugu
android/fastlane/metadata/android/en-GB/images/featureGraphic.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/icon.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/phoneScreenshots/1_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/phoneScreenshots/2_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/phoneScreenshots/3_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/phoneScreenshots/4_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/phoneScreenshots/5_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/phoneScreenshots/6_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/phoneScreenshots/7_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/sevenInchScreenshots/1_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/sevenInchScreenshots/2_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/sevenInchScreenshots/3_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/sevenInchScreenshots/4_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/tenInchScreenshots/1_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/tenInchScreenshots/2_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/tenInchScreenshots/3_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/images/tenInchScreenshots/4_en-GB.png DELETED
Binary file
android/fastlane/metadata/android/en-GB/short_description.txt DELETED
@@ -1 +0,0 @@
1
- A minimalistic bible app with a simplistic design for easy reading everyday
android/fastlane/metadata/android/en-GB/title.txt DELETED
@@ -1 +0,0 @@
1
- Only Bible App
android/fastlane/metadata/android/en-GB/video.txt DELETED
File without changes
android/gradle.properties CHANGED
@@ -1,3 +1,2 @@
1
- org.gradle.jvmargs=-Xmx1536M
1
+ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
2
2
  android.useAndroidX=true
3
- android.enableJetifier=true
android/gradle/wrapper/gradle-wrapper.properties CHANGED
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
2
2
  distributionPath=wrapper/dists
3
3
  zipStoreBase=GRADLE_USER_HOME
4
4
  zipStorePath=wrapper/dists
5
- distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
5
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
android/key.properties DELETED
@@ -1,4 +0,0 @@
1
- storePassword=enter_pass
2
- keyPassword=enter_pass
3
- keyAlias=upload
4
- storeFile=../upload-keystore.jks
android/settings.gradle DELETED
@@ -1,25 +0,0 @@
1
- pluginManagement {
2
- def flutterSdkPath = {
3
- def properties = new Properties()
4
- file("local.properties").withInputStream { properties.load(it) }
5
- def flutterSdkPath = properties.getProperty("flutter.sdk")
6
- assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
7
- return flutterSdkPath
8
- }()
9
-
10
- includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
11
-
12
- repositories {
13
- google()
14
- mavenCentral()
15
- gradlePluginPortal()
16
- }
17
- }
18
-
19
- plugins {
20
- id "dev.flutter.flutter-plugin-loader" version "1.0.0"
21
- id "com.android.application" version "7.3.0" apply false
22
- id "org.jetbrains.kotlin.android" version "1.7.10" apply false
23
- }
24
-
25
- include ":app"
android/settings.gradle.kts ADDED
@@ -0,0 +1,26 @@
1
+ pluginManagement {
2
+ val flutterSdkPath =
3
+ run {
4
+ val properties = java.util.Properties()
5
+ file("local.properties").inputStream().use { properties.load(it) }
6
+ val flutterSdkPath = properties.getProperty("flutter.sdk")
7
+ require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
8
+ flutterSdkPath
9
+ }
10
+
11
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
12
+
13
+ repositories {
14
+ google()
15
+ mavenCentral()
16
+ gradlePluginPortal()
17
+ }
18
+ }
19
+
20
+ plugins {
21
+ id("dev.flutter.flutter-plugin-loader") version "1.0.0"
22
+ id("com.android.application") version "8.11.1" apply false
23
+ id("org.jetbrains.kotlin.android") version "2.2.20" apply false
24
+ }
25
+
26
+ include(":app")
devtools_options.yaml ADDED
@@ -0,0 +1,3 @@
1
+ description: This file stores settings for Dart & Flutter DevTools.
2
+ documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
3
+ extensions:
ios/.gitignore CHANGED
@@ -32,4 +32,3 @@ Runner/GeneratedPluginRegistrant.*
32
32
  !default.mode2v3
33
33
  !default.pbxuser
34
34
  !default.perspectivev3
35
- /fastlane/Preview.html
ios/Flutter/AppFrameworkInfo.plist CHANGED
@@ -20,7 +20,5 @@
20
20
  <string>????</string>
21
21
  <key>CFBundleVersion</key>
22
22
  <string>1.0</string>
23
- <key>MinimumOSVersion</key>
24
- <string>12.0</string>
25
23
  </dict>
26
24
  </plist>
ios/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "fastlane"
ios/Gemfile.lock DELETED
@@ -1,218 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- CFPropertyList (3.0.7)
5
- base64
6
- nkf
7
- rexml
8
- addressable (2.8.6)
9
- public_suffix (>= 2.0.2, < 6.0)
10
- artifactory (3.0.17)
11
- atomos (0.1.3)
12
- aws-eventstream (1.3.0)
13
- aws-partitions (1.922.0)
14
- aws-sdk-core (3.194.0)
15
- aws-eventstream (~> 1, >= 1.3.0)
16
- aws-partitions (~> 1, >= 1.651.0)
17
- aws-sigv4 (~> 1.8)
18
- jmespath (~> 1, >= 1.6.1)
19
- aws-sdk-kms (1.80.0)
20
- aws-sdk-core (~> 3, >= 3.193.0)
21
- aws-sigv4 (~> 1.1)
22
- aws-sdk-s3 (1.149.0)
23
- aws-sdk-core (~> 3, >= 3.194.0)
24
- aws-sdk-kms (~> 1)
25
- aws-sigv4 (~> 1.8)
26
- aws-sigv4 (1.8.0)
27
- aws-eventstream (~> 1, >= 1.0.2)
28
- babosa (1.0.4)
29
- base64 (0.2.0)
30
- claide (1.1.0)
31
- colored (1.2)
32
- colored2 (3.1.2)
33
- commander (4.6.0)
34
- highline (~> 2.0.0)
35
- declarative (0.0.20)
36
- digest-crc (0.6.5)
37
- rake (>= 12.0.0, < 14.0.0)
38
- domain_name (0.6.20240107)
39
- dotenv (2.8.1)
40
- emoji_regex (3.2.3)
41
- excon (0.110.0)
42
- faraday (1.10.3)
43
- faraday-em_http (~> 1.0)
44
- faraday-em_synchrony (~> 1.0)
45
- faraday-excon (~> 1.1)
46
- faraday-httpclient (~> 1.0)
47
- faraday-multipart (~> 1.0)
48
- faraday-net_http (~> 1.0)
49
- faraday-net_http_persistent (~> 1.0)
50
- faraday-patron (~> 1.0)
51
- faraday-rack (~> 1.0)
52
- faraday-retry (~> 1.0)
53
- ruby2_keywords (>= 0.0.4)
54
- faraday-cookie_jar (0.0.7)
55
- faraday (>= 0.8.0)
56
- http-cookie (~> 1.0.0)
57
- faraday-em_http (1.0.0)
58
- faraday-em_synchrony (1.0.0)
59
- faraday-excon (1.1.0)
60
- faraday-httpclient (1.0.1)
61
- faraday-multipart (1.0.4)
62
- multipart-post (~> 2)
63
- faraday-net_http (1.0.1)
64
- faraday-net_http_persistent (1.2.0)
65
- faraday-patron (1.0.0)
66
- faraday-rack (1.0.0)
67
- faraday-retry (1.0.3)
68
- faraday_middleware (1.2.0)
69
- faraday (~> 1.0)
70
- fastimage (2.3.1)
71
- fastlane (2.220.0)
72
- CFPropertyList (>= 2.3, < 4.0.0)
73
- addressable (>= 2.8, < 3.0.0)
74
- artifactory (~> 3.0)
75
- aws-sdk-s3 (~> 1.0)
76
- babosa (>= 1.0.3, < 2.0.0)
77
- bundler (>= 1.12.0, < 3.0.0)
78
- colored (~> 1.2)
79
- commander (~> 4.6)
80
- dotenv (>= 2.1.1, < 3.0.0)
81
- emoji_regex (>= 0.1, < 4.0)
82
- excon (>= 0.71.0, < 1.0.0)
83
- faraday (~> 1.0)
84
- faraday-cookie_jar (~> 0.0.6)
85
- faraday_middleware (~> 1.0)
86
- fastimage (>= 2.1.0, < 3.0.0)
87
- gh_inspector (>= 1.1.2, < 2.0.0)
88
- google-apis-androidpublisher_v3 (~> 0.3)
89
- google-apis-playcustomapp_v1 (~> 0.1)
90
- google-cloud-env (>= 1.6.0, < 2.0.0)
91
- google-cloud-storage (~> 1.31)
92
- highline (~> 2.0)
93
- http-cookie (~> 1.0.5)
94
- json (< 3.0.0)
95
- jwt (>= 2.1.0, < 3)
96
- mini_magick (>= 4.9.4, < 5.0.0)
97
- multipart-post (>= 2.0.0, < 3.0.0)
98
- naturally (~> 2.2)
99
- optparse (>= 0.1.1, < 1.0.0)
100
- plist (>= 3.1.0, < 4.0.0)
101
- rubyzip (>= 2.0.0, < 3.0.0)
102
- security (= 0.1.5)
103
- simctl (~> 1.6.3)
104
- terminal-notifier (>= 2.0.0, < 3.0.0)
105
- terminal-table (~> 3)
106
- tty-screen (>= 0.6.3, < 1.0.0)
107
- tty-spinner (>= 0.8.0, < 1.0.0)
108
- word_wrap (~> 1.0.0)
109
- xcodeproj (>= 1.13.0, < 2.0.0)
110
- xcpretty (~> 0.3.0)
111
- xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
112
- gh_inspector (1.1.3)
113
- google-apis-androidpublisher_v3 (0.54.0)
114
- google-apis-core (>= 0.11.0, < 2.a)
115
- google-apis-core (0.11.3)
116
- addressable (~> 2.5, >= 2.5.1)
117
- googleauth (>= 0.16.2, < 2.a)
118
- httpclient (>= 2.8.1, < 3.a)
119
- mini_mime (~> 1.0)
120
- representable (~> 3.0)
121
- retriable (>= 2.0, < 4.a)
122
- rexml
123
- google-apis-iamcredentials_v1 (0.17.0)
124
- google-apis-core (>= 0.11.0, < 2.a)
125
- google-apis-playcustomapp_v1 (0.13.0)
126
- google-apis-core (>= 0.11.0, < 2.a)
127
- google-apis-storage_v1 (0.31.0)
128
- google-apis-core (>= 0.11.0, < 2.a)
129
- google-cloud-core (1.7.0)
130
- google-cloud-env (>= 1.0, < 3.a)
131
- google-cloud-errors (~> 1.0)
132
- google-cloud-env (1.6.0)
133
- faraday (>= 0.17.3, < 3.0)
134
- google-cloud-errors (1.4.0)
135
- google-cloud-storage (1.47.0)
136
- addressable (~> 2.8)
137
- digest-crc (~> 0.4)
138
- google-apis-iamcredentials_v1 (~> 0.1)
139
- google-apis-storage_v1 (~> 0.31.0)
140
- google-cloud-core (~> 1.6)
141
- googleauth (>= 0.16.2, < 2.a)
142
- mini_mime (~> 1.0)
143
- googleauth (1.8.1)
144
- faraday (>= 0.17.3, < 3.a)
145
- jwt (>= 1.4, < 3.0)
146
- multi_json (~> 1.11)
147
- os (>= 0.9, < 2.0)
148
- signet (>= 0.16, < 2.a)
149
- highline (2.0.3)
150
- http-cookie (1.0.5)
151
- domain_name (~> 0.5)
152
- httpclient (2.8.3)
153
- jmespath (1.6.2)
154
- json (2.7.2)
155
- jwt (2.8.1)
156
- base64
157
- mini_magick (4.12.0)
158
- mini_mime (1.1.5)
159
- multi_json (1.15.0)
160
- multipart-post (2.4.0)
161
- nanaimo (0.3.0)
162
- naturally (2.2.1)
163
- nkf (0.2.0)
164
- optparse (0.5.0)
165
- os (1.1.4)
166
- plist (3.7.1)
167
- public_suffix (5.0.5)
168
- rake (13.2.1)
169
- representable (3.2.0)
170
- declarative (< 0.1.0)
171
- trailblazer-option (>= 0.1.1, < 0.2.0)
172
- uber (< 0.2.0)
173
- retriable (3.1.2)
174
- rexml (3.2.6)
175
- rouge (2.0.7)
176
- ruby2_keywords (0.0.5)
177
- rubyzip (2.3.2)
178
- security (0.1.5)
179
- signet (0.19.0)
180
- addressable (~> 2.8)
181
- faraday (>= 0.17.5, < 3.a)
182
- jwt (>= 1.5, < 3.0)
183
- multi_json (~> 1.10)
184
- simctl (1.6.10)
185
- CFPropertyList
186
- naturally
187
- terminal-notifier (2.0.0)
188
- terminal-table (3.0.2)
189
- unicode-display_width (>= 1.1.1, < 3)
190
- trailblazer-option (0.1.2)
191
- tty-cursor (0.7.1)
192
- tty-screen (0.8.2)
193
- tty-spinner (0.9.3)
194
- tty-cursor (~> 0.7)
195
- uber (0.1.0)
196
- unicode-display_width (2.5.0)
197
- word_wrap (1.0.0)
198
- xcodeproj (1.24.0)
199
- CFPropertyList (>= 2.3.3, < 4.0)
200
- atomos (~> 0.1.3)
201
- claide (>= 1.0.2, < 2.0)
202
- colored2 (~> 3.1)
203
- nanaimo (~> 0.3.0)
204
- rexml (~> 3.2.4)
205
- xcpretty (0.3.0)
206
- rouge (~> 2.0.7)
207
- xcpretty-travis-formatter (1.0.1)
208
- xcpretty (~> 0.2, >= 0.0.7)
209
-
210
- PLATFORMS
211
- arm64-darwin-23
212
- ruby
213
-
214
- DEPENDENCIES
215
- fastlane
216
-
217
- BUNDLED WITH
218
- 2.5.9
ios/Podfile CHANGED
@@ -1,5 +1,5 @@
1
1
  # Uncomment this line to define a global platform for your project
2
- # platform :ios, '12.0'
2
+ platform :ios, '13.0'
3
3
 
4
4
  # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5
5
  ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@@ -29,7 +29,6 @@ flutter_ios_podfile_setup
29
29
 
30
30
  target 'Runner' do
31
31
  use_frameworks!
32
- use_modular_headers!
33
32
 
34
33
  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
35
34
  target 'RunnerTests' do
@@ -40,13 +39,5 @@ end
40
39
  post_install do |installer|
41
40
  installer.pods_project.targets.each do |target|
42
41
  flutter_additional_ios_build_settings(target)
43
-
44
- # ADDED TO REMOVE MICROPHONE_PERMISSION
45
- target.build_configurations.each do |config|
46
- config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
47
- '$(inherited)',
48
- 'AUDIO_SESSION_MICROPHONE=0'
49
- ]
50
- end
51
42
  end
52
43
  end
ios/Podfile.lock CHANGED
@@ -4,19 +4,15 @@ PODS:
4
4
  - audio_session (0.0.1):
5
5
  - Flutter
6
6
  - Flutter (1.0.0)
7
- - flutter_native_splash (0.0.1):
7
+ - flutter_native_splash (2.4.3):
8
8
  - Flutter
9
9
  - integration_test (0.0.1):
10
10
  - Flutter
11
11
  - just_audio (0.0.1):
12
12
  - Flutter
13
- - package_info (0.0.1):
14
- - Flutter
13
+ - FlutterMacOS
15
14
  - package_info_plus (0.4.5):
16
15
  - Flutter
17
- - path_provider_foundation (0.0.1):
18
- - Flutter
19
- - FlutterMacOS
20
16
  - share_plus (0.0.1):
21
17
  - Flutter
22
18
  - shared_preferences_foundation (0.0.1):
@@ -26,6 +22,7 @@ PODS:
26
22
  - Flutter
27
23
  - webview_flutter_wkwebview (0.0.1):
28
24
  - Flutter
25
+ - FlutterMacOS
29
26
 
30
27
  DEPENDENCIES:
31
28
  - app_review (from `.symlinks/plugins/app_review/ios`)
@@ -33,14 +30,12 @@ DEPENDENCIES:
33
30
  - Flutter (from `Flutter`)
34
31
  - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
35
32
  - integration_test (from `.symlinks/plugins/integration_test/ios`)
36
- - just_audio (from `.symlinks/plugins/just_audio/ios`)
33
+ - just_audio (from `.symlinks/plugins/just_audio/darwin`)
37
- - package_info (from `.symlinks/plugins/package_info/ios`)
38
34
  - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
39
- - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
40
35
  - share_plus (from `.symlinks/plugins/share_plus/ios`)
41
36
  - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
42
37
  - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
43
- - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
38
+ - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`)
44
39
 
45
40
  EXTERNAL SOURCES:
46
41
  app_review:
@@ -54,13 +49,9 @@ EXTERNAL SOURCES:
54
49
  integration_test:
55
50
  :path: ".symlinks/plugins/integration_test/ios"
56
51
  just_audio:
57
- :path: ".symlinks/plugins/just_audio/ios"
52
+ :path: ".symlinks/plugins/just_audio/darwin"
58
- package_info:
59
- :path: ".symlinks/plugins/package_info/ios"
60
53
  package_info_plus:
61
54
  :path: ".symlinks/plugins/package_info_plus/ios"
62
- path_provider_foundation:
63
- :path: ".symlinks/plugins/path_provider_foundation/darwin"
64
55
  share_plus:
65
56
  :path: ".symlinks/plugins/share_plus/ios"
66
57
  shared_preferences_foundation:
@@ -68,23 +59,21 @@ EXTERNAL SOURCES:
68
59
  url_launcher_ios:
69
60
  :path: ".symlinks/plugins/url_launcher_ios/ios"
70
61
  webview_flutter_wkwebview:
71
- :path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
62
+ :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin"
72
63
 
73
64
  SPEC CHECKSUMS:
74
- app_review: 6f51001269c59a2f4a5b5ae68b7d106401152764
65
+ app_review: f75e3250ef5694e328a5ecb3f4c445bc7b32d821
75
- audio_session: 4f3e461722055d21515cf3261b64c973c062f345
66
+ audio_session: 9bb7f6c970f21241b19f5a3658097ae459681ba0
76
- Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
67
+ Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
77
- flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
68
+ flutter_native_splash: c32d145d68aeda5502d5f543ee38c192065986cf
78
- integration_test: 13825b8a9334a850581300559b8839134b124670
69
+ integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e
79
- just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
70
+ just_audio: 4e391f57b79cad2b0674030a00453ca5ce817eed
80
- package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
81
- package_info_plus: fd030dabf36271f146f1f3beacd48f564b0f17f7
71
+ package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
82
- path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
83
- share_plus: 599aa54e4ea31d4b4c0e9c911bcc26c55e791028
72
+ share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
84
- shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
73
+ shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb
85
- url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
74
+ url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b
86
- webview_flutter_wkwebview: be0f0d33777f1bfd0c9fdcb594786704dbf65f36
75
+ webview_flutter_wkwebview: 8ebf4fded22593026f7dbff1fbff31ea98573c8d
87
76
 
88
- PODFILE CHECKSUM: 797179431f46365b0b4d12774229cd2b42eb3839
77
+ PODFILE CHECKSUM: 251cb053df7158f337c0712f2ab29f4e0fa474ce
89
78
 
90
- COCOAPODS: 1.15.2
79
+ COCOAPODS: 1.16.2
ios/Runner.xcodeproj/project.pbxproj CHANGED
@@ -9,13 +9,14 @@
9
9
  /* Begin PBXBuildFile section */
10
10
  1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
11
11
  331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
12
+ 391BE44176019420B8A3CC71 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47321D7A556A4A9BF16431AF /* Pods_RunnerTests.framework */; };
12
13
  3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
13
14
  74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
15
+ 7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */; };
14
16
  97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
15
17
  97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
16
18
  97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
17
- D63A380F09C2CF98A710A81B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F6988128D962733E2BC5668 /* Pods_Runner.framework */; };
19
+ B492E2663736AD73EF7204F6 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 547E0FBE28272A54761BA898 /* Pods_Runner.framework */; };
18
- FB9F5403A3B57BAD1E770129 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B5AD215C744494B08592005 /* Pods_RunnerTests.framework */; };
19
20
  /* End PBXBuildFile section */
20
21
 
21
22
  /* Begin PBXContainerItemProxy section */
@@ -42,18 +43,21 @@
42
43
  /* End PBXCopyFilesBuildPhase section */
43
44
 
44
45
  /* Begin PBXFileReference section */
45
- 11A3CB54E1C859033BF81ADE /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
46
46
  1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
47
47
  1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
48
48
  331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
49
49
  331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
50
50
  3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
51
- 6F6988128D962733E2BC5668 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
51
+ 43630B2A8F1EB61852D12394 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
52
+ 4420C6B24FA27C901C38F165 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
53
+ 47321D7A556A4A9BF16431AF /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
54
+ 547E0FBE28272A54761BA898 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
55
+ 6044DC6CC5B6EC34A4CDDEAB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
52
56
  74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
53
57
  74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
54
- 794BD9E0636EF73B3EB3F8E9 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
58
+ 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
55
59
  7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
56
- 7B5AD215C744494B08592005 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
60
+ 8445FAB3A6845463961F425E /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
57
61
  9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
58
62
  9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
59
63
  97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -61,26 +65,24 @@
61
65
  97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
62
66
  97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
63
67
  97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
64
- CC3E53B41BB5740ED5E3E68D /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
65
- D6A5E72AE60CCEBCA26318AC /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
66
- ED46548F0FD8B445F1271918 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
67
- F1056E6225D7B9DFDC5810AC /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
68
+ B617937D6DA9BB0132F54E43 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
69
+ D7CDE34E68CE03AC0364CCBE /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
68
70
  /* End PBXFileReference section */
69
71
 
70
72
  /* Begin PBXFrameworksBuildPhase section */
71
- 97C146EB1CF9000F007C117D /* Frameworks */ = {
73
+ 13AD50860C8A698628F45191 /* Frameworks */ = {
72
74
  isa = PBXFrameworksBuildPhase;
73
75
  buildActionMask = 2147483647;
74
76
  files = (
75
- D63A380F09C2CF98A710A81B /* Pods_Runner.framework in Frameworks */,
77
+ 391BE44176019420B8A3CC71 /* Pods_RunnerTests.framework in Frameworks */,
76
78
  );
77
79
  runOnlyForDeploymentPostprocessing = 0;
78
80
  };
79
- CC81B1B1825FFAD6AB22EA0E /* Frameworks */ = {
81
+ 97C146EB1CF9000F007C117D /* Frameworks */ = {
80
82
  isa = PBXFrameworksBuildPhase;
81
83
  buildActionMask = 2147483647;
82
84
  files = (
83
- FB9F5403A3B57BAD1E770129 /* Pods_RunnerTests.framework in Frameworks */,
85
+ B492E2663736AD73EF7204F6 /* Pods_Runner.framework in Frameworks */,
84
86
  );
85
87
  runOnlyForDeploymentPostprocessing = 0;
86
88
  };
@@ -95,13 +97,18 @@
95
97
  path = RunnerTests;
96
98
  sourceTree = "<group>";
97
99
  };
98
- 50C776377A02957C57BDF96D /* Frameworks */ = {
100
+ 818932C489EE28D703604D07 /* Pods */ = {
99
101
  isa = PBXGroup;
100
102
  children = (
103
+ 6044DC6CC5B6EC34A4CDDEAB /* Pods-Runner.debug.xcconfig */,
101
- 6F6988128D962733E2BC5668 /* Pods_Runner.framework */,
104
+ B617937D6DA9BB0132F54E43 /* Pods-Runner.release.xcconfig */,
105
+ 43630B2A8F1EB61852D12394 /* Pods-Runner.profile.xcconfig */,
106
+ 4420C6B24FA27C901C38F165 /* Pods-RunnerTests.debug.xcconfig */,
107
+ D7CDE34E68CE03AC0364CCBE /* Pods-RunnerTests.release.xcconfig */,
102
- 7B5AD215C744494B08592005 /* Pods_RunnerTests.framework */,
108
+ 8445FAB3A6845463961F425E /* Pods-RunnerTests.profile.xcconfig */,
103
- );
109
+ );
104
- name = Frameworks;
110
+ name = Pods;
111
+ path = Pods;
105
112
  sourceTree = "<group>";
106
113
  };
107
114
  9740EEB11CF90186004384FC /* Flutter */ = {
@@ -122,8 +129,8 @@
122
129
  97C146F01CF9000F007C117D /* Runner */,
123
130
  97C146EF1CF9000F007C117D /* Products */,
124
131
  331C8082294A63A400263BE5 /* RunnerTests */,
125
- C8F4713300BEDDAC92573B04 /* Pods */,
132
+ 818932C489EE28D703604D07 /* Pods */,
126
- 50C776377A02957C57BDF96D /* Frameworks */,
133
+ AB430DFF6A3D37D341DBDBAC /* Frameworks */,
127
134
  );
128
135
  sourceTree = "<group>";
129
136
  };
@@ -146,22 +153,19 @@
146
153
  1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
147
154
  1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
148
155
  74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
156
+ 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */,
149
157
  74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
150
158
  );
151
159
  path = Runner;
152
160
  sourceTree = "<group>";
153
161
  };
154
- C8F4713300BEDDAC92573B04 /* Pods */ = {
162
+ AB430DFF6A3D37D341DBDBAC /* Frameworks */ = {
155
163
  isa = PBXGroup;
156
164
  children = (
157
- D6A5E72AE60CCEBCA26318AC /* Pods-Runner.debug.xcconfig */,
158
- F1056E6225D7B9DFDC5810AC /* Pods-Runner.release.xcconfig */,
159
- CC3E53B41BB5740ED5E3E68D /* Pods-Runner.profile.xcconfig */,
165
+ 547E0FBE28272A54761BA898 /* Pods_Runner.framework */,
160
- ED46548F0FD8B445F1271918 /* Pods-RunnerTests.debug.xcconfig */,
161
- 794BD9E0636EF73B3EB3F8E9 /* Pods-RunnerTests.release.xcconfig */,
166
+ 47321D7A556A4A9BF16431AF /* Pods_RunnerTests.framework */,
162
- 11A3CB54E1C859033BF81ADE /* Pods-RunnerTests.profile.xcconfig */,
163
167
  );
164
- path = Pods;
168
+ name = Frameworks;
165
169
  sourceTree = "<group>";
166
170
  };
167
171
  /* End PBXGroup section */
@@ -171,10 +175,10 @@
171
175
  isa = PBXNativeTarget;
172
176
  buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
173
177
  buildPhases = (
174
- 7B697BFED08B43AD09F88523 /* [CP] Check Pods Manifest.lock */,
178
+ 1B99EC6CBC943BDF479A1466 /* [CP] Check Pods Manifest.lock */,
175
179
  331C807D294A63A400263BE5 /* Sources */,
176
180
  331C807F294A63A400263BE5 /* Resources */,
177
- CC81B1B1825FFAD6AB22EA0E /* Frameworks */,
181
+ 13AD50860C8A698628F45191 /* Frameworks */,
178
182
  );
179
183
  buildRules = (
180
184
  );
@@ -190,14 +194,14 @@
190
194
  isa = PBXNativeTarget;
191
195
  buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
192
196
  buildPhases = (
193
- 2FF5A8FCEFB500AE82CE1647 /* [CP] Check Pods Manifest.lock */,
197
+ 5DA2454F7F236B7C3EACFB0C /* [CP] Check Pods Manifest.lock */,
194
198
  9740EEB61CF901F6004384FC /* Run Script */,
195
199
  97C146EA1CF9000F007C117D /* Sources */,
196
200
  97C146EB1CF9000F007C117D /* Frameworks */,
197
201
  97C146EC1CF9000F007C117D /* Resources */,
198
202
  9705A1C41CF9048500538489 /* Embed Frameworks */,
199
203
  3B06AD1E1E4923F5004D2608 /* Thin Binary */,
200
- B8835AB1ABAA7BD37F2D6B36 /* [CP] Embed Pods Frameworks */,
204
+ C1FC2023EB277B23DF78E0EB /* [CP] Embed Pods Frameworks */,
201
205
  );
202
206
  buildRules = (
203
207
  );
@@ -269,7 +273,7 @@
269
273
  /* End PBXResourcesBuildPhase section */
270
274
 
271
275
  /* Begin PBXShellScriptBuildPhase section */
272
- 2FF5A8FCEFB500AE82CE1647 /* [CP] Check Pods Manifest.lock */ = {
276
+ 1B99EC6CBC943BDF479A1466 /* [CP] Check Pods Manifest.lock */ = {
273
277
  isa = PBXShellScriptBuildPhase;
274
278
  buildActionMask = 2147483647;
275
279
  files = (
@@ -284,7 +288,7 @@
284
288
  outputFileListPaths = (
285
289
  );
286
290
  outputPaths = (
287
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
291
+ "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
288
292
  );
289
293
  runOnlyForDeploymentPostprocessing = 0;
290
294
  shellPath = /bin/sh;
@@ -305,9 +309,9 @@
305
309
  );
306
310
  runOnlyForDeploymentPostprocessing = 0;
307
311
  shellPath = /bin/sh;
308
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n";
312
+ shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
309
313
  };
310
- 7B697BFED08B43AD09F88523 /* [CP] Check Pods Manifest.lock */ = {
314
+ 5DA2454F7F236B7C3EACFB0C /* [CP] Check Pods Manifest.lock */ = {
311
315
  isa = PBXShellScriptBuildPhase;
312
316
  buildActionMask = 2147483647;
313
317
  files = (
@@ -322,7 +326,7 @@
322
326
  outputFileListPaths = (
323
327
  );
324
328
  outputPaths = (
325
- "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
329
+ "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
326
330
  );
327
331
  runOnlyForDeploymentPostprocessing = 0;
328
332
  shellPath = /bin/sh;
@@ -342,9 +346,9 @@
342
346
  );
343
347
  runOnlyForDeploymentPostprocessing = 0;
344
348
  shellPath = /bin/sh;
345
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n";
349
+ shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
346
350
  };
347
- B8835AB1ABAA7BD37F2D6B36 /* [CP] Embed Pods Frameworks */ = {
351
+ C1FC2023EB277B23DF78E0EB /* [CP] Embed Pods Frameworks */ = {
348
352
  isa = PBXShellScriptBuildPhase;
349
353
  buildActionMask = 2147483647;
350
354
  files = (
@@ -378,6 +382,7 @@
378
382
  files = (
379
383
  74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
380
384
  1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
385
+ 7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */,
381
386
  );
382
387
  runOnlyForDeploymentPostprocessing = 0;
383
388
  };
@@ -415,6 +420,7 @@
415
420
  isa = XCBuildConfiguration;
416
421
  buildSettings = {
417
422
  ALWAYS_SEARCH_USER_PATHS = NO;
423
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
418
424
  CLANG_ANALYZER_NONNULL = YES;
419
425
  CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
420
426
  CLANG_CXX_LIBRARY = "libc++";
@@ -444,6 +450,7 @@
444
450
  DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
445
451
  ENABLE_NS_ASSERTIONS = NO;
446
452
  ENABLE_STRICT_OBJC_MSGSEND = YES;
453
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
447
454
  GCC_C_LANGUAGE_STANDARD = gnu99;
448
455
  GCC_NO_COMMON_BLOCKS = YES;
449
456
  GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -452,7 +459,7 @@
452
459
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
453
460
  GCC_WARN_UNUSED_FUNCTION = YES;
454
461
  GCC_WARN_UNUSED_VARIABLE = YES;
455
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
462
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
456
463
  MTL_ENABLE_DEBUG_INFO = NO;
457
464
  SDKROOT = iphoneos;
458
465
  SUPPORTED_PLATFORMS = iphoneos;
@@ -470,33 +477,28 @@
470
477
  CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
471
478
  ENABLE_BITCODE = NO;
472
479
  INFOPLIST_FILE = Runner/Info.plist;
473
- INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.books";
474
480
  LD_RUNPATH_SEARCH_PATHS = (
475
481
  "$(inherited)",
476
482
  "@executable_path/Frameworks",
477
483
  );
478
- PRODUCT_BUNDLE_IDENTIFIER = "sh.pyros.only-bible-app";
484
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp;
479
485
  PRODUCT_NAME = "$(TARGET_NAME)";
480
- SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
481
- SUPPORTS_MACCATALYST = NO;
482
- SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
483
486
  SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
484
487
  SWIFT_VERSION = 5.0;
485
- TARGETED_DEVICE_FAMILY = "1,2";
486
488
  VERSIONING_SYSTEM = "apple-generic";
487
489
  };
488
490
  name = Profile;
489
491
  };
490
492
  331C8088294A63A400263BE5 /* Debug */ = {
491
493
  isa = XCBuildConfiguration;
492
- baseConfigurationReference = ED46548F0FD8B445F1271918 /* Pods-RunnerTests.debug.xcconfig */;
494
+ baseConfigurationReference = 4420C6B24FA27C901C38F165 /* Pods-RunnerTests.debug.xcconfig */;
493
495
  buildSettings = {
494
496
  BUNDLE_LOADER = "$(TEST_HOST)";
495
497
  CODE_SIGN_STYLE = Automatic;
496
498
  CURRENT_PROJECT_VERSION = 1;
497
499
  GENERATE_INFOPLIST_FILE = YES;
498
500
  MARKETING_VERSION = 1.0;
499
- PRODUCT_BUNDLE_IDENTIFIER = "sh.pyros.only-bible-app.RunnerTests";
501
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp.RunnerTests;
500
502
  PRODUCT_NAME = "$(TARGET_NAME)";
501
503
  SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
502
504
  SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -507,14 +509,14 @@
507
509
  };
508
510
  331C8089294A63A400263BE5 /* Release */ = {
509
511
  isa = XCBuildConfiguration;
510
- baseConfigurationReference = 794BD9E0636EF73B3EB3F8E9 /* Pods-RunnerTests.release.xcconfig */;
512
+ baseConfigurationReference = D7CDE34E68CE03AC0364CCBE /* Pods-RunnerTests.release.xcconfig */;
511
513
  buildSettings = {
512
514
  BUNDLE_LOADER = "$(TEST_HOST)";
513
515
  CODE_SIGN_STYLE = Automatic;
514
516
  CURRENT_PROJECT_VERSION = 1;
515
517
  GENERATE_INFOPLIST_FILE = YES;
516
518
  MARKETING_VERSION = 1.0;
517
- PRODUCT_BUNDLE_IDENTIFIER = "sh.pyros.only-bible-app.RunnerTests";
519
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp.RunnerTests;
518
520
  PRODUCT_NAME = "$(TARGET_NAME)";
519
521
  SWIFT_VERSION = 5.0;
520
522
  TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -523,14 +525,14 @@
523
525
  };
524
526
  331C808A294A63A400263BE5 /* Profile */ = {
525
527
  isa = XCBuildConfiguration;
526
- baseConfigurationReference = 11A3CB54E1C859033BF81ADE /* Pods-RunnerTests.profile.xcconfig */;
528
+ baseConfigurationReference = 8445FAB3A6845463961F425E /* Pods-RunnerTests.profile.xcconfig */;
527
529
  buildSettings = {
528
530
  BUNDLE_LOADER = "$(TEST_HOST)";
529
531
  CODE_SIGN_STYLE = Automatic;
530
532
  CURRENT_PROJECT_VERSION = 1;
531
533
  GENERATE_INFOPLIST_FILE = YES;
532
534
  MARKETING_VERSION = 1.0;
533
- PRODUCT_BUNDLE_IDENTIFIER = "sh.pyros.only-bible-app.RunnerTests";
535
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp.RunnerTests;
534
536
  PRODUCT_NAME = "$(TARGET_NAME)";
535
537
  SWIFT_VERSION = 5.0;
536
538
  TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -541,6 +543,7 @@
541
543
  isa = XCBuildConfiguration;
542
544
  buildSettings = {
543
545
  ALWAYS_SEARCH_USER_PATHS = NO;
546
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
544
547
  CLANG_ANALYZER_NONNULL = YES;
545
548
  CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
546
549
  CLANG_CXX_LIBRARY = "libc++";
@@ -570,6 +573,7 @@
570
573
  DEBUG_INFORMATION_FORMAT = dwarf;
571
574
  ENABLE_STRICT_OBJC_MSGSEND = YES;
572
575
  ENABLE_TESTABILITY = YES;
576
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
573
577
  GCC_C_LANGUAGE_STANDARD = gnu99;
574
578
  GCC_DYNAMIC_NO_PIC = NO;
575
579
  GCC_NO_COMMON_BLOCKS = YES;
@@ -584,7 +588,7 @@
584
588
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
585
589
  GCC_WARN_UNUSED_FUNCTION = YES;
586
590
  GCC_WARN_UNUSED_VARIABLE = YES;
587
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
591
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
588
592
  MTL_ENABLE_DEBUG_INFO = YES;
589
593
  ONLY_ACTIVE_ARCH = YES;
590
594
  SDKROOT = iphoneos;
@@ -596,6 +600,7 @@
596
600
  isa = XCBuildConfiguration;
597
601
  buildSettings = {
598
602
  ALWAYS_SEARCH_USER_PATHS = NO;
603
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
599
604
  CLANG_ANALYZER_NONNULL = YES;
600
605
  CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
601
606
  CLANG_CXX_LIBRARY = "libc++";
@@ -620,13 +625,12 @@
620
625
  CLANG_WARN_SUSPICIOUS_MOVE = YES;
621
626
  CLANG_WARN_UNREACHABLE_CODE = YES;
622
627
  CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
623
- CODE_SIGN_IDENTITY = "Apple Distribution: Peter John (FXH8NUGFYY)";
624
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution: Peter John (FXH8NUGFYY)";
628
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
625
- CODE_SIGN_STYLE = Manual;
626
629
  COPY_PHASE_STRIP = NO;
627
630
  DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
628
631
  ENABLE_NS_ASSERTIONS = NO;
629
632
  ENABLE_STRICT_OBJC_MSGSEND = YES;
633
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
630
634
  GCC_C_LANGUAGE_STANDARD = gnu99;
631
635
  GCC_NO_COMMON_BLOCKS = YES;
632
636
  GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -635,7 +639,7 @@
635
639
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
636
640
  GCC_WARN_UNUSED_FUNCTION = YES;
637
641
  GCC_WARN_UNUSED_VARIABLE = YES;
638
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
642
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
639
643
  MTL_ENABLE_DEBUG_INFO = NO;
640
644
  SDKROOT = iphoneos;
641
645
  SUPPORTED_PLATFORMS = iphoneos;
@@ -652,26 +656,18 @@
652
656
  buildSettings = {
653
657
  ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
654
658
  CLANG_ENABLE_MODULES = YES;
655
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
656
659
  CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
657
- "DEVELOPMENT_TEAM[sdk=iphoneos*]" = FXH8NUGFYY;
658
660
  ENABLE_BITCODE = NO;
659
661
  INFOPLIST_FILE = Runner/Info.plist;
660
- INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.books";
661
662
  LD_RUNPATH_SEARCH_PATHS = (
662
663
  "$(inherited)",
663
664
  "@executable_path/Frameworks",
664
665
  );
665
- PRODUCT_BUNDLE_IDENTIFIER = "sh.pyros.only-bible-app";
666
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp;
666
667
  PRODUCT_NAME = "$(TARGET_NAME)";
667
- "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "App Store Connect";
668
- SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
669
- SUPPORTS_MACCATALYST = NO;
670
- SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
671
668
  SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
672
669
  SWIFT_OPTIMIZATION_LEVEL = "-Onone";
673
670
  SWIFT_VERSION = 5.0;
674
- TARGETED_DEVICE_FAMILY = "1,2";
675
671
  VERSIONING_SYSTEM = "apple-generic";
676
672
  };
677
673
  name = Debug;
@@ -682,29 +678,17 @@
682
678
  buildSettings = {
683
679
  ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
684
680
  CLANG_ENABLE_MODULES = YES;
685
- CODE_SIGN_IDENTITY = "Apple Distribution: Peter John (FXH8NUGFYY)";
686
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution: Peter John (FXH8NUGFYY)";
687
- CODE_SIGN_STYLE = Manual;
688
681
  CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
689
- DEVELOPMENT_TEAM = FXH8NUGFYY;
690
- "DEVELOPMENT_TEAM[sdk=iphoneos*]" = FXH8NUGFYY;
691
682
  ENABLE_BITCODE = NO;
692
683
  INFOPLIST_FILE = Runner/Info.plist;
693
- INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.books";
694
684
  LD_RUNPATH_SEARCH_PATHS = (
695
685
  "$(inherited)",
696
686
  "@executable_path/Frameworks",
697
687
  );
698
- PRODUCT_BUNDLE_IDENTIFIER = "sh.pyros.only-bible-app";
688
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp;
699
689
  PRODUCT_NAME = "$(TARGET_NAME)";
700
- PROVISIONING_PROFILE_SPECIFIER = "App Store Connect";
701
- "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "App Store Connect";
702
- SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
703
- SUPPORTS_MACCATALYST = NO;
704
- SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
705
690
  SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
706
691
  SWIFT_VERSION = 5.0;
707
- TARGETED_DEVICE_FAMILY = "1,2";
708
692
  VERSIONING_SYSTEM = "apple-generic";
709
693
  };
710
694
  name = Release;
ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme CHANGED
@@ -26,6 +26,7 @@
26
26
  buildConfiguration = "Debug"
27
27
  selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
28
  selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
+ customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
29
30
  shouldUseLaunchSchemeArgsEnv = "YES">
30
31
  <MacroExpansion>
31
32
  <BuildableReference
@@ -54,11 +55,13 @@
54
55
  buildConfiguration = "Debug"
55
56
  selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
56
57
  selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
58
+ customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
57
59
  launchStyle = "0"
58
60
  useCustomWorkingDirectory = "NO"
59
61
  ignoresPersistentStateOnLaunch = "NO"
60
62
  debugDocumentVersioning = "YES"
61
63
  debugServiceExtension = "internal"
64
+ enableGPUValidationMode = "1"
62
65
  allowLocationSimulation = "YES">
63
66
  <BuildableProductRunnable
64
67
  runnableDebuggingMode = "0">
ios/Runner/AppDelegate.swift CHANGED
@@ -1,13 +1,16 @@
1
- import UIKit
2
1
  import Flutter
2
+ import UIKit
3
3
 
4
- @UIApplicationMain
4
+ @main
5
- @objc class AppDelegate: FlutterAppDelegate {
5
+ @objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
6
6
  override func application(
7
7
  _ application: UIApplication,
8
8
  didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9
9
  ) -> Bool {
10
- GeneratedPluginRegistrant.register(with: self)
11
10
  return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12
11
  }
12
+
13
+ func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
14
+ GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
15
+ }
13
16
  }
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] DELETED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] DELETED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] DELETED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] DELETED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] DELETED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] DELETED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/AppIcon.appiconset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "images" : [
3
- {
4
- "filename" : "background.png",
5
- "idiom" : "universal",
6
- "scale" : "1x"
7
- },
8
- {
9
- "idiom" : "universal",
10
- "scale" : "2x"
11
- },
12
- {
13
- "idiom" : "universal",
14
- "scale" : "3x"
15
- }
16
- ],
17
- "info" : {
18
- "author" : "xcode",
19
- "version" : 1
20
- }
21
- }
ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png DELETED
Binary file
ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "images" : [
3
3
  {
4
- "filename" : "LaunchImage.png",
5
4
  "idiom" : "universal",
5
+ "filename" : "LaunchImage.png",
6
6
  "scale" : "1x"
7
7
  },
8
8
  {
9
- "filename" : "[email protected]",
10
9
  "idiom" : "universal",
10
+ "filename" : "[email protected]",
11
11
  "scale" : "2x"
12
12
  },
13
13
  {
14
- "filename" : "[email protected]",
15
14
  "idiom" : "universal",
15
+ "filename" : "[email protected]",
16
16
  "scale" : "3x"
17
17
  }
18
18
  ],
19
19
  "info" : {
20
+ "version" : 1,
20
- "author" : "xcode",
21
+ "author" : "xcode"
21
- "version" : 1
22
22
  }
23
23
  }
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png CHANGED
Binary file
ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected] CHANGED
Binary file
ios/Runner/Assets.xcassets/LaunchImage.imageset/[email protected] CHANGED
Binary file
ios/Runner/Base.lproj/LaunchScreen.storyboard CHANGED
@@ -16,19 +16,13 @@
16
16
  <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
17
17
  <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
18
18
  <subviews>
19
- <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" image="LaunchBackground" translatesAutoresizingMaskIntoConstraints="NO" id="tWc-Dq-wcI"/>
20
- <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4"></imageView>
19
+ <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
20
+ </imageView>
21
21
  </subviews>
22
22
  <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
23
23
  <constraints>
24
- <constraint firstItem="YRO-k0-Ey4" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="3T2-ad-Qdv"/>
24
+ <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
25
- <constraint firstItem="tWc-Dq-wcI" firstAttribute="bottom" secondItem="Ze5-6b-2t3" secondAttribute="bottom" id="RPx-PI-7Xg"/>
26
- <constraint firstItem="tWc-Dq-wcI" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="SdS-ul-q2q"/>
27
- <constraint firstAttribute="trailing" secondItem="tWc-Dq-wcI" secondAttribute="trailing" id="Swv-Gf-Rwn"/>
28
- <constraint firstAttribute="trailing" secondItem="YRO-k0-Ey4" secondAttribute="trailing" id="TQA-XW-tRk"/>
29
- <constraint firstItem="YRO-k0-Ey4" firstAttribute="bottom" secondItem="Ze5-6b-2t3" secondAttribute="bottom" id="duK-uY-Gun"/>
25
+ <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
30
- <constraint firstItem="tWc-Dq-wcI" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="kV7-tw-vXt"/>
31
- <constraint firstItem="YRO-k0-Ey4" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="xPn-NY-SIU"/>
32
26
  </constraints>
33
27
  </view>
34
28
  </viewController>
@@ -38,7 +32,6 @@
38
32
  </scene>
39
33
  </scenes>
40
34
  <resources>
41
- <image name="LaunchImage" width="512" height="512"/>
35
+ <image name="LaunchImage" width="168" height="185"/>
42
- <image name="LaunchBackground" width="1" height="1"/>
43
36
  </resources>
44
37
  </document>
ios/Runner/Info.plist CHANGED
@@ -15,7 +15,7 @@
15
15
  <key>CFBundleInfoDictionaryVersion</key>
16
16
  <string>6.0</string>
17
17
  <key>CFBundleName</key>
18
- <string>only-bible-app</string>
18
+ <string>only_bible_app</string>
19
19
  <key>CFBundlePackageType</key>
20
20
  <string>APPL</string>
21
21
  <key>CFBundleShortVersionString</key>
@@ -24,18 +24,35 @@
24
24
  <string>????</string>
25
25
  <key>CFBundleVersion</key>
26
26
  <string>$(FLUTTER_BUILD_NUMBER)</string>
27
- <key>ITSAppUsesNonExemptEncryption</key>
28
- <false/>
29
27
  <key>LSRequiresIPhoneOS</key>
30
28
  <true/>
29
+ <key>UIApplicationSceneManifest</key>
30
+ <dict>
31
+ <key>UIApplicationSupportsMultipleScenes</key>
32
+ <false/>
33
+ <key>UISceneConfigurations</key>
34
+ <dict>
35
+ <key>UIWindowSceneSessionRoleApplication</key>
36
+ <array>
37
+ <dict>
38
+ <key>UISceneClassName</key>
39
+ <string>UIWindowScene</string>
40
+ <key>UISceneConfigurationName</key>
41
+ <string>flutter</string>
42
+ <key>UISceneDelegateClassName</key>
43
+ <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
44
+ <key>UISceneStoryboardFile</key>
45
+ <string>Main</string>
46
+ </dict>
47
+ </array>
48
+ </dict>
49
+ </dict>
31
50
  <key>UIApplicationSupportsIndirectInputEvents</key>
32
51
  <true/>
33
52
  <key>UILaunchStoryboardName</key>
34
53
  <string>LaunchScreen</string>
35
54
  <key>UIMainStoryboardFile</key>
36
55
  <string>Main</string>
37
- <key>UIStatusBarHidden</key>
38
- <false/>
39
56
  <key>UISupportedInterfaceOrientations</key>
40
57
  <array>
41
58
  <string>UIInterfaceOrientationPortrait</string>
ios/Runner/SceneDelegate.swift ADDED
@@ -0,0 +1,6 @@
1
+ import Flutter
2
+ import UIKit
3
+
4
+ class SceneDelegate: FlutterSceneDelegate {
5
+
6
+ }
ios/export_options.plist DELETED
@@ -1,21 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>compileBitcode</key>
6
- <true/>
7
- <key>method</key>
8
- <string>app-store</string>
9
- <key>provisioningProfiles</key>
10
- <dict>
11
- <key>sh.pyros.only-bible-app</key>
12
- <string>App Store Connect</string>
13
- </dict>
14
- <key>signingCertificate</key>
15
- <string>Apple Distribution</string>
16
- <key>signingStyle</key>
17
- <string>manual</string>
18
- <key>teamID</key>
19
- <string>FXH8NUGFYY</string>
20
- </dict>
21
- </plist>
ios/fastlane/Appfile DELETED
@@ -1,8 +0,0 @@
1
- app_identifier("sh.pyros.only-bible-app") # The bundle identifier of your app
2
- apple_id("[email protected]") # Your Apple Developer Portal username
3
-
4
- itc_team_id("126649823") # App Store Connect Team ID
5
- team_id("FXH8NUGFYY") # Developer Portal Team ID
6
-
7
- # For more information about the Appfile, see:
8
- # https://docs.fastlane.tools/advanced/#appfile
ios/fastlane/Deliverfile DELETED
@@ -1,3 +0,0 @@
1
- # The Deliverfile allows you to store various App Store Connect metadata
2
- # For more information, check out the docs
3
- # https://docs.fastlane.tools/actions/deliver/
ios/fastlane/Fastfile DELETED
@@ -1,25 +0,0 @@
1
- # This file contains the fastlane.tools configuration
2
- # You can find the documentation at https://docs.fastlane.tools
3
- #
4
- # For a list of all available actions, check out
5
- #
6
- # https://docs.fastlane.tools/actions
7
- #
8
- # For a list of all available plugins, check out
9
- #
10
- # https://docs.fastlane.tools/plugins/available-plugins
11
- #
12
-
13
- # Uncomment the line if you want fastlane to automatically update itself
14
- # update_fastlane
15
-
16
- default_platform(:ios)
17
-
18
- platform :ios do
19
- desc "Push a new release build to the App Store"
20
- lane :release do
21
- increment_build_number(xcodeproj: "Runner.xcodeproj")
22
- build_app(workspace: "Runner.xcworkspace", scheme: "Runner")
23
- upload_to_app_store
24
- end
25
- end
ios/fastlane/metadata/copyright.txt DELETED
@@ -1 +0,0 @@
1
- 2023-2024 pyrossh
ios/fastlane/metadata/en-US/apple_tv_privacy_policy.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/metadata/en-US/description.txt DELETED
@@ -1,15 +0,0 @@
1
- A minimalistic bible app with a simplistic design for easy reading everyday
2
- You can highlight verses and share them as well.
3
- Audio playback is available for some of the languages.
4
- These are the languages currently available in the app,
5
- Bengali
6
- English
7
- Gujarati
8
- Hindi
9
- Kannada
10
- Malayalam
11
- Nepali
12
- Oriya
13
- Punjabi
14
- Tamil
15
- Telugu
ios/fastlane/metadata/en-US/keywords.txt DELETED
@@ -1 +0,0 @@
1
- only,bible,app,simple,english,hindi,india
ios/fastlane/metadata/en-US/marketing_url.txt DELETED
@@ -1 +0,0 @@
1
- https://onlybible.app
ios/fastlane/metadata/en-US/name.txt DELETED
@@ -1 +0,0 @@
1
- Only Bible App
ios/fastlane/metadata/en-US/privacy_url.txt DELETED
@@ -1 +0,0 @@
1
- https://onlybible.app/privacy-policy
ios/fastlane/metadata/en-US/promotional_text.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/metadata/en-US/release_notes.txt DELETED
@@ -1,2 +0,0 @@
1
- Remove markdown
2
- Improve audio loading
ios/fastlane/metadata/en-US/subtitle.txt DELETED
@@ -1 +0,0 @@
1
- No ads, No in-app purchases
ios/fastlane/metadata/en-US/support_url.txt DELETED
@@ -1 +0,0 @@
1
- https://onlybible.app/about-us
ios/fastlane/metadata/primary_category.txt DELETED
@@ -1 +0,0 @@
1
- BOOKS
ios/fastlane/metadata/primary_first_sub_category.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/metadata/primary_second_sub_category.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/metadata/review_information/demo_password.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/metadata/review_information/demo_user.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/metadata/review_information/email_address.txt DELETED
@@ -1 +0,0 @@
1
ios/fastlane/metadata/review_information/first_name.txt DELETED
@@ -1 +0,0 @@
1
- Peter
ios/fastlane/metadata/review_information/last_name.txt DELETED
@@ -1 +0,0 @@
1
- John
ios/fastlane/metadata/review_information/notes.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/metadata/review_information/phone_number.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/metadata/secondary_category.txt DELETED
@@ -1 +0,0 @@
1
- REFERENCE
ios/fastlane/metadata/secondary_first_sub_category.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/metadata/secondary_second_sub_category.txt DELETED
@@ -1 +0,0 @@
1
-
ios/fastlane/screenshots/README.txt DELETED
@@ -1,30 +0,0 @@
1
- ## Screenshots Naming Rules
2
-
3
- Put all screenshots you want to use inside the folder of its language (e.g. `en-US`).
4
- The device type will automatically be recognized using the image resolution.
5
-
6
- The screenshots can be named whatever you want, but keep in mind they are sorted
7
- alphabetically, in a human-friendly way. See https://github.com/fastlane/fastlane/pull/18200 for more details.
8
-
9
- ### Exceptions
10
-
11
- #### iPad Pro (3rd Gen) 12.9"
12
-
13
- Since iPad Pro (3rd Gen) 12.9" and iPad Pro (2nd Gen) 12.9" have the same image
14
- resolution, screenshots of the iPad Pro (3rd gen) 12.9" must contain either the
15
- string `iPad Pro (12.9-inch) (3rd generation)`, `IPAD_PRO_3GEN_129`, or `ipadPro129`
16
- (App Store Connect's internal naming of the display family for the 3rd generation iPad Pro)
17
- in its filename to be assigned the correct display family and to be uploaded to
18
- the correct screenshot slot in your app's metadata.
19
-
20
- ### Other Platforms
21
-
22
- #### Apple TV
23
-
24
- Apple TV screenshots should be stored in a subdirectory named `appleTV` with language
25
- folders inside of it.
26
-
27
- #### iMessage
28
-
29
- iMessage screenshots, like the Apple TV ones, should also be stored in a subdirectory
30
- named `iMessage`, with language folders inside of it.
ios/fastlane/screenshots/en-US/0_APP_IPAD_PRO_129_0.png DELETED
Binary file
ios/fastlane/screenshots/en-US/0_APP_IPAD_PRO_3GEN_129_0.png DELETED
Binary file
ios/fastlane/screenshots/en-US/0_APP_IPHONE_55_0.png DELETED
Binary file
ios/fastlane/screenshots/en-US/0_APP_IPHONE_67_0.png DELETED
Binary file
ios/fastlane/screenshots/en-US/1_APP_IPAD_PRO_129_1.png DELETED
Binary file
ios/fastlane/screenshots/en-US/1_APP_IPAD_PRO_3GEN_129_1.png DELETED
Binary file
ios/fastlane/screenshots/en-US/1_APP_IPHONE_55_1.png DELETED
Binary file
ios/fastlane/screenshots/en-US/1_APP_IPHONE_67_1.png DELETED
Binary file
ios/fastlane/screenshots/en-US/2_APP_IPAD_PRO_129_2.png DELETED
Binary file
ios/fastlane/screenshots/en-US/2_APP_IPAD_PRO_3GEN_129_2.png DELETED
Binary file
ios/fastlane/screenshots/en-US/2_APP_IPHONE_67_2.png DELETED
Binary file
ios/fastlane/screenshots/en-US/3_APP_IPHONE_67_3.png DELETED
Binary file
ios/fastlane/screenshots/en-US/4_APP_IPHONE_67_4.png DELETED
Binary file
ios/fastlane/screenshots/en-US/5_APP_IPHONE_67_5.png DELETED
Binary file
ios/fastlane/screenshots/en-US/6_APP_IPHONE_67_6.png DELETED
Binary file
lib/app.dart CHANGED
@@ -1,5 +1,5 @@
1
1
  import "package:flutter/material.dart";
2
- import "package:flutter_gen/gen_l10n/app_localizations.dart";
2
+ import "package:only_bible_app/l10n/app_localizations.dart";
3
3
  import "package:only_bible_app/screens/bible_select_screen.dart";
4
4
  import "package:only_bible_app/screens/chapter_view_screen.dart";
5
5
  import "package:only_bible_app/store/state.dart";
lib/dialog.dart CHANGED
@@ -3,7 +3,7 @@ import "package:flutter/material.dart";
3
3
  import "package:only_bible_app/utils.dart";
4
4
  import "package:only_bible_app/navigation.dart";
5
5
 
6
- showAlert(BuildContext context, String title, String message) {
6
+ void showAlert(BuildContext context, String title, String message) {
7
7
  showDialog(
8
8
  context: context,
9
9
  builder: (_) {
@@ -28,11 +28,11 @@ showAlert(BuildContext context, String title, String message) {
28
28
  );
29
29
  }
30
30
 
31
- showError(BuildContext context, String message) {
31
+ void showError(BuildContext context, String message) {
32
32
  showAlert(context, "Error", message);
33
33
  }
34
34
 
35
- showReportError(BuildContext context, String message, StackTrace? st) {
35
+ void showReportError(BuildContext context, String message, StackTrace? st) {
36
36
  if (message.contains("LateInitializationError") || message.contains("HardwareKeyboard")) {
37
37
  return;
38
38
  }
lib/gen/assets.gen.dart ADDED
@@ -0,0 +1,68 @@
1
+ // dart format width=80
2
+
3
+ /// GENERATED CODE - DO NOT MODIFY BY HAND
4
+ /// *****************************************************
5
+ /// FlutterGen
6
+ /// *****************************************************
7
+
8
+ // coverage:ignore-file
9
+ // ignore_for_file: type=lint
10
+ // ignore_for_file: deprecated_member_use,directives_ordering,implicit_dynamic_list_literal,unnecessary_import
11
+
12
+ class $AssetsBiblesGen {
13
+ const $AssetsBiblesGen();
14
+
15
+ /// File path: assets/bibles/Bengali.txt
16
+ String get bengali => 'assets/bibles/Bengali.txt';
17
+
18
+ /// File path: assets/bibles/English.txt
19
+ String get english => 'assets/bibles/English.txt';
20
+
21
+ /// File path: assets/bibles/Gujarati.txt
22
+ String get gujarati => 'assets/bibles/Gujarati.txt';
23
+
24
+ /// File path: assets/bibles/Hindi.txt
25
+ String get hindi => 'assets/bibles/Hindi.txt';
26
+
27
+ /// File path: assets/bibles/Kannada.txt
28
+ String get kannada => 'assets/bibles/Kannada.txt';
29
+
30
+ /// File path: assets/bibles/Malayalam.txt
31
+ String get malayalam => 'assets/bibles/Malayalam.txt';
32
+
33
+ /// File path: assets/bibles/Nepali.txt
34
+ String get nepali => 'assets/bibles/Nepali.txt';
35
+
36
+ /// File path: assets/bibles/Oriya.txt
37
+ String get oriya => 'assets/bibles/Oriya.txt';
38
+
39
+ /// File path: assets/bibles/Punjabi.txt
40
+ String get punjabi => 'assets/bibles/Punjabi.txt';
41
+
42
+ /// File path: assets/bibles/Tamil.txt
43
+ String get tamil => 'assets/bibles/Tamil.txt';
44
+
45
+ /// File path: assets/bibles/Telugu.txt
46
+ String get telugu => 'assets/bibles/Telugu.txt';
47
+
48
+ /// List of all assets
49
+ List<String> get values => [
50
+ bengali,
51
+ english,
52
+ gujarati,
53
+ hindi,
54
+ kannada,
55
+ malayalam,
56
+ nepali,
57
+ oriya,
58
+ punjabi,
59
+ tamil,
60
+ telugu
61
+ ];
62
+ }
63
+
64
+ class Assets {
65
+ const Assets._();
66
+
67
+ static const $AssetsBiblesGen bibles = $AssetsBiblesGen();
68
+ }
lib/gen/fonts.gen.dart ADDED
@@ -0,0 +1,16 @@
1
+ // dart format width=80
2
+ /// GENERATED CODE - DO NOT MODIFY BY HAND
3
+ /// *****************************************************
4
+ /// FlutterGen
5
+ /// *****************************************************
6
+
7
+ // coverage:ignore-file
8
+ // ignore_for_file: type=lint
9
+ // ignore_for_file: deprecated_member_use,directives_ordering,implicit_dynamic_list_literal,unnecessary_import
10
+
11
+ class FontFamily {
12
+ FontFamily._();
13
+
14
+ /// Font family: Roboto
15
+ static const String roboto = 'Roboto';
16
+ }
lib/l10n/app_localizations.dart ADDED
@@ -0,0 +1,708 @@
1
+ import 'dart:async';
2
+
3
+ import 'package:flutter/foundation.dart';
4
+ import 'package:flutter/widgets.dart';
5
+ import 'package:flutter_localizations/flutter_localizations.dart';
6
+ import 'package:intl/intl.dart' as intl;
7
+
8
+ import 'app_localizations_bn.dart';
9
+ import 'app_localizations_en.dart';
10
+ import 'app_localizations_gu.dart';
11
+ import 'app_localizations_hi.dart';
12
+ import 'app_localizations_kn.dart';
13
+ import 'app_localizations_ml.dart';
14
+ import 'app_localizations_ne.dart';
15
+ import 'app_localizations_or.dart';
16
+ import 'app_localizations_pa.dart';
17
+ import 'app_localizations_ta.dart';
18
+ import 'app_localizations_te.dart';
19
+
20
+ // ignore_for_file: type=lint
21
+
22
+ /// Callers can lookup localized strings with an instance of AppLocalizations
23
+ /// returned by `AppLocalizations.of(context)`.
24
+ ///
25
+ /// Applications need to include `AppLocalizations.delegate()` in their app's
26
+ /// `localizationDelegates` list, and the locales they support in the app's
27
+ /// `supportedLocales` list. For example:
28
+ ///
29
+ /// ```dart
30
+ /// import 'l10n/app_localizations.dart';
31
+ ///
32
+ /// return MaterialApp(
33
+ /// localizationsDelegates: AppLocalizations.localizationsDelegates,
34
+ /// supportedLocales: AppLocalizations.supportedLocales,
35
+ /// home: MyApplicationHome(),
36
+ /// );
37
+ /// ```
38
+ ///
39
+ /// ## Update pubspec.yaml
40
+ ///
41
+ /// Please make sure to update your pubspec.yaml to include the following
42
+ /// packages:
43
+ ///
44
+ /// ```yaml
45
+ /// dependencies:
46
+ /// # Internationalization support.
47
+ /// flutter_localizations:
48
+ /// sdk: flutter
49
+ /// intl: any # Use the pinned version from flutter_localizations
50
+ ///
51
+ /// # Rest of dependencies
52
+ /// ```
53
+ ///
54
+ /// ## iOS Applications
55
+ ///
56
+ /// iOS applications define key application metadata, including supported
57
+ /// locales, in an Info.plist file that is built into the application bundle.
58
+ /// To configure the locales supported by your app, you’ll need to edit this
59
+ /// file.
60
+ ///
61
+ /// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
62
+ /// Then, in the Project Navigator, open the Info.plist file under the Runner
63
+ /// project’s Runner folder.
64
+ ///
65
+ /// Next, select the Information Property List item, select Add Item from the
66
+ /// Editor menu, then select Localizations from the pop-up menu.
67
+ ///
68
+ /// Select and expand the newly-created Localizations item then, for each
69
+ /// locale your application supports, add a new item and select the locale
70
+ /// you wish to add from the pop-up menu in the Value field. This list should
71
+ /// be consistent with the languages listed in the AppLocalizations.supportedLocales
72
+ /// property.
73
+ abstract class AppLocalizations {
74
+ AppLocalizations(String locale)
75
+ : localeName = intl.Intl.canonicalizedLocale(locale.toString());
76
+
77
+ final String localeName;
78
+
79
+ static AppLocalizations? of(BuildContext context) {
80
+ return Localizations.of<AppLocalizations>(context, AppLocalizations);
81
+ }
82
+
83
+ static const LocalizationsDelegate<AppLocalizations> delegate =
84
+ _AppLocalizationsDelegate();
85
+
86
+ /// A list of this localizations delegate along with the default localizations
87
+ /// delegates.
88
+ ///
89
+ /// Returns a list of localizations delegates containing this delegate along with
90
+ /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
91
+ /// and GlobalWidgetsLocalizations.delegate.
92
+ ///
93
+ /// Additional delegates can be added by appending to this list in
94
+ /// MaterialApp. This list does not have to be used at all if a custom list
95
+ /// of delegates is preferred or required.
96
+ static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
97
+ <LocalizationsDelegate<dynamic>>[
98
+ delegate,
99
+ GlobalMaterialLocalizations.delegate,
100
+ GlobalCupertinoLocalizations.delegate,
101
+ GlobalWidgetsLocalizations.delegate,
102
+ ];
103
+
104
+ /// A list of this localizations delegate's supported locales.
105
+ static const List<Locale> supportedLocales = <Locale>[
106
+ Locale('bn'),
107
+ Locale('en'),
108
+ Locale('gu'),
109
+ Locale('hi'),
110
+ Locale('kn'),
111
+ Locale('ml'),
112
+ Locale('ne'),
113
+ Locale('or'),
114
+ Locale('pa'),
115
+ Locale('ta'),
116
+ Locale('te')
117
+ ];
118
+
119
+ /// No description provided for @languageCode.
120
+ ///
121
+ /// In en, this message translates to:
122
+ /// **'en'**
123
+ String get languageCode;
124
+
125
+ /// No description provided for @audioVoice.
126
+ ///
127
+ /// In en, this message translates to:
128
+ /// **'en-GB-RyanNeural'**
129
+ String get audioVoice;
130
+
131
+ /// No description provided for @title.
132
+ ///
133
+ /// In en, this message translates to:
134
+ /// **'Only Bible App'**
135
+ String get title;
136
+
137
+ /// No description provided for @languageTitle.
138
+ ///
139
+ /// In en, this message translates to:
140
+ /// **'English'**
141
+ String get languageTitle;
142
+
143
+ /// No description provided for @localeLanguageTitle.
144
+ ///
145
+ /// In en, this message translates to:
146
+ /// **'English'**
147
+ String get localeLanguageTitle;
148
+
149
+ /// No description provided for @oldTestamentTitle.
150
+ ///
151
+ /// In en, this message translates to:
152
+ /// **'Old Testament'**
153
+ String get oldTestamentTitle;
154
+
155
+ /// No description provided for @newTestamentTitle.
156
+ ///
157
+ /// In en, this message translates to:
158
+ /// **'New Testament'**
159
+ String get newTestamentTitle;
160
+
161
+ /// No description provided for @bibleSelectTitle.
162
+ ///
163
+ /// In en, this message translates to:
164
+ /// **'Please select a bible'**
165
+ String get bibleSelectTitle;
166
+
167
+ /// No description provided for @audioError.
168
+ ///
169
+ /// In en, this message translates to:
170
+ /// **'Could not play audio. This Bible might not have audio support.'**
171
+ String get audioError;
172
+
173
+ /// No description provided for @urlError.
174
+ ///
175
+ /// In en, this message translates to:
176
+ /// **'Could not open browser'**
177
+ String get urlError;
178
+
179
+ /// No description provided for @settingsTitle.
180
+ ///
181
+ /// In en, this message translates to:
182
+ /// **'Settings'**
183
+ String get settingsTitle;
184
+
185
+ /// No description provided for @bibleTitle.
186
+ ///
187
+ /// In en, this message translates to:
188
+ /// **'Bible'**
189
+ String get bibleTitle;
190
+
191
+ /// No description provided for @themeTitle.
192
+ ///
193
+ /// In en, this message translates to:
194
+ /// **'Theme'**
195
+ String get themeTitle;
196
+
197
+ /// No description provided for @incrementFontTitle.
198
+ ///
199
+ /// In en, this message translates to:
200
+ /// **'Increase text size'**
201
+ String get incrementFontTitle;
202
+
203
+ /// No description provided for @decrementFontTitle.
204
+ ///
205
+ /// In en, this message translates to:
206
+ /// **'Decrease text size'**
207
+ String get decrementFontTitle;
208
+
209
+ /// No description provided for @boldFontTitle.
210
+ ///
211
+ /// In en, this message translates to:
212
+ /// **'Bold text'**
213
+ String get boldFontTitle;
214
+
215
+ /// No description provided for @engTitles.
216
+ ///
217
+ /// In en, this message translates to:
218
+ /// **'Use english titles'**
219
+ String get engTitles;
220
+
221
+ /// No description provided for @privacyPolicyTitle.
222
+ ///
223
+ /// In en, this message translates to:
224
+ /// **'Privacy Policy'**
225
+ String get privacyPolicyTitle;
226
+
227
+ /// No description provided for @termsAndConditionsTitle.
228
+ ///
229
+ /// In en, this message translates to:
230
+ /// **'Terms & Conditions'**
231
+ String get termsAndConditionsTitle;
232
+
233
+ /// No description provided for @shareAppTitle.
234
+ ///
235
+ /// In en, this message translates to:
236
+ /// **'Share the app'**
237
+ String get shareAppTitle;
238
+
239
+ /// No description provided for @rateAppTitle.
240
+ ///
241
+ /// In en, this message translates to:
242
+ /// **'Rate the app'**
243
+ String get rateAppTitle;
244
+
245
+ /// No description provided for @aboutUsTitle.
246
+ ///
247
+ /// In en, this message translates to:
248
+ /// **'About us'**
249
+ String get aboutUsTitle;
250
+
251
+ /// No description provided for @genesis.
252
+ ///
253
+ /// In en, this message translates to:
254
+ /// **'Genesis'**
255
+ String get genesis;
256
+
257
+ /// No description provided for @exodus.
258
+ ///
259
+ /// In en, this message translates to:
260
+ /// **'Exodus'**
261
+ String get exodus;
262
+
263
+ /// No description provided for @leviticus.
264
+ ///
265
+ /// In en, this message translates to:
266
+ /// **'Leviticus'**
267
+ String get leviticus;
268
+
269
+ /// No description provided for @numbers.
270
+ ///
271
+ /// In en, this message translates to:
272
+ /// **'Numbers'**
273
+ String get numbers;
274
+
275
+ /// No description provided for @deuteronomy.
276
+ ///
277
+ /// In en, this message translates to:
278
+ /// **'Deuteronomy'**
279
+ String get deuteronomy;
280
+
281
+ /// No description provided for @joshua.
282
+ ///
283
+ /// In en, this message translates to:
284
+ /// **'Joshua'**
285
+ String get joshua;
286
+
287
+ /// No description provided for @judges.
288
+ ///
289
+ /// In en, this message translates to:
290
+ /// **'Judges'**
291
+ String get judges;
292
+
293
+ /// No description provided for @ruth.
294
+ ///
295
+ /// In en, this message translates to:
296
+ /// **'Ruth'**
297
+ String get ruth;
298
+
299
+ /// No description provided for @firstSamuel.
300
+ ///
301
+ /// In en, this message translates to:
302
+ /// **'1 Samuel'**
303
+ String get firstSamuel;
304
+
305
+ /// No description provided for @secondSamuel.
306
+ ///
307
+ /// In en, this message translates to:
308
+ /// **'2 Samuel'**
309
+ String get secondSamuel;
310
+
311
+ /// No description provided for @firstKings.
312
+ ///
313
+ /// In en, this message translates to:
314
+ /// **'1 Kings'**
315
+ String get firstKings;
316
+
317
+ /// No description provided for @secondKings.
318
+ ///
319
+ /// In en, this message translates to:
320
+ /// **'2 Kings'**
321
+ String get secondKings;
322
+
323
+ /// No description provided for @firstChronicles.
324
+ ///
325
+ /// In en, this message translates to:
326
+ /// **'1 Chronicles'**
327
+ String get firstChronicles;
328
+
329
+ /// No description provided for @secondChronicles.
330
+ ///
331
+ /// In en, this message translates to:
332
+ /// **'2 Chronicles'**
333
+ String get secondChronicles;
334
+
335
+ /// No description provided for @ezra.
336
+ ///
337
+ /// In en, this message translates to:
338
+ /// **'Ezra'**
339
+ String get ezra;
340
+
341
+ /// No description provided for @nehemiah.
342
+ ///
343
+ /// In en, this message translates to:
344
+ /// **'Nehemiah'**
345
+ String get nehemiah;
346
+
347
+ /// No description provided for @esther.
348
+ ///
349
+ /// In en, this message translates to:
350
+ /// **'Esther'**
351
+ String get esther;
352
+
353
+ /// No description provided for @job.
354
+ ///
355
+ /// In en, this message translates to:
356
+ /// **'Job'**
357
+ String get job;
358
+
359
+ /// No description provided for @psalms.
360
+ ///
361
+ /// In en, this message translates to:
362
+ /// **'Psalms'**
363
+ String get psalms;
364
+
365
+ /// No description provided for @proverbs.
366
+ ///
367
+ /// In en, this message translates to:
368
+ /// **'Proverbs'**
369
+ String get proverbs;
370
+
371
+ /// No description provided for @ecclesiastes.
372
+ ///
373
+ /// In en, this message translates to:
374
+ /// **'Ecclesiastes'**
375
+ String get ecclesiastes;
376
+
377
+ /// No description provided for @song_of_solomon.
378
+ ///
379
+ /// In en, this message translates to:
380
+ /// **'Song of Solomon'**
381
+ String get song_of_solomon;
382
+
383
+ /// No description provided for @isaiah.
384
+ ///
385
+ /// In en, this message translates to:
386
+ /// **'Isaiah'**
387
+ String get isaiah;
388
+
389
+ /// No description provided for @jeremiah.
390
+ ///
391
+ /// In en, this message translates to:
392
+ /// **'Jeremiah'**
393
+ String get jeremiah;
394
+
395
+ /// No description provided for @lamentations.
396
+ ///
397
+ /// In en, this message translates to:
398
+ /// **'Lamentations'**
399
+ String get lamentations;
400
+
401
+ /// No description provided for @ezekiel.
402
+ ///
403
+ /// In en, this message translates to:
404
+ /// **'Ezekiel'**
405
+ String get ezekiel;
406
+
407
+ /// No description provided for @daniel.
408
+ ///
409
+ /// In en, this message translates to:
410
+ /// **'Daniel'**
411
+ String get daniel;
412
+
413
+ /// No description provided for @hosea.
414
+ ///
415
+ /// In en, this message translates to:
416
+ /// **'Hosea'**
417
+ String get hosea;
418
+
419
+ /// No description provided for @joel.
420
+ ///
421
+ /// In en, this message translates to:
422
+ /// **'Joel'**
423
+ String get joel;
424
+
425
+ /// No description provided for @amos.
426
+ ///
427
+ /// In en, this message translates to:
428
+ /// **'Amos'**
429
+ String get amos;
430
+
431
+ /// No description provided for @obadiah.
432
+ ///
433
+ /// In en, this message translates to:
434
+ /// **'Obadiah'**
435
+ String get obadiah;
436
+
437
+ /// No description provided for @jonah.
438
+ ///
439
+ /// In en, this message translates to:
440
+ /// **'Jonah'**
441
+ String get jonah;
442
+
443
+ /// No description provided for @micah.
444
+ ///
445
+ /// In en, this message translates to:
446
+ /// **'Micah'**
447
+ String get micah;
448
+
449
+ /// No description provided for @nahum.
450
+ ///
451
+ /// In en, this message translates to:
452
+ /// **'Nahum'**
453
+ String get nahum;
454
+
455
+ /// No description provided for @habakkuk.
456
+ ///
457
+ /// In en, this message translates to:
458
+ /// **'Habakkuk'**
459
+ String get habakkuk;
460
+
461
+ /// No description provided for @zephaniah.
462
+ ///
463
+ /// In en, this message translates to:
464
+ /// **'Zephaniah'**
465
+ String get zephaniah;
466
+
467
+ /// No description provided for @haggai.
468
+ ///
469
+ /// In en, this message translates to:
470
+ /// **'Haggai'**
471
+ String get haggai;
472
+
473
+ /// No description provided for @zechariah.
474
+ ///
475
+ /// In en, this message translates to:
476
+ /// **'Zechariah'**
477
+ String get zechariah;
478
+
479
+ /// No description provided for @malachi.
480
+ ///
481
+ /// In en, this message translates to:
482
+ /// **'Malachi'**
483
+ String get malachi;
484
+
485
+ /// No description provided for @matthew.
486
+ ///
487
+ /// In en, this message translates to:
488
+ /// **'Matthew'**
489
+ String get matthew;
490
+
491
+ /// No description provided for @mark.
492
+ ///
493
+ /// In en, this message translates to:
494
+ /// **'Mark'**
495
+ String get mark;
496
+
497
+ /// No description provided for @luke.
498
+ ///
499
+ /// In en, this message translates to:
500
+ /// **'Luke'**
501
+ String get luke;
502
+
503
+ /// No description provided for @john.
504
+ ///
505
+ /// In en, this message translates to:
506
+ /// **'John'**
507
+ String get john;
508
+
509
+ /// No description provided for @acts.
510
+ ///
511
+ /// In en, this message translates to:
512
+ /// **'Acts'**
513
+ String get acts;
514
+
515
+ /// No description provided for @romans.
516
+ ///
517
+ /// In en, this message translates to:
518
+ /// **'Romans'**
519
+ String get romans;
520
+
521
+ /// No description provided for @firstCorinthians.
522
+ ///
523
+ /// In en, this message translates to:
524
+ /// **'1 Corinthians'**
525
+ String get firstCorinthians;
526
+
527
+ /// No description provided for @secondCorinthians.
528
+ ///
529
+ /// In en, this message translates to:
530
+ /// **'2 Corinthians'**
531
+ String get secondCorinthians;
532
+
533
+ /// No description provided for @galatians.
534
+ ///
535
+ /// In en, this message translates to:
536
+ /// **'Galatians'**
537
+ String get galatians;
538
+
539
+ /// No description provided for @ephesians.
540
+ ///
541
+ /// In en, this message translates to:
542
+ /// **'Ephesians'**
543
+ String get ephesians;
544
+
545
+ /// No description provided for @philippians.
546
+ ///
547
+ /// In en, this message translates to:
548
+ /// **'Philippians'**
549
+ String get philippians;
550
+
551
+ /// No description provided for @colossians.
552
+ ///
553
+ /// In en, this message translates to:
554
+ /// **'Colossians'**
555
+ String get colossians;
556
+
557
+ /// No description provided for @firstThessalonians.
558
+ ///
559
+ /// In en, this message translates to:
560
+ /// **'1 Thessalonians'**
561
+ String get firstThessalonians;
562
+
563
+ /// No description provided for @secondThessalonians.
564
+ ///
565
+ /// In en, this message translates to:
566
+ /// **'2 Thessalonians'**
567
+ String get secondThessalonians;
568
+
569
+ /// No description provided for @firstTimothy.
570
+ ///
571
+ /// In en, this message translates to:
572
+ /// **'1 Timothy'**
573
+ String get firstTimothy;
574
+
575
+ /// No description provided for @secondTimothy.
576
+ ///
577
+ /// In en, this message translates to:
578
+ /// **'2 Timothy'**
579
+ String get secondTimothy;
580
+
581
+ /// No description provided for @titus.
582
+ ///
583
+ /// In en, this message translates to:
584
+ /// **'Titus'**
585
+ String get titus;
586
+
587
+ /// No description provided for @philemon.
588
+ ///
589
+ /// In en, this message translates to:
590
+ /// **'Philemon'**
591
+ String get philemon;
592
+
593
+ /// No description provided for @hebrews.
594
+ ///
595
+ /// In en, this message translates to:
596
+ /// **'Hebrews'**
597
+ String get hebrews;
598
+
599
+ /// No description provided for @james.
600
+ ///
601
+ /// In en, this message translates to:
602
+ /// **'James'**
603
+ String get james;
604
+
605
+ /// No description provided for @firstPeter.
606
+ ///
607
+ /// In en, this message translates to:
608
+ /// **'1 Peter'**
609
+ String get firstPeter;
610
+
611
+ /// No description provided for @secondPeter.
612
+ ///
613
+ /// In en, this message translates to:
614
+ /// **'2 Peter'**
615
+ String get secondPeter;
616
+
617
+ /// No description provided for @firstJohn.
618
+ ///
619
+ /// In en, this message translates to:
620
+ /// **'1 John'**
621
+ String get firstJohn;
622
+
623
+ /// No description provided for @secondJohn.
624
+ ///
625
+ /// In en, this message translates to:
626
+ /// **'2 John'**
627
+ String get secondJohn;
628
+
629
+ /// No description provided for @thirdJohn.
630
+ ///
631
+ /// In en, this message translates to:
632
+ /// **'3 John'**
633
+ String get thirdJohn;
634
+
635
+ /// No description provided for @jude.
636
+ ///
637
+ /// In en, this message translates to:
638
+ /// **'Jude'**
639
+ String get jude;
640
+
641
+ /// No description provided for @revelation.
642
+ ///
643
+ /// In en, this message translates to:
644
+ /// **'Revelation'**
645
+ String get revelation;
646
+ }
647
+
648
+ class _AppLocalizationsDelegate
649
+ extends LocalizationsDelegate<AppLocalizations> {
650
+ const _AppLocalizationsDelegate();
651
+
652
+ @override
653
+ Future<AppLocalizations> load(Locale locale) {
654
+ return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
655
+ }
656
+
657
+ @override
658
+ bool isSupported(Locale locale) => <String>[
659
+ 'bn',
660
+ 'en',
661
+ 'gu',
662
+ 'hi',
663
+ 'kn',
664
+ 'ml',
665
+ 'ne',
666
+ 'or',
667
+ 'pa',
668
+ 'ta',
669
+ 'te'
670
+ ].contains(locale.languageCode);
671
+
672
+ @override
673
+ bool shouldReload(_AppLocalizationsDelegate old) => false;
674
+ }
675
+
676
+ AppLocalizations lookupAppLocalizations(Locale locale) {
677
+ // Lookup logic when only language code is specified.
678
+ switch (locale.languageCode) {
679
+ case 'bn':
680
+ return AppLocalizationsBn();
681
+ case 'en':
682
+ return AppLocalizationsEn();
683
+ case 'gu':
684
+ return AppLocalizationsGu();
685
+ case 'hi':
686
+ return AppLocalizationsHi();
687
+ case 'kn':
688
+ return AppLocalizationsKn();
689
+ case 'ml':
690
+ return AppLocalizationsMl();
691
+ case 'ne':
692
+ return AppLocalizationsNe();
693
+ case 'or':
694
+ return AppLocalizationsOr();
695
+ case 'pa':
696
+ return AppLocalizationsPa();
697
+ case 'ta':
698
+ return AppLocalizationsTa();
699
+ case 'te':
700
+ return AppLocalizationsTe();
701
+ }
702
+
703
+ throw FlutterError(
704
+ 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
705
+ 'an issue with the localizations generation tool. Please file an issue '
706
+ 'on GitHub with a reproducible sample app and the gen-l10n configuration '
707
+ 'that was used.');
708
+ }
lib/l10n/app_localizations_bn.dart ADDED
@@ -0,0 +1,274 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Bengali Bangla (`bn`).
8
+ class AppLocalizationsBn extends AppLocalizations {
9
+ AppLocalizationsBn([String locale = 'bn']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'bn';
13
+
14
+ @override
15
+ String get audioVoice => 'bn-IN-TanishaaNeural';
16
+
17
+ @override
18
+ String get title => 'শুধুমাত্র বাইবেল অ্যাপ';
19
+
20
+ @override
21
+ String get languageTitle => 'Bengali';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'বাংলা';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'পুরানো ইচ্ছাপত্র';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'নববিধান';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'একটি বাইবেল নির্বাচন করুন';
34
+
35
+ @override
36
+ String get audioError => 'অডিও চালাতে পারেনি৷';
37
+
38
+ @override
39
+ String get urlError => 'ব্রাউজার খুলতে পারেনি';
40
+
41
+ @override
42
+ String get settingsTitle => 'সেটিংস';
43
+
44
+ @override
45
+ String get bibleTitle => 'বাইবেল';
46
+
47
+ @override
48
+ String get themeTitle => 'রঙ';
49
+
50
+ @override
51
+ String get incrementFontTitle => 'পাঠ্যের আকার বাড়ান';
52
+
53
+ @override
54
+ String get decrementFontTitle => 'পাঠ্যের আকার হ্রাস করুন';
55
+
56
+ @override
57
+ String get boldFontTitle => 'পাঠ্য বোল্ড';
58
+
59
+ @override
60
+ String get engTitles => 'ইংরেজি শিরোনাম ব্যবহার করুন';
61
+
62
+ @override
63
+ String get privacyPolicyTitle => 'গোপনীয়তা নীতি';
64
+
65
+ @override
66
+ String get termsAndConditionsTitle => 'শর্তাবলী';
67
+
68
+ @override
69
+ String get shareAppTitle => 'অ্যাপটি শেয়ার করুন';
70
+
71
+ @override
72
+ String get rateAppTitle => 'অ্যাপ্লিকেশন রেট';
73
+
74
+ @override
75
+ String get aboutUsTitle => 'আমাদের সম্পর্কে';
76
+
77
+ @override
78
+ String get genesis => 'আদিপুস্তক ';
79
+
80
+ @override
81
+ String get exodus => 'যাত্রাপুস্তক ';
82
+
83
+ @override
84
+ String get leviticus => 'লেবীয় পুস্তক';
85
+
86
+ @override
87
+ String get numbers => 'গণনা পুস্তক';
88
+
89
+ @override
90
+ String get deuteronomy => 'দ্বিতীয় বিবরণ';
91
+
92
+ @override
93
+ String get joshua => 'যোশুয়া';
94
+
95
+ @override
96
+ String get judges => 'বিচারকচরিত ';
97
+
98
+ @override
99
+ String get ruth => 'রুথ';
100
+
101
+ @override
102
+ String get firstSamuel => 'সামুয়েল ১';
103
+
104
+ @override
105
+ String get secondSamuel => 'সামুয়েল ২';
106
+
107
+ @override
108
+ String get firstKings => 'রাজাবলি ১';
109
+
110
+ @override
111
+ String get secondKings => 'রাজাবলি ২';
112
+
113
+ @override
114
+ String get firstChronicles => 'বংশাবলি ১';
115
+
116
+ @override
117
+ String get secondChronicles => 'বংশাবলি ২';
118
+
119
+ @override
120
+ String get ezra => 'এজরা';
121
+
122
+ @override
123
+ String get nehemiah => 'নেহেমিয়া';
124
+
125
+ @override
126
+ String get esther => 'এস্থার';
127
+
128
+ @override
129
+ String get job => 'যোব';
130
+
131
+ @override
132
+ String get psalms => 'সামসঙ্গীত';
133
+
134
+ @override
135
+ String get proverbs => 'প্রবচন';
136
+
137
+ @override
138
+ String get ecclesiastes => 'উপদেশক';
139
+
140
+ @override
141
+ String get song_of_solomon => 'পরম গীত';
142
+
143
+ @override
144
+ String get isaiah => 'ইসাইয়া';
145
+
146
+ @override
147
+ String get jeremiah => 'যেরেমিয়া';
148
+
149
+ @override
150
+ String get lamentations => 'বিলাপ-গাথা';
151
+
152
+ @override
153
+ String get ezekiel => 'এজেকিয়েল';
154
+
155
+ @override
156
+ String get daniel => 'দানিয়েল';
157
+
158
+ @override
159
+ String get hosea => 'হোসেয়া';
160
+
161
+ @override
162
+ String get joel => 'যোয়েল';
163
+
164
+ @override
165
+ String get amos => 'আমোস';
166
+
167
+ @override
168
+ String get obadiah => 'ওবাদিয়া';
169
+
170
+ @override
171
+ String get jonah => 'যোনা';
172
+
173
+ @override
174
+ String get micah => 'মিখা';
175
+
176
+ @override
177
+ String get nahum => 'নাহুম';
178
+
179
+ @override
180
+ String get habakkuk => 'হাবাকুক';
181
+
182
+ @override
183
+ String get zephaniah => 'জেফানিয়া';
184
+
185
+ @override
186
+ String get haggai => 'হগয়';
187
+
188
+ @override
189
+ String get zechariah => 'জাখারিয়া';
190
+
191
+ @override
192
+ String get malachi => 'মালাখি';
193
+
194
+ @override
195
+ String get matthew => 'মথি';
196
+
197
+ @override
198
+ String get mark => 'মার্ক';
199
+
200
+ @override
201
+ String get luke => 'লুক';
202
+
203
+ @override
204
+ String get john => 'যোহন';
205
+
206
+ @override
207
+ String get acts => 'पশিষ্যচরিত';
208
+
209
+ @override
210
+ String get romans => 'রোমীয়';
211
+
212
+ @override
213
+ String get firstCorinthians => 'করিন্থীয় ১';
214
+
215
+ @override
216
+ String get secondCorinthians => 'করিন্থীয় ২';
217
+
218
+ @override
219
+ String get galatians => 'গালাতীয়';
220
+
221
+ @override
222
+ String get ephesians => 'এফেসীয়';
223
+
224
+ @override
225
+ String get philippians => 'ফিলিপ্পীয়';
226
+
227
+ @override
228
+ String get colossians => 'কলসীয়';
229
+
230
+ @override
231
+ String get firstThessalonians => 'থেসালোনিকীয় ১';
232
+
233
+ @override
234
+ String get secondThessalonians => 'থেসালোনিকীয় ২';
235
+
236
+ @override
237
+ String get firstTimothy => 'তিমথি ১';
238
+
239
+ @override
240
+ String get secondTimothy => 'তিমথি ২';
241
+
242
+ @override
243
+ String get titus => 'তীত';
244
+
245
+ @override
246
+ String get philemon => 'ফিলেমন';
247
+
248
+ @override
249
+ String get hebrews => 'হিব্রুদের কাছে পত্র';
250
+
251
+ @override
252
+ String get james => 'যাকোবের পত্র';
253
+
254
+ @override
255
+ String get firstPeter => 'পিতরের ১ম পত্র';
256
+
257
+ @override
258
+ String get secondPeter => 'পিতরের ২য় পত্র';
259
+
260
+ @override
261
+ String get firstJohn => 'যোহনের ১ম পত্র';
262
+
263
+ @override
264
+ String get secondJohn => 'যোহনের ২য় পত্';
265
+
266
+ @override
267
+ String get thirdJohn => 'যোহনের ৩য় পত্';
268
+
269
+ @override
270
+ String get jude => 'যুদের পত্র';
271
+
272
+ @override
273
+ String get revelation => 'पপ্রত্যাদেশ';
274
+ }
lib/l10n/app_localizations_en.dart ADDED
@@ -0,0 +1,275 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for English (`en`).
8
+ class AppLocalizationsEn extends AppLocalizations {
9
+ AppLocalizationsEn([String locale = 'en']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'en';
13
+
14
+ @override
15
+ String get audioVoice => 'en-GB-RyanNeural';
16
+
17
+ @override
18
+ String get title => 'Only Bible App';
19
+
20
+ @override
21
+ String get languageTitle => 'English';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'English';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'Old Testament';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'New Testament';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'Please select a bible';
34
+
35
+ @override
36
+ String get audioError =>
37
+ 'Could not play audio. This Bible might not have audio support.';
38
+
39
+ @override
40
+ String get urlError => 'Could not open browser';
41
+
42
+ @override
43
+ String get settingsTitle => 'Settings';
44
+
45
+ @override
46
+ String get bibleTitle => 'Bible';
47
+
48
+ @override
49
+ String get themeTitle => 'Theme';
50
+
51
+ @override
52
+ String get incrementFontTitle => 'Increase text size';
53
+
54
+ @override
55
+ String get decrementFontTitle => 'Decrease text size';
56
+
57
+ @override
58
+ String get boldFontTitle => 'Bold text';
59
+
60
+ @override
61
+ String get engTitles => 'Use english titles';
62
+
63
+ @override
64
+ String get privacyPolicyTitle => 'Privacy Policy';
65
+
66
+ @override
67
+ String get termsAndConditionsTitle => 'Terms & Conditions';
68
+
69
+ @override
70
+ String get shareAppTitle => 'Share the app';
71
+
72
+ @override
73
+ String get rateAppTitle => 'Rate the app';
74
+
75
+ @override
76
+ String get aboutUsTitle => 'About us';
77
+
78
+ @override
79
+ String get genesis => 'Genesis';
80
+
81
+ @override
82
+ String get exodus => 'Exodus';
83
+
84
+ @override
85
+ String get leviticus => 'Leviticus';
86
+
87
+ @override
88
+ String get numbers => 'Numbers';
89
+
90
+ @override
91
+ String get deuteronomy => 'Deuteronomy';
92
+
93
+ @override
94
+ String get joshua => 'Joshua';
95
+
96
+ @override
97
+ String get judges => 'Judges';
98
+
99
+ @override
100
+ String get ruth => 'Ruth';
101
+
102
+ @override
103
+ String get firstSamuel => '1 Samuel';
104
+
105
+ @override
106
+ String get secondSamuel => '2 Samuel';
107
+
108
+ @override
109
+ String get firstKings => '1 Kings';
110
+
111
+ @override
112
+ String get secondKings => '2 Kings';
113
+
114
+ @override
115
+ String get firstChronicles => '1 Chronicles';
116
+
117
+ @override
118
+ String get secondChronicles => '2 Chronicles';
119
+
120
+ @override
121
+ String get ezra => 'Ezra';
122
+
123
+ @override
124
+ String get nehemiah => 'Nehemiah';
125
+
126
+ @override
127
+ String get esther => 'Esther';
128
+
129
+ @override
130
+ String get job => 'Job';
131
+
132
+ @override
133
+ String get psalms => 'Psalms';
134
+
135
+ @override
136
+ String get proverbs => 'Proverbs';
137
+
138
+ @override
139
+ String get ecclesiastes => 'Ecclesiastes';
140
+
141
+ @override
142
+ String get song_of_solomon => 'Song of Solomon';
143
+
144
+ @override
145
+ String get isaiah => 'Isaiah';
146
+
147
+ @override
148
+ String get jeremiah => 'Jeremiah';
149
+
150
+ @override
151
+ String get lamentations => 'Lamentations';
152
+
153
+ @override
154
+ String get ezekiel => 'Ezekiel';
155
+
156
+ @override
157
+ String get daniel => 'Daniel';
158
+
159
+ @override
160
+ String get hosea => 'Hosea';
161
+
162
+ @override
163
+ String get joel => 'Joel';
164
+
165
+ @override
166
+ String get amos => 'Amos';
167
+
168
+ @override
169
+ String get obadiah => 'Obadiah';
170
+
171
+ @override
172
+ String get jonah => 'Jonah';
173
+
174
+ @override
175
+ String get micah => 'Micah';
176
+
177
+ @override
178
+ String get nahum => 'Nahum';
179
+
180
+ @override
181
+ String get habakkuk => 'Habakkuk';
182
+
183
+ @override
184
+ String get zephaniah => 'Zephaniah';
185
+
186
+ @override
187
+ String get haggai => 'Haggai';
188
+
189
+ @override
190
+ String get zechariah => 'Zechariah';
191
+
192
+ @override
193
+ String get malachi => 'Malachi';
194
+
195
+ @override
196
+ String get matthew => 'Matthew';
197
+
198
+ @override
199
+ String get mark => 'Mark';
200
+
201
+ @override
202
+ String get luke => 'Luke';
203
+
204
+ @override
205
+ String get john => 'John';
206
+
207
+ @override
208
+ String get acts => 'Acts';
209
+
210
+ @override
211
+ String get romans => 'Romans';
212
+
213
+ @override
214
+ String get firstCorinthians => '1 Corinthians';
215
+
216
+ @override
217
+ String get secondCorinthians => '2 Corinthians';
218
+
219
+ @override
220
+ String get galatians => 'Galatians';
221
+
222
+ @override
223
+ String get ephesians => 'Ephesians';
224
+
225
+ @override
226
+ String get philippians => 'Philippians';
227
+
228
+ @override
229
+ String get colossians => 'Colossians';
230
+
231
+ @override
232
+ String get firstThessalonians => '1 Thessalonians';
233
+
234
+ @override
235
+ String get secondThessalonians => '2 Thessalonians';
236
+
237
+ @override
238
+ String get firstTimothy => '1 Timothy';
239
+
240
+ @override
241
+ String get secondTimothy => '2 Timothy';
242
+
243
+ @override
244
+ String get titus => 'Titus';
245
+
246
+ @override
247
+ String get philemon => 'Philemon';
248
+
249
+ @override
250
+ String get hebrews => 'Hebrews';
251
+
252
+ @override
253
+ String get james => 'James';
254
+
255
+ @override
256
+ String get firstPeter => '1 Peter';
257
+
258
+ @override
259
+ String get secondPeter => '2 Peter';
260
+
261
+ @override
262
+ String get firstJohn => '1 John';
263
+
264
+ @override
265
+ String get secondJohn => '2 John';
266
+
267
+ @override
268
+ String get thirdJohn => '3 John';
269
+
270
+ @override
271
+ String get jude => 'Jude';
272
+
273
+ @override
274
+ String get revelation => 'Revelation';
275
+ }
lib/l10n/app_localizations_gu.dart ADDED
@@ -0,0 +1,274 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Gujarati (`gu`).
8
+ class AppLocalizationsGu extends AppLocalizations {
9
+ AppLocalizationsGu([String locale = 'gu']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'gu';
13
+
14
+ @override
15
+ String get audioVoice => 'gu-IN-DhwaniNeural';
16
+
17
+ @override
18
+ String get title => 'ફક્ત બાઇબલ એપ્લિકેશન';
19
+
20
+ @override
21
+ String get languageTitle => 'Gujarati';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'ગુજરાતી';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'ઓલ્ડ ટેસ્ટામેન્ટ';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'ન્યૂ વસિયતનામું';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'કૃપા કરીને બાઇબલ પસંદ કરો';
34
+
35
+ @override
36
+ String get audioError => 'ઑડિયો ચલાવી શકાયો નથી';
37
+
38
+ @override
39
+ String get urlError => 'બ્રાઉઝર ખોલી શકાયું નથી';
40
+
41
+ @override
42
+ String get settingsTitle => 'સેટિંગ્સ';
43
+
44
+ @override
45
+ String get bibleTitle => 'બાઇબલ';
46
+
47
+ @override
48
+ String get themeTitle => 'રંગો';
49
+
50
+ @override
51
+ String get incrementFontTitle => 'ટેક્સ્ટનું કદ વધારો';
52
+
53
+ @override
54
+ String get decrementFontTitle => 'ટેક્સ્ટનું કદ ઘટાડો';
55
+
56
+ @override
57
+ String get boldFontTitle => 'બોલ્ડ ટેક્સ્ટ';
58
+
59
+ @override
60
+ String get engTitles => 'અંગ્રેજી શીર્ષકોનો ઉપયોગ કરો';
61
+
62
+ @override
63
+ String get privacyPolicyTitle => 'ગોપનીયતા નીતિ';
64
+
65
+ @override
66
+ String get termsAndConditionsTitle => 'શરતો અને નિયમો';
67
+
68
+ @override
69
+ String get shareAppTitle => 'એપ્લિકેશન શેર કરો';
70
+
71
+ @override
72
+ String get rateAppTitle => 'એપ્લિકેશનને રેટ કરો';
73
+
74
+ @override
75
+ String get aboutUsTitle => 'અમારા વિશે';
76
+
77
+ @override
78
+ String get genesis => 'ઊત્પત્તિ';
79
+
80
+ @override
81
+ String get exodus => 'નિર્ગમન';
82
+
83
+ @override
84
+ String get leviticus => 'લેવીય';
85
+
86
+ @override
87
+ String get numbers => 'ગણના';
88
+
89
+ @override
90
+ String get deuteronomy => 'પુનર્નિયમ';
91
+
92
+ @override
93
+ String get joshua => 'યહોશુઆ';
94
+
95
+ @override
96
+ String get judges => 'ન્યાયાધીશો';
97
+
98
+ @override
99
+ String get ruth => 'રૂત';
100
+
101
+ @override
102
+ String get firstSamuel => '1 શમુએલ';
103
+
104
+ @override
105
+ String get secondSamuel => '2 શમએલ';
106
+
107
+ @override
108
+ String get firstKings => '1 રાજઓ';
109
+
110
+ @override
111
+ String get secondKings => '2 રાજઓ';
112
+
113
+ @override
114
+ String get firstChronicles => '1 કાળવ્રત્તાંત';
115
+
116
+ @override
117
+ String get secondChronicles => '2 કાળવ્રત્તાંત';
118
+
119
+ @override
120
+ String get ezra => 'એઝરા';
121
+
122
+ @override
123
+ String get nehemiah => 'નહેમ્યા';
124
+
125
+ @override
126
+ String get esther => 'એસ્તેર';
127
+
128
+ @override
129
+ String get job => 'અયૂબ';
130
+
131
+ @override
132
+ String get psalms => 'ગીતશાસ્ત્ર';
133
+
134
+ @override
135
+ String get proverbs => 'નીતિવચનો';
136
+
137
+ @override
138
+ String get ecclesiastes => 'સભાશિક્ષક';
139
+
140
+ @override
141
+ String get song_of_solomon => 'સભાશિક્ષક';
142
+
143
+ @override
144
+ String get isaiah => 'યશાયા';
145
+
146
+ @override
147
+ String get jeremiah => 'ચર્મિયા';
148
+
149
+ @override
150
+ String get lamentations => 'યર્મિયાનો વિલાપ';
151
+
152
+ @override
153
+ String get ezekiel => 'યર્મિયાનો વિલાપ';
154
+
155
+ @override
156
+ String get daniel => 'દારિયેલ';
157
+
158
+ @override
159
+ String get hosea => 'હોશિયા';
160
+
161
+ @override
162
+ String get joel => 'યોએલ';
163
+
164
+ @override
165
+ String get amos => 'આમોસ';
166
+
167
+ @override
168
+ String get obadiah => 'ઓબાધા';
169
+
170
+ @override
171
+ String get jonah => 'યૂના';
172
+
173
+ @override
174
+ String get micah => 'મીખાહ';
175
+
176
+ @override
177
+ String get nahum => 'નાહૂમ';
178
+
179
+ @override
180
+ String get habakkuk => 'હબાક્કુક';
181
+
182
+ @override
183
+ String get zephaniah => 'સફન્યા';
184
+
185
+ @override
186
+ String get haggai => 'હાગ્ગાચ';
187
+
188
+ @override
189
+ String get zechariah => 'ઝખાર્યા';
190
+
191
+ @override
192
+ String get malachi => 'માલાખી';
193
+
194
+ @override
195
+ String get matthew => 'માથ્થી';
196
+
197
+ @override
198
+ String get mark => 'માર્ક';
199
+
200
+ @override
201
+ String get luke => 'લૂક';
202
+
203
+ @override
204
+ String get john => 'યોહાન';
205
+
206
+ @override
207
+ String get acts => 'પ્રેરિતોનાં ક્રત્યો';
208
+
209
+ @override
210
+ String get romans => 'રોમનોને પત્ર';
211
+
212
+ @override
213
+ String get firstCorinthians => '1 કરિંથીઓને';
214
+
215
+ @override
216
+ String get secondCorinthians => '2 કરિંથીઓને';
217
+
218
+ @override
219
+ String get galatians => 'ગલાતીઓને પત્ર';
220
+
221
+ @override
222
+ String get ephesians => 'એફેસીઓને પત્ર';
223
+
224
+ @override
225
+ String get philippians => 'ફિલિપ્પીઓને પત્ર';
226
+
227
+ @override
228
+ String get colossians => 'કલોસ્સીઓને પત્ર';
229
+
230
+ @override
231
+ String get firstThessalonians => '1 થેસ્સલોનિકીઓને';
232
+
233
+ @override
234
+ String get secondThessalonians => '2 થેસ્સલોનિકીઓને';
235
+
236
+ @override
237
+ String get firstTimothy => '1 તિમોથીને';
238
+
239
+ @override
240
+ String get secondTimothy => '2 તિમોથીને';
241
+
242
+ @override
243
+ String get titus => 'તિતસનં પત્ર';
244
+
245
+ @override
246
+ String get philemon => 'ફિલેમોને પત્ર';
247
+
248
+ @override
249
+ String get hebrews => 'હિબ્રૂઓને પત્ર';
250
+
251
+ @override
252
+ String get james => 'યાકૂબનો';
253
+
254
+ @override
255
+ String get firstPeter => '1 પિતરનો પત્ર';
256
+
257
+ @override
258
+ String get secondPeter => '2 પિતરનો પત્ર';
259
+
260
+ @override
261
+ String get firstJohn => '1 યોહાનનો પત્ર';
262
+
263
+ @override
264
+ String get secondJohn => '2 યોહાનનો પત્ર';
265
+
266
+ @override
267
+ String get thirdJohn => '3 યોહાનનો પત્ર';
268
+
269
+ @override
270
+ String get jude => 'યહૂદાનો પત્ર';
271
+
272
+ @override
273
+ String get revelation => 'પ્રકટીકરણ';
274
+ }
lib/l10n/app_localizations_hi.dart ADDED
@@ -0,0 +1,274 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Hindi (`hi`).
8
+ class AppLocalizationsHi extends AppLocalizations {
9
+ AppLocalizationsHi([String locale = 'hi']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'hi';
13
+
14
+ @override
15
+ String get audioVoice => 'hi-IN-SwaraNeural';
16
+
17
+ @override
18
+ String get title => 'केवल बाइबिल ऐप';
19
+
20
+ @override
21
+ String get languageTitle => 'Hindi';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'हिंदी';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'पुराना नियम';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'नया नियम';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'कृपया एक बाइबिल चुनें';
34
+
35
+ @override
36
+ String get audioError => 'ऑडियो नहीं चलाया जा सका';
37
+
38
+ @override
39
+ String get urlError => 'ब्राउज़र नहीं खुल सका';
40
+
41
+ @override
42
+ String get settingsTitle => 'समायोजन';
43
+
44
+ @override
45
+ String get bibleTitle => 'बाइबिल';
46
+
47
+ @override
48
+ String get themeTitle => 'रंग';
49
+
50
+ @override
51
+ String get incrementFontTitle => 'पढ़ने का माप बढ़ाएँ';
52
+
53
+ @override
54
+ String get decrementFontTitle => 'पढ़ने का माप कम करें';
55
+
56
+ @override
57
+ String get boldFontTitle => 'बोल्ड साइज़';
58
+
59
+ @override
60
+ String get engTitles => 'अंग्रेजी शीर्षकों का प्रयोग करें';
61
+
62
+ @override
63
+ String get privacyPolicyTitle => 'गोपनीयता नीति';
64
+
65
+ @override
66
+ String get termsAndConditionsTitle => 'नियम एवं शर्तें';
67
+
68
+ @override
69
+ String get shareAppTitle => 'ऐप साझा करें';
70
+
71
+ @override
72
+ String get rateAppTitle => 'एप्लिकेशन की श्रेणी बताओ';
73
+
74
+ @override
75
+ String get aboutUsTitle => 'हमारे बारे में';
76
+
77
+ @override
78
+ String get genesis => 'उत्पत्ति';
79
+
80
+ @override
81
+ String get exodus => 'निर्गमन';
82
+
83
+ @override
84
+ String get leviticus => 'लैव्यवस्था';
85
+
86
+ @override
87
+ String get numbers => 'गिनती';
88
+
89
+ @override
90
+ String get deuteronomy => 'व्यवस्थाविवरण';
91
+
92
+ @override
93
+ String get joshua => 'यहोशू ';
94
+
95
+ @override
96
+ String get judges => 'न्यायियों';
97
+
98
+ @override
99
+ String get ruth => 'रूत';
100
+
101
+ @override
102
+ String get firstSamuel => '1 शमूएल';
103
+
104
+ @override
105
+ String get secondSamuel => '2 शमूएल';
106
+
107
+ @override
108
+ String get firstKings => '1 राजा';
109
+
110
+ @override
111
+ String get secondKings => '2 राजा';
112
+
113
+ @override
114
+ String get firstChronicles => '1 इतिहास';
115
+
116
+ @override
117
+ String get secondChronicles => '2 इतिहास';
118
+
119
+ @override
120
+ String get ezra => 'एज्रा';
121
+
122
+ @override
123
+ String get nehemiah => 'नहेमायाह';
124
+
125
+ @override
126
+ String get esther => 'एस्तेर';
127
+
128
+ @override
129
+ String get job => 'अय्यूब';
130
+
131
+ @override
132
+ String get psalms => 'भजन संहिता';
133
+
134
+ @override
135
+ String get proverbs => 'नीतिवचन ';
136
+
137
+ @override
138
+ String get ecclesiastes => 'सभोपदेशक';
139
+
140
+ @override
141
+ String get song_of_solomon => 'श्रेष्ठगीत';
142
+
143
+ @override
144
+ String get isaiah => 'यशायाह';
145
+
146
+ @override
147
+ String get jeremiah => 'यिर्मयाह';
148
+
149
+ @override
150
+ String get lamentations => 'विलापगीत';
151
+
152
+ @override
153
+ String get ezekiel => 'यहेजकेल';
154
+
155
+ @override
156
+ String get daniel => 'दानिय्येल';
157
+
158
+ @override
159
+ String get hosea => 'होशे';
160
+
161
+ @override
162
+ String get joel => 'योएल';
163
+
164
+ @override
165
+ String get amos => 'आमोस';
166
+
167
+ @override
168
+ String get obadiah => 'ओबद्दाह';
169
+
170
+ @override
171
+ String get jonah => 'योना';
172
+
173
+ @override
174
+ String get micah => 'मीका';
175
+
176
+ @override
177
+ String get nahum => 'नहूम';
178
+
179
+ @override
180
+ String get habakkuk => 'हबक्कूक';
181
+
182
+ @override
183
+ String get zephaniah => 'सपन्याह';
184
+
185
+ @override
186
+ String get haggai => 'हाग्गै';
187
+
188
+ @override
189
+ String get zechariah => 'जकर्याह';
190
+
191
+ @override
192
+ String get malachi => 'मलाकी';
193
+
194
+ @override
195
+ String get matthew => 'मत्ती';
196
+
197
+ @override
198
+ String get mark => 'मरकुस';
199
+
200
+ @override
201
+ String get luke => 'लूका';
202
+
203
+ @override
204
+ String get john => 'यूहन्ना';
205
+
206
+ @override
207
+ String get acts => 'प्रेरितों के काम';
208
+
209
+ @override
210
+ String get romans => 'रोमियो';
211
+
212
+ @override
213
+ String get firstCorinthians => '1 कुरिन्थियों';
214
+
215
+ @override
216
+ String get secondCorinthians => '2 कुरिन्थियों';
217
+
218
+ @override
219
+ String get galatians => 'गलातियों';
220
+
221
+ @override
222
+ String get ephesians => 'इफिसियों';
223
+
224
+ @override
225
+ String get philippians => 'फिलिप्पियों';
226
+
227
+ @override
228
+ String get colossians => 'कुलुस्सियों';
229
+
230
+ @override
231
+ String get firstThessalonians => '1 थिस्सलुनीकियों';
232
+
233
+ @override
234
+ String get secondThessalonians => '2 थिस्सलुनीकियों';
235
+
236
+ @override
237
+ String get firstTimothy => '1 तीमुथियुस';
238
+
239
+ @override
240
+ String get secondTimothy => '2 तीमुथियुस';
241
+
242
+ @override
243
+ String get titus => 'तीतुस';
244
+
245
+ @override
246
+ String get philemon => 'फिलेमोन';
247
+
248
+ @override
249
+ String get hebrews => 'इब्रानियों';
250
+
251
+ @override
252
+ String get james => 'याकूब';
253
+
254
+ @override
255
+ String get firstPeter => '1 पतरस';
256
+
257
+ @override
258
+ String get secondPeter => '2 पतरस';
259
+
260
+ @override
261
+ String get firstJohn => '1 यूहन्ना';
262
+
263
+ @override
264
+ String get secondJohn => '2 यूहन्ना';
265
+
266
+ @override
267
+ String get thirdJohn => '3 यूहन्ना';
268
+
269
+ @override
270
+ String get jude => 'यहूदा';
271
+
272
+ @override
273
+ String get revelation => 'प्रकाशित वाक्य';
274
+ }
lib/l10n/app_localizations_kn.dart ADDED
@@ -0,0 +1,274 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Kannada (`kn`).
8
+ class AppLocalizationsKn extends AppLocalizations {
9
+ AppLocalizationsKn([String locale = 'kn']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'kn';
13
+
14
+ @override
15
+ String get audioVoice => 'kn-IN-GaganNeural';
16
+
17
+ @override
18
+ String get title => 'ಬೈಬಲ್ ಮಾತ್ರರ';
19
+
20
+ @override
21
+ String get languageTitle => 'Kannada';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'ಕನ್ನಡ';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'ಹಳೆಯ ಒಡಂಬಡಿಕೆ';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'ಹೊಸ ಒಡಂಬಡಿಕೆಯು';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'ದಯವಿಟ್ಟು ಬೈಬಲ್ ಆಯ್ಕೆಮಾಡಿ';
34
+
35
+ @override
36
+ String get audioError => 'ಧ್ವನಿಯನ್ನು ಪ್ಲೇ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ';
37
+
38
+ @override
39
+ String get urlError => 'ವೆಬ್‌ಸೈಟ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ್ಲ';
40
+
41
+ @override
42
+ String get settingsTitle => 'ಸಂಯೋಜನೆಗಳು';
43
+
44
+ @override
45
+ String get bibleTitle => 'ಬೈಬಲ್';
46
+
47
+ @override
48
+ String get themeTitle => 'ಬಣ್ಣಗಳು';
49
+
50
+ @override
51
+ String get incrementFontTitle => 'ಪಠ್ಯದ ಗಾತ್ರವನ್ನು ಹೆಚ್ಚಿಸಿ';
52
+
53
+ @override
54
+ String get decrementFontTitle => 'ಪಠ್ಯದ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಿ';
55
+
56
+ @override
57
+ String get boldFontTitle => 'ದಪ್ಪ ಪಠ್ಯ';
58
+
59
+ @override
60
+ String get engTitles => 'ಇಂಗ್ಲಿಷ್ ಶೀರ್ಷಿಕೆಗಳನ್ನು ಬಳಸಿ';
61
+
62
+ @override
63
+ String get privacyPolicyTitle => 'ಗೌಪ್ಯತಾ ನೀತಿ';
64
+
65
+ @override
66
+ String get termsAndConditionsTitle => 'ನಿಯಮ ಮತ್ತು ಶರತ್ತುಗಳು';
67
+
68
+ @override
69
+ String get shareAppTitle => 'ಅಪ್ಲಿಕೇಶನ್ ಹಂಚಿಕೊಳ್ಳಿ';
70
+
71
+ @override
72
+ String get rateAppTitle => 'ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರೇಟ್ ಮಾಡಿ';
73
+
74
+ @override
75
+ String get aboutUsTitle => 'ನಮ್ಮ ಬಗ್ಗೆ';
76
+
77
+ @override
78
+ String get genesis => 'ಆದಿಕಾಂಡ';
79
+
80
+ @override
81
+ String get exodus => 'ವಿಮೋಚನಕಾಂಡ';
82
+
83
+ @override
84
+ String get leviticus => 'ಯಾಜಕಕಾಂಡ';
85
+
86
+ @override
87
+ String get numbers => 'ಅರಣ್ಯಕಾಂಡ';
88
+
89
+ @override
90
+ String get deuteronomy => 'ಧರ್ಮೋಪದೇಶಕಾಂಡ';
91
+
92
+ @override
93
+ String get joshua => 'ಯೆಹೋಶುವ';
94
+
95
+ @override
96
+ String get judges => 'ನ್ಯಾಯಸ್ಥಾಪಕರು';
97
+
98
+ @override
99
+ String get ruth => 'ರೂತಳು';
100
+
101
+ @override
102
+ String get firstSamuel => '1 ಸಮುವೇಲನು';
103
+
104
+ @override
105
+ String get secondSamuel => '2 ಸಮುವೇಲನು';
106
+
107
+ @override
108
+ String get firstKings => '1 ಅರಸುಗಳು';
109
+
110
+ @override
111
+ String get secondKings => '2 ಅರಸುಗಳು';
112
+
113
+ @override
114
+ String get firstChronicles => '1 ಪೂರ್ವಕಾಲವೃತ್ತಾ';
115
+
116
+ @override
117
+ String get secondChronicles => '2 ಪೂರ್ವಕಾಲವೃತ್ತಾ';
118
+
119
+ @override
120
+ String get ezra => 'ಎಜ್ರನು';
121
+
122
+ @override
123
+ String get nehemiah => 'ನೆಹೆಮಿಯ';
124
+
125
+ @override
126
+ String get esther => 'ಎಸ್ತೇರಳು';
127
+
128
+ @override
129
+ String get job => 'ಯೋಬನು';
130
+
131
+ @override
132
+ String get psalms => 'ಕೀರ್ತನೆಗಳು';
133
+
134
+ @override
135
+ String get proverbs => 'ಙ್ಞಾನೋಕ್ತಿಗಳು';
136
+
137
+ @override
138
+ String get ecclesiastes => 'ಪ್ರಸಂಗಿ';
139
+
140
+ @override
141
+ String get song_of_solomon => 'ಪರಮ ಗೀತ';
142
+
143
+ @override
144
+ String get isaiah => 'ಯೆಶಾಯ';
145
+
146
+ @override
147
+ String get jeremiah => 'ಯೆರೆಮಿಯ';
148
+
149
+ @override
150
+ String get lamentations => 'ಪ್ರಲಾಪಗಳು';
151
+
152
+ @override
153
+ String get ezekiel => 'ಯೆಹೆಜ್ಕೇಲನು';
154
+
155
+ @override
156
+ String get daniel => 'ದಾನಿಯೇಲನು';
157
+
158
+ @override
159
+ String get hosea => 'ಹೋಶೇ';
160
+
161
+ @override
162
+ String get joel => 'ಯೋವೇಲ';
163
+
164
+ @override
165
+ String get amos => 'ಆಮೋಸ';
166
+
167
+ @override
168
+ String get obadiah => 'ಓಬದ್ಯ';
169
+
170
+ @override
171
+ String get jonah => 'ಯೋನ';
172
+
173
+ @override
174
+ String get micah => 'ಮಿಕ';
175
+
176
+ @override
177
+ String get nahum => 'ನಹೂಮ';
178
+
179
+ @override
180
+ String get habakkuk => 'ಹಬಕ್ಕೂಕ್ಕ';
181
+
182
+ @override
183
+ String get zephaniah => 'ಚೆಫನ್ಯ';
184
+
185
+ @override
186
+ String get haggai => 'ಹಗ್ಗಾಯ';
187
+
188
+ @override
189
+ String get zechariah => 'ಜೆಕರ್ಯ';
190
+
191
+ @override
192
+ String get malachi => 'ಮಲಾಕಿಯ';
193
+
194
+ @override
195
+ String get matthew => 'ಮತ್ತಾಯನು';
196
+
197
+ @override
198
+ String get mark => 'ಮಾರ್ಕನು';
199
+
200
+ @override
201
+ String get luke => 'ಲೂಕನು';
202
+
203
+ @override
204
+ String get john => 'ಯೋಹಾನನು';
205
+
206
+ @override
207
+ String get acts => 'ಅಪೊಸ್ತಲರ ಕೃತ್ಯಗ';
208
+
209
+ @override
210
+ String get romans => 'ರೋಮಾಪುರದವರಿಗೆ';
211
+
212
+ @override
213
+ String get firstCorinthians => '1 ಕೊರಿಂಥದವರಿಗೆ';
214
+
215
+ @override
216
+ String get secondCorinthians => '2 ಕೊರಿಂಥದವರಿಗೆ';
217
+
218
+ @override
219
+ String get galatians => 'ಗಲಾತ್ಯದವರಿಗೆ';
220
+
221
+ @override
222
+ String get ephesians => 'ಎಫೆಸದವರಿಗೆ';
223
+
224
+ @override
225
+ String get philippians => 'ಫಿಲಿಪ್ಪಿಯವರಿಗೆ';
226
+
227
+ @override
228
+ String get colossians => 'ಕೊಲೊಸ್ಸೆಯವರಿಗೆ';
229
+
230
+ @override
231
+ String get firstThessalonians => '1 ಥೆಸಲೊನೀಕದವರಿಗೆ';
232
+
233
+ @override
234
+ String get secondThessalonians => '2 ಥೆಸಲೊನೀಕದವರಿಗೆ';
235
+
236
+ @override
237
+ String get firstTimothy => '1 ತಿಮೊಥೆಯನಿಗೆ';
238
+
239
+ @override
240
+ String get secondTimothy => '2 ತಿಮೊಥೆಯನಿಗೆ';
241
+
242
+ @override
243
+ String get titus => 'ತೀತನಿಗೆ';
244
+
245
+ @override
246
+ String get philemon => 'ಫಿಲೆಮೋನನಿಗೆ';
247
+
248
+ @override
249
+ String get hebrews => 'ಇಬ್ರಿಯರಿಗೆ';
250
+
251
+ @override
252
+ String get james => 'ಯಾಕೋಬನು';
253
+
254
+ @override
255
+ String get firstPeter => '1 ಪೇತ್ರನು';
256
+
257
+ @override
258
+ String get secondPeter => '2 ಪೇತ್ರನು';
259
+
260
+ @override
261
+ String get firstJohn => '1 ಯೋಹಾನನು';
262
+
263
+ @override
264
+ String get secondJohn => '2 ಯೋಹಾನನು';
265
+
266
+ @override
267
+ String get thirdJohn => '3 ಯೋಹಾನನು';
268
+
269
+ @override
270
+ String get jude => 'ಯೂದನು';
271
+
272
+ @override
273
+ String get revelation => 'ಪ್ರಕಟನೆ';
274
+ }
lib/l10n/app_localizations_ml.dart ADDED
@@ -0,0 +1,274 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Malayalam (`ml`).
8
+ class AppLocalizationsMl extends AppLocalizations {
9
+ AppLocalizationsMl([String locale = 'ml']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'ml';
13
+
14
+ @override
15
+ String get audioVoice => 'ml-IN-SobhanaNeural';
16
+
17
+ @override
18
+ String get title => 'ബൈബിൾ ആപ്പ് മാത്രം';
19
+
20
+ @override
21
+ String get languageTitle => 'Malayalam';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'മലയാളം';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'പഴയ നിയമം';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'പുതിയ നിയമം';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'ദയവായി ഒരു ബൈബിൾ തിരഞ്ഞെടുക്കുക';
34
+
35
+ @override
36
+ String get audioError => 'ഓഡിയോ പ്ലേ ചെയ്യാനായില്ല';
37
+
38
+ @override
39
+ String get urlError => 'ബ്രൗസർ തുറക്കാൻ കഴിഞ്ഞില്ല';
40
+
41
+ @override
42
+ String get settingsTitle => 'ക്രമീകരണങ്ങൾ';
43
+
44
+ @override
45
+ String get bibleTitle => 'ബൈബിൾ';
46
+
47
+ @override
48
+ String get themeTitle => 'നിറങ്ങൾ';
49
+
50
+ @override
51
+ String get incrementFontTitle => 'ടെക്സ്റ്റ് വലുപ്പം വർദ്ധിപ്പിക്കുക';
52
+
53
+ @override
54
+ String get decrementFontTitle => 'ടെക്സ്റ്റ് വലുപ്പം കുറയ്ക്കുക';
55
+
56
+ @override
57
+ String get boldFontTitle => 'ബോൾഡ് ടെക്സ്റ്റ്';
58
+
59
+ @override
60
+ String get engTitles => 'ഇംഗ്ലീഷ് തലക്കെട്ടുകൾ ഉപയോഗിക്കുക';
61
+
62
+ @override
63
+ String get privacyPolicyTitle => 'സ്വകാര്യതാ നയം';
64
+
65
+ @override
66
+ String get termsAndConditionsTitle => 'നിബന്ധനകളും വ്യവസ്ഥകളും';
67
+
68
+ @override
69
+ String get shareAppTitle => 'ആപ്പ് പങ്കിടുക';
70
+
71
+ @override
72
+ String get rateAppTitle => 'ആപ്പ് റേറ്റുചെയ്യുക';
73
+
74
+ @override
75
+ String get aboutUsTitle => 'ഞങ്ങളേക്കുറിച്ച്';
76
+
77
+ @override
78
+ String get genesis => 'ഉല്പത്തി';
79
+
80
+ @override
81
+ String get exodus => 'പുറപ്പാട്';
82
+
83
+ @override
84
+ String get leviticus => 'ലേവ്യപുസ്തകം';
85
+
86
+ @override
87
+ String get numbers => 'സംഖ്യാപുസ്തകം';
88
+
89
+ @override
90
+ String get deuteronomy => 'ആവർത്തനം';
91
+
92
+ @override
93
+ String get joshua => 'യോശുവ';
94
+
95
+ @override
96
+ String get judges => 'ന്യായാധിപന്മാർ';
97
+
98
+ @override
99
+ String get ruth => 'രൂത്ത്';
100
+
101
+ @override
102
+ String get firstSamuel => '1 ശമൂവേൽ';
103
+
104
+ @override
105
+ String get secondSamuel => '2 ശമൂവേൽ';
106
+
107
+ @override
108
+ String get firstKings => '1 രാജാക്കന്മാർ';
109
+
110
+ @override
111
+ String get secondKings => '2 രാജാക്കന്മാർ';
112
+
113
+ @override
114
+ String get firstChronicles => '1 ദിനവൃത്താന്തം';
115
+
116
+ @override
117
+ String get secondChronicles => '2 ദിനവൃത്താന്തം';
118
+
119
+ @override
120
+ String get ezra => 'എസ്രാ';
121
+
122
+ @override
123
+ String get nehemiah => 'നെഹെമ്യാവു';
124
+
125
+ @override
126
+ String get esther => 'എസ്ഥേർ';
127
+
128
+ @override
129
+ String get job => 'ഇയ്യോബ്';
130
+
131
+ @override
132
+ String get psalms => 'സങ്കീർത്തനങ്ങൾ';
133
+
134
+ @override
135
+ String get proverbs => 'സദൃശ്യവാക്യങ്ങൾ';
136
+
137
+ @override
138
+ String get ecclesiastes => 'സഭാപ്രസംഗി';
139
+
140
+ @override
141
+ String get song_of_solomon => 'ഉത്തമഗീതം';
142
+
143
+ @override
144
+ String get isaiah => 'യെശയ്യാ';
145
+
146
+ @override
147
+ String get jeremiah => 'യിരമ്യാവു';
148
+
149
+ @override
150
+ String get lamentations => 'വിലാപങ്ങൾ';
151
+
152
+ @override
153
+ String get ezekiel => 'യെഹേസ്കേൽ';
154
+
155
+ @override
156
+ String get daniel => 'ദാനീയേൽ';
157
+
158
+ @override
159
+ String get hosea => 'ഹോശേയ';
160
+
161
+ @override
162
+ String get joel => 'യോവേൽ';
163
+
164
+ @override
165
+ String get amos => 'ആമോസ്';
166
+
167
+ @override
168
+ String get obadiah => 'ഓബദ്യാവു';
169
+
170
+ @override
171
+ String get jonah => 'യോനാ';
172
+
173
+ @override
174
+ String get micah => 'മീഖാ';
175
+
176
+ @override
177
+ String get nahum => 'നഹൂം';
178
+
179
+ @override
180
+ String get habakkuk => 'ഹബക്കൂക്ക്';
181
+
182
+ @override
183
+ String get zephaniah => 'സെഫന്യാവു';
184
+
185
+ @override
186
+ String get haggai => 'ഹഗ്ഗായി';
187
+
188
+ @override
189
+ String get zechariah => 'സെഖര്യാവു';
190
+
191
+ @override
192
+ String get malachi => 'മലാഖി';
193
+
194
+ @override
195
+ String get matthew => 'മത്തായി';
196
+
197
+ @override
198
+ String get mark => 'മർക്കൊസ്';
199
+
200
+ @override
201
+ String get luke => 'ലൂക്കോസ്';
202
+
203
+ @override
204
+ String get john => 'യോഹന്നാൻ';
205
+
206
+ @override
207
+ String get acts => 'പ്രവൃത്തികൾ';
208
+
209
+ @override
210
+ String get romans => 'റോമർ';
211
+
212
+ @override
213
+ String get firstCorinthians => '1 കൊരിന്ത്യർ';
214
+
215
+ @override
216
+ String get secondCorinthians => '2 കൊരിന്ത്യർ';
217
+
218
+ @override
219
+ String get galatians => 'ഗലാത്യർ';
220
+
221
+ @override
222
+ String get ephesians => 'എഫെസ്യർ';
223
+
224
+ @override
225
+ String get philippians => 'ഫിലിപ്പിയർ';
226
+
227
+ @override
228
+ String get colossians => 'കൊലൊസ്സ്യർ';
229
+
230
+ @override
231
+ String get firstThessalonians => '1 തെസ്സലൊനീക്യർ';
232
+
233
+ @override
234
+ String get secondThessalonians => '2 തെസ്സലൊനീക്യർ';
235
+
236
+ @override
237
+ String get firstTimothy => '1 തിമൊഥെയൊസ്';
238
+
239
+ @override
240
+ String get secondTimothy => '2 തിമൊഥെയൊസ്';
241
+
242
+ @override
243
+ String get titus => 'തീത്തൊസ്';
244
+
245
+ @override
246
+ String get philemon => 'ഫിലേമോൻ';
247
+
248
+ @override
249
+ String get hebrews => 'എബ്രായർ';
250
+
251
+ @override
252
+ String get james => 'യാക്കോബ്';
253
+
254
+ @override
255
+ String get firstPeter => '1 പത്രൊസ്';
256
+
257
+ @override
258
+ String get secondPeter => '2 പത്രൊസ്';
259
+
260
+ @override
261
+ String get firstJohn => '1 യോഹന്നാൻ';
262
+
263
+ @override
264
+ String get secondJohn => '2 യോഹന്നാൻ';
265
+
266
+ @override
267
+ String get thirdJohn => '3 യോഹന്നാൻ';
268
+
269
+ @override
270
+ String get jude => 'യൂദാ';
271
+
272
+ @override
273
+ String get revelation => 'വെളിപ്പാട്';
274
+ }
lib/l10n/app_localizations_ne.dart ADDED
@@ -0,0 +1,274 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Nepali (`ne`).
8
+ class AppLocalizationsNe extends AppLocalizations {
9
+ AppLocalizationsNe([String locale = 'ne']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'ne';
13
+
14
+ @override
15
+ String get audioVoice => 'ne-NP-HemkalaNeural';
16
+
17
+ @override
18
+ String get title => 'केवल बाइबल एप';
19
+
20
+ @override
21
+ String get languageTitle => 'Nepali';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'नेपाली';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'पुरानो नियम';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'नयाँ नियम';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'कृपया एउटा बाइबल चयन गर्नुहोस्';
34
+
35
+ @override
36
+ String get audioError => 'अडियो प्ले गर्न सकिएन';
37
+
38
+ @override
39
+ String get urlError => 'ब्राउजर खोल्न सकिएन';
40
+
41
+ @override
42
+ String get settingsTitle => 'सेटिङहरू';
43
+
44
+ @override
45
+ String get bibleTitle => 'बाइबल';
46
+
47
+ @override
48
+ String get themeTitle => 'रंगहरू';
49
+
50
+ @override
51
+ String get incrementFontTitle => 'पाठ आकार बढाउनुहोस्';
52
+
53
+ @override
54
+ String get decrementFontTitle => 'पाठ आकार घटाउनुहोस्';
55
+
56
+ @override
57
+ String get boldFontTitle => 'बोल्ड टेक्स्ट';
58
+
59
+ @override
60
+ String get engTitles => 'अंग्रेजी शीर्षकहरू प्रयोग गर्नुहोस्';
61
+
62
+ @override
63
+ String get privacyPolicyTitle => 'गोपनीयता नीति';
64
+
65
+ @override
66
+ String get termsAndConditionsTitle => 'नियम तथा सर्त';
67
+
68
+ @override
69
+ String get shareAppTitle => 'एप साझा गर्नुहोस्';
70
+
71
+ @override
72
+ String get rateAppTitle => 'एप मूल्याङ्कन गर्नुहोस्';
73
+
74
+ @override
75
+ String get aboutUsTitle => 'हाम्रोबारे';
76
+
77
+ @override
78
+ String get genesis => 'उत्पत्ति';
79
+
80
+ @override
81
+ String get exodus => 'प्रस्थान ';
82
+
83
+ @override
84
+ String get leviticus => 'लेवी';
85
+
86
+ @override
87
+ String get numbers => 'गन्ती';
88
+
89
+ @override
90
+ String get deuteronomy => 'व्यवस्था';
91
+
92
+ @override
93
+ String get joshua => 'यहोशू';
94
+
95
+ @override
96
+ String get judges => 'न्यायकर्ता';
97
+
98
+ @override
99
+ String get ruth => 'रूथ';
100
+
101
+ @override
102
+ String get firstSamuel => '1 शमूएल';
103
+
104
+ @override
105
+ String get secondSamuel => '2 शमूएल';
106
+
107
+ @override
108
+ String get firstKings => '1 राजा';
109
+
110
+ @override
111
+ String get secondKings => '2 राजा';
112
+
113
+ @override
114
+ String get firstChronicles => '1 इतिहास';
115
+
116
+ @override
117
+ String get secondChronicles => '2 इतिहास';
118
+
119
+ @override
120
+ String get ezra => 'एज्रा';
121
+
122
+ @override
123
+ String get nehemiah => 'नहेम्याह';
124
+
125
+ @override
126
+ String get esther => 'एस्तर';
127
+
128
+ @override
129
+ String get job => 'अय्यूब';
130
+
131
+ @override
132
+ String get psalms => 'भजनसंग्रह';
133
+
134
+ @override
135
+ String get proverbs => 'हितोपदेश';
136
+
137
+ @override
138
+ String get ecclesiastes => 'उपदेशक';
139
+
140
+ @override
141
+ String get song_of_solomon => 'श्रेष्ठगीत';
142
+
143
+ @override
144
+ String get isaiah => 'यशैया';
145
+
146
+ @override
147
+ String get jeremiah => 'यर्मिया';
148
+
149
+ @override
150
+ String get lamentations => 'विलाप';
151
+
152
+ @override
153
+ String get ezekiel => 'इजकिएल';
154
+
155
+ @override
156
+ String get daniel => 'दानियल';
157
+
158
+ @override
159
+ String get hosea => 'होशे';
160
+
161
+ @override
162
+ String get joel => 'योएल';
163
+
164
+ @override
165
+ String get amos => 'आमोस';
166
+
167
+ @override
168
+ String get obadiah => 'ओबदिया';
169
+
170
+ @override
171
+ String get jonah => 'योना';
172
+
173
+ @override
174
+ String get micah => 'मीका';
175
+
176
+ @override
177
+ String get nahum => 'नहूम';
178
+
179
+ @override
180
+ String get habakkuk => 'हबकूक';
181
+
182
+ @override
183
+ String get zephaniah => 'सपन्याह';
184
+
185
+ @override
186
+ String get haggai => 'हाग्गै';
187
+
188
+ @override
189
+ String get zechariah => 'जकरिया';
190
+
191
+ @override
192
+ String get malachi => 'मलाकी';
193
+
194
+ @override
195
+ String get matthew => 'मत्ती';
196
+
197
+ @override
198
+ String get mark => 'मर्कूस';
199
+
200
+ @override
201
+ String get luke => 'लूका';
202
+
203
+ @override
204
+ String get john => 'यूहन्ना';
205
+
206
+ @override
207
+ String get acts => 'प्रेरित';
208
+
209
+ @override
210
+ String get romans => 'रोमी';
211
+
212
+ @override
213
+ String get firstCorinthians => '1 कोरिन्थी';
214
+
215
+ @override
216
+ String get secondCorinthians => '2 कोरिन्थी';
217
+
218
+ @override
219
+ String get galatians => 'गलाती';
220
+
221
+ @override
222
+ String get ephesians => 'एफिसी';
223
+
224
+ @override
225
+ String get philippians => 'फिलिप्पी';
226
+
227
+ @override
228
+ String get colossians => 'कलस्सी';
229
+
230
+ @override
231
+ String get firstThessalonians => '1 थिस्सलोनिकी';
232
+
233
+ @override
234
+ String get secondThessalonians => '2 थिस्सलोनिकी';
235
+
236
+ @override
237
+ String get firstTimothy => '1 तिमोथी';
238
+
239
+ @override
240
+ String get secondTimothy => '2 तिमोथी';
241
+
242
+ @override
243
+ String get titus => 'तीतस';
244
+
245
+ @override
246
+ String get philemon => 'फिलेमोन';
247
+
248
+ @override
249
+ String get hebrews => 'हिब्रू';
250
+
251
+ @override
252
+ String get james => 'याकूब';
253
+
254
+ @override
255
+ String get firstPeter => '1 पत्रुस';
256
+
257
+ @override
258
+ String get secondPeter => '2 पत्रुस';
259
+
260
+ @override
261
+ String get firstJohn => '1 यूहन्ना';
262
+
263
+ @override
264
+ String get secondJohn => '2 यूहन्ना';
265
+
266
+ @override
267
+ String get thirdJohn => '3 यूहन्ना';
268
+
269
+ @override
270
+ String get jude => 'यहूदा';
271
+
272
+ @override
273
+ String get revelation => 'प्रकाश';
274
+ }
lib/l10n/app_localizations_or.dart ADDED
@@ -0,0 +1,275 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Oriya (`or`).
8
+ class AppLocalizationsOr extends AppLocalizations {
9
+ AppLocalizationsOr([String locale = 'or']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'or';
13
+
14
+ @override
15
+ String get audioVoice => '';
16
+
17
+ @override
18
+ String get title => 'କେବଳ ବାଇବଲ ଆପ୍ |';
19
+
20
+ @override
21
+ String get languageTitle => 'Oriya';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'ଓଡିଆ';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'ଓଲ୍ଡ ଷ୍ଟେଟାମେଣ୍ଟ';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'ନ୍ୟୁ ଷ୍ଟେଟାମେଣ୍ଟ';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'ଦୟାକରି ଏକ ବାଇବଲ ଚୟନ କରନ୍ତୁ |';
34
+
35
+ @override
36
+ String get audioError =>
37
+ 'ଅଡିଓ ଚଲାଇ ପାରିଲା ନାହିଁ | ଏହି ବାଇବଲ ଅଡିଓକୁ ସମର୍ଥନ କରେ ନାହିଁ |';
38
+
39
+ @override
40
+ String get urlError => 'ବ୍ରାଉଜର୍ ଖୋଲିପାରିଲା ନାହିଁ |';
41
+
42
+ @override
43
+ String get settingsTitle => 'ସେଟିଂସମୂହ';
44
+
45
+ @override
46
+ String get bibleTitle => 'ବାଇବଲ |';
47
+
48
+ @override
49
+ String get themeTitle => 'ରଙ୍ଗଗୁଡିକ |';
50
+
51
+ @override
52
+ String get incrementFontTitle => 'ପାଠ୍ୟ ଆକାର ବୃଦ୍ଧି କରନ୍ତୁ |';
53
+
54
+ @override
55
+ String get decrementFontTitle => 'ପାଠ୍ୟ ଆକାର ହ୍ରାସ କରନ୍ତୁ |';
56
+
57
+ @override
58
+ String get boldFontTitle => 'ବୋଲ୍ଡ ଟେକ୍ସଟ୍ |';
59
+
60
+ @override
61
+ String get engTitles => 'ଇଂରାଜୀ ଆଖ୍ୟାଗୁଡିକ ବ୍ୟବହାର କରନ୍ତୁ |';
62
+
63
+ @override
64
+ String get privacyPolicyTitle => 'ଗୋପନୀୟତା ନୀତି';
65
+
66
+ @override
67
+ String get termsAndConditionsTitle => 'ସର୍ତ୍ତାବଳୀ';
68
+
69
+ @override
70
+ String get shareAppTitle => 'ଆପ୍ ଅଂଶୀଦାର କରନ୍ତୁ |';
71
+
72
+ @override
73
+ String get rateAppTitle => 'ଆପ୍ ରେଟ୍ କରନ୍ତୁ |';
74
+
75
+ @override
76
+ String get aboutUsTitle => 'ଆମ ବିଷୟରେ';
77
+
78
+ @override
79
+ String get genesis => 'ଆଦି ପୁସ୍ତକ';
80
+
81
+ @override
82
+ String get exodus => 'ଯାତ୍ରା ପୁସ୍ତକ';
83
+
84
+ @override
85
+ String get leviticus => 'ଲେବୀୟ ପୁସ୍ତକ';
86
+
87
+ @override
88
+ String get numbers => 'ଗଣନା ପୁସ୍ତକ';
89
+
90
+ @override
91
+ String get deuteronomy => 'ଦିତୀୟ ବିବରଣ';
92
+
93
+ @override
94
+ String get joshua => 'ଯିହୋଶୂୟ';
95
+
96
+ @override
97
+ String get judges => 'ବିଚାରକର୍ତାମାନଙ୍କ ବିବରଣ';
98
+
99
+ @override
100
+ String get ruth => 'ରୂତର ବିବରଣ';
101
+
102
+ @override
103
+ String get firstSamuel => 'ପ୍ରଥମ ଶାମୁୟେଲ';
104
+
105
+ @override
106
+ String get secondSamuel => 'ଦିତୀୟ ଶାମୁୟେଲ';
107
+
108
+ @override
109
+ String get firstKings => 'ପ୍ରଥମ ରାଜାବଳୀ';
110
+
111
+ @override
112
+ String get secondKings => 'ଦିତୀୟ ରାଜାବଳୀ';
113
+
114
+ @override
115
+ String get firstChronicles => 'ପ୍ରଥମ ବଂଶାବଳୀ';
116
+
117
+ @override
118
+ String get secondChronicles => 'ଦିତୀୟ ବଂଶାବଳୀ';
119
+
120
+ @override
121
+ String get ezra => 'ଏଜ୍ରା';
122
+
123
+ @override
124
+ String get nehemiah => 'ନିହିମିୟା';
125
+
126
+ @override
127
+ String get esther => 'ଏଷ୍ଟର ବିବରଣ';
128
+
129
+ @override
130
+ String get job => 'ଆୟୁବ ପୁସ୍ତକ';
131
+
132
+ @override
133
+ String get psalms => 'ଗୀତସଂହିତା';
134
+
135
+ @override
136
+ String get proverbs => 'ହିତୋପଦେଶ';
137
+
138
+ @override
139
+ String get ecclesiastes => 'ଉପଦେଶକ';
140
+
141
+ @override
142
+ String get song_of_solomon => 'ପରମଗୀତ';
143
+
144
+ @override
145
+ String get isaiah => 'ଯିଶାଇୟ';
146
+
147
+ @override
148
+ String get jeremiah => 'ଯିରିମିୟ';
149
+
150
+ @override
151
+ String get lamentations => 'ଯିରିମିୟଙ୍କ ବିଳାପ';
152
+
153
+ @override
154
+ String get ezekiel => 'ଯିହିଜିକଲ';
155
+
156
+ @override
157
+ String get daniel => 'ଦାନିଏଲ';
158
+
159
+ @override
160
+ String get hosea => 'ହୋଶେୟ';
161
+
162
+ @override
163
+ String get joel => 'ଯୋୟେଲ';
164
+
165
+ @override
166
+ String get amos => 'ଆମୋଷ';
167
+
168
+ @override
169
+ String get obadiah => 'ଓବଦିୟ';
170
+
171
+ @override
172
+ String get jonah => 'ଯୂନସ';
173
+
174
+ @override
175
+ String get micah => 'ମୀଖା';
176
+
177
+ @override
178
+ String get nahum => 'ନାହୂମ';
179
+
180
+ @override
181
+ String get habakkuk => 'ହବକକୂକ';
182
+
183
+ @override
184
+ String get zephaniah => 'ସିଫନିୟ';
185
+
186
+ @override
187
+ String get haggai => 'ହଗୟ';
188
+
189
+ @override
190
+ String get zechariah => 'ଯିଖରିୟ';
191
+
192
+ @override
193
+ String get malachi => 'ମଲାଖୀ';
194
+
195
+ @override
196
+ String get matthew => 'ମାଥିଉଲିଖିତ ସୁସମାଚାର';
197
+
198
+ @override
199
+ String get mark => 'ମାର୍କଲିଖିତ ସୁସମାଚାର';
200
+
201
+ @override
202
+ String get luke => 'ଲୂକଲିଖିତ ସୁସମାଚାର';
203
+
204
+ @override
205
+ String get john => 'ଯୋହନଲିଖିତ ସୁସମାଚାର';
206
+
207
+ @override
208
+ String get acts => 'ରେରିତମାନଙ୍କ କାର୍ଯ୍ୟର ବିବରଣ';
209
+
210
+ @override
211
+ String get romans => 'ରୋମୀୟଙ୍କ ପ୍ରତି ପତ୍ର';
212
+
213
+ @override
214
+ String get firstCorinthians => 'କରିନ୍ଥୀୟଙ୍କ ପ୍ରତି ପ୍ରଥମ ପତ୍ର';
215
+
216
+ @override
217
+ String get secondCorinthians => 'କରିନ୍ଥୀୟଙ୍କ ପ୍ରତି ଦ୍ୱିତୀୟ ପତ୍ର';
218
+
219
+ @override
220
+ String get galatians => 'ଗାଲାତୀୟଙ୍କ ପ୍ରତି ପତ୍ର';
221
+
222
+ @override
223
+ String get ephesians => 'ଏଫିସୀୟଙ୍କ ପ୍ରତି ପତ୍ର';
224
+
225
+ @override
226
+ String get philippians => 'ଫିଲି‌ପ୍‌ପୀୟଙ୍କ ପ୍ରତି ପତ୍ର';
227
+
228
+ @override
229
+ String get colossians => 'କଲସୀୟଙ୍କ ପ୍ରତି ପତ୍ର';
230
+
231
+ @override
232
+ String get firstThessalonians => 'ଥେସଲନୀକୀୟଙ୍କ ପ୍ରତି ପ୍ରଥମ ପତ୍ର';
233
+
234
+ @override
235
+ String get secondThessalonians => 'ଥେସଲନୀକୀୟଙ୍କ ପ୍ରତି ଦ୍ୱିତୀୟ ପତ୍ର';
236
+
237
+ @override
238
+ String get firstTimothy => 'ତୀମଥିଙ୍କ ପ୍ରତି ପ୍ରଥମ ପତ୍ର';
239
+
240
+ @override
241
+ String get secondTimothy => 'ତୀମଥିଙ୍କ ପ୍ରତି ଦ୍ୱିତୀୟ ପତ୍ର';
242
+
243
+ @override
244
+ String get titus => 'ତୀତସଙ୍କ ପ୍ରତି ପତ୍ର';
245
+
246
+ @override
247
+ String get philemon => 'ଫିଲୀମୋନଙ୍କ ପ୍ରତି ପତ୍ର';
248
+
249
+ @override
250
+ String get hebrews => 'ଏବ୍ରୀ';
251
+
252
+ @override
253
+ String get james => 'ଯାକୁବଙ୍କ ପତ୍';
254
+
255
+ @override
256
+ String get firstPeter => 'ପିତରଙ୍କ ପ୍ରଥମ ପତ୍';
257
+
258
+ @override
259
+ String get secondPeter => 'ପିତରଙ୍କ ଦିତୀୟ ପତ୍ର';
260
+
261
+ @override
262
+ String get firstJohn => 'ଯୋହନଙ୍କ ପ୍ରଥମ ପତ୍ର';
263
+
264
+ @override
265
+ String get secondJohn => 'ଯୋହନଙ୍କ ଦିତୀୟ ପତ୍';
266
+
267
+ @override
268
+ String get thirdJohn => 'ଯୋହନଙ୍କ ତୃତୀୟ ପତ୍ର';
269
+
270
+ @override
271
+ String get jude => 'ଯିହୂଦାଙ୍କ ପତ୍ର';
272
+
273
+ @override
274
+ String get revelation => 'ଯୋହନଙ୍କ ପ୍ରତି ପ୍ରକାଶିତ ବାକ୍ୟ';
275
+ }
lib/l10n/app_localizations_pa.dart ADDED
@@ -0,0 +1,275 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Panjabi Punjabi (`pa`).
8
+ class AppLocalizationsPa extends AppLocalizations {
9
+ AppLocalizationsPa([String locale = 'pa']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'pa';
13
+
14
+ @override
15
+ String get audioVoice => '';
16
+
17
+ @override
18
+ String get title => 'ਸਿਰਫ਼ ਬਾਈਬਲ ਐਪ';
19
+
20
+ @override
21
+ String get languageTitle => 'Punjabi';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'ਪੰਜਾਬੀ';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'ਪੁਰਾਣੇ ਨੇਮ';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'ਨਵਾਂ ਨੇਮ';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਬਾਈਬਲ ਚੁਣੋ';
34
+
35
+ @override
36
+ String get audioError =>
37
+ 'ਆਡੀਓ ਚਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ । ਇਹ ਬਾਈਬਲ ਆਡੀਓ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ।';
38
+
39
+ @override
40
+ String get urlError => 'ਬ੍ਰਾਊਜ਼ਰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ';
41
+
42
+ @override
43
+ String get settingsTitle => 'ਸੈਟਿੰਗਾਂ';
44
+
45
+ @override
46
+ String get bibleTitle => 'ਬਾਈਬਲ';
47
+
48
+ @override
49
+ String get themeTitle => 'ਰੰਗ';
50
+
51
+ @override
52
+ String get incrementFontTitle => 'ਟੈਕਸਟ ਦਾ ਆਕਾਰ ਵਧਾਓ';
53
+
54
+ @override
55
+ String get decrementFontTitle => 'ਟੈਕਸਟ ਦਾ ਆਕਾਰ ਘਟਾਓ';
56
+
57
+ @override
58
+ String get boldFontTitle => 'ਬੋਲਡ ਟੈਕਸਟ';
59
+
60
+ @override
61
+ String get engTitles => 'ਅੰਗਰੇਜ਼ੀ ਸਿਰਲੇਖਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ';
62
+
63
+ @override
64
+ String get privacyPolicyTitle => 'ਪਰਾਈਵੇਟ ਨੀਤੀ';
65
+
66
+ @override
67
+ String get termsAndConditionsTitle => 'ਨਿਯਮ ਅਤੇ ਸ਼ਰਤਾਂ';
68
+
69
+ @override
70
+ String get shareAppTitle => 'ਐਪ ਨੂੰ ਸਾਂਝਾ ਕਰੋ';
71
+
72
+ @override
73
+ String get rateAppTitle => 'ਐਪ ਨੂੰ ਦਰਜਾ ਦਿਓ';
74
+
75
+ @override
76
+ String get aboutUsTitle => 'ਸਾਡੇ ਬਾਰੇ';
77
+
78
+ @override
79
+ String get genesis => 'ਪੈਦਾਇਸ਼';
80
+
81
+ @override
82
+ String get exodus => 'ਖ਼ਰੋਜ';
83
+
84
+ @override
85
+ String get leviticus => 'ਅਹਬਾਰ';
86
+
87
+ @override
88
+ String get numbers => 'ਗਿਣਤੀ';
89
+
90
+ @override
91
+ String get deuteronomy => 'ਅਸਤਸਨਾ';
92
+
93
+ @override
94
+ String get joshua => 'ਯਸ਼ਵਾ';
95
+
96
+ @override
97
+ String get judges => 'ਨਿਆਂਈਆਂ ਦੀ ਪੋਥੀ';
98
+
99
+ @override
100
+ String get ruth => 'ਰੁੱਤ';
101
+
102
+ @override
103
+ String get firstSamuel => '੧ ਸਮੋਈਲ';
104
+
105
+ @override
106
+ String get secondSamuel => '੨ ਸਮੋਈਲ';
107
+
108
+ @override
109
+ String get firstKings => '੧ ਸਲਾਤੀਨ';
110
+
111
+ @override
112
+ String get secondKings => '੨ ਸਲਾਤੀਨ';
113
+
114
+ @override
115
+ String get firstChronicles => '੧ ਤਵਾਰੀਖ਼';
116
+
117
+ @override
118
+ String get secondChronicles => '੨ ਤਵਾਰੀਖ਼';
119
+
120
+ @override
121
+ String get ezra => 'ਅਜ਼ਰਾ';
122
+
123
+ @override
124
+ String get nehemiah => 'ਨਹਮਿਆਹ';
125
+
126
+ @override
127
+ String get esther => 'ਆ ਸਤਰ';
128
+
129
+ @override
130
+ String get job => 'ਅੱਯੂਬ';
131
+
132
+ @override
133
+ String get psalms => 'ਜ਼ਬੂਰ';
134
+
135
+ @override
136
+ String get proverbs => 'ਅਮਸਾਲ';
137
+
138
+ @override
139
+ String get ecclesiastes => 'ਵਾਈਜ਼';
140
+
141
+ @override
142
+ String get song_of_solomon => 'ਗ਼ਜ਼ਲ ਅਲਗ਼ਜ਼ਲਾਤ';
143
+
144
+ @override
145
+ String get isaiah => 'ਯਸਈਆਹ';
146
+
147
+ @override
148
+ String get jeremiah => 'ਯਰਮਿਆਹ';
149
+
150
+ @override
151
+ String get lamentations => 'ਨੂਹ';
152
+
153
+ @override
154
+ String get ezekiel => 'ਹਿਜ਼ ਕੀ ਐਲ';
155
+
156
+ @override
157
+ String get daniel => 'ਦਾਨੀ ਐਲ';
158
+
159
+ @override
160
+ String get hosea => 'ਹੋ ਸੀਅ';
161
+
162
+ @override
163
+ String get joel => 'ਯਵਾਐਲ';
164
+
165
+ @override
166
+ String get amos => 'ਆਮੋਸ';
167
+
168
+ @override
169
+ String get obadiah => 'ਅਬਦ ਯਾਹ';
170
+
171
+ @override
172
+ String get jonah => 'ਯਵਨਾਹ';
173
+
174
+ @override
175
+ String get micah => 'ਮੀਕਾਹ';
176
+
177
+ @override
178
+ String get nahum => 'ਨਾ ਹੋਮ';
179
+
180
+ @override
181
+ String get habakkuk => 'ਹਬਕੋਕ';
182
+
183
+ @override
184
+ String get zephaniah => 'ਸਫ਼ਨਿਆਹ';
185
+
186
+ @override
187
+ String get haggai => 'ਹਜਿ';
188
+
189
+ @override
190
+ String get zechariah => 'ਜ਼ਿਕਰ ਯਾਹ';
191
+
192
+ @override
193
+ String get malachi => 'ਮਲਾਕੀ';
194
+
195
+ @override
196
+ String get matthew => 'ਮੱਤੀ';
197
+
198
+ @override
199
+ String get mark => 'ਮਰਕੁਸ';
200
+
201
+ @override
202
+ String get luke => 'ਲੋਕਾ';
203
+
204
+ @override
205
+ String get john => 'ਯੂਹੰਨਾ';
206
+
207
+ @override
208
+ String get acts => 'ਰਸੂਲਾਂ ਦੇ ਕਰਤੱਬ';
209
+
210
+ @override
211
+ String get romans => 'ਰੋਮੀਆਂ';
212
+
213
+ @override
214
+ String get firstCorinthians => '੧ ਕੁਰਿੰਥੀਆਂ';
215
+
216
+ @override
217
+ String get secondCorinthians => '੨ ਕੁਰਿੰਥੀਆਂ';
218
+
219
+ @override
220
+ String get galatians => 'ਗਲਾਤੀਆਂ';
221
+
222
+ @override
223
+ String get ephesians => 'ਅਫ਼ਸੀਆਂ';
224
+
225
+ @override
226
+ String get philippians => 'ਫ਼ਿਲਿੱਪੀਆਂ';
227
+
228
+ @override
229
+ String get colossians => 'ਕੁਲੁੱਸੀਆਂ';
230
+
231
+ @override
232
+ String get firstThessalonians => '੧ ਥੱਸਲੁਨੀਕੀਆਂ';
233
+
234
+ @override
235
+ String get secondThessalonians => '੨ ਥੱਸਲੁਨੀਕੀਆਂ';
236
+
237
+ @override
238
+ String get firstTimothy => '੧ ਤਿਮੋਥਿਉਸ';
239
+
240
+ @override
241
+ String get secondTimothy => '੨ ਤਿਮੋਥਿਉਸ ';
242
+
243
+ @override
244
+ String get titus => 'ਤੀਤੁਸ';
245
+
246
+ @override
247
+ String get philemon => 'ਫ਼ਿਲੇਮੋਨ';
248
+
249
+ @override
250
+ String get hebrews => 'ਇਬਰਾਨੀਆਂ';
251
+
252
+ @override
253
+ String get james => 'ਯਾਕੂਬ';
254
+
255
+ @override
256
+ String get firstPeter => '੧ ਪਤਰਸ';
257
+
258
+ @override
259
+ String get secondPeter => '੨ ਪਤਰਸ';
260
+
261
+ @override
262
+ String get firstJohn => '੧ ਯੂਹੰਨਾ';
263
+
264
+ @override
265
+ String get secondJohn => '੨ ਯੂਹੰਨਾ';
266
+
267
+ @override
268
+ String get thirdJohn => '੩ ਯੂਹੰਨਾ';
269
+
270
+ @override
271
+ String get jude => 'ਯਹੂ ਦਾਹ';
272
+
273
+ @override
274
+ String get revelation => 'ਪਰਕਾਸ਼ ਦੀ ਪੋਥੀ';
275
+ }
lib/l10n/app_localizations_ta.dart ADDED
@@ -0,0 +1,274 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Tamil (`ta`).
8
+ class AppLocalizationsTa extends AppLocalizations {
9
+ AppLocalizationsTa([String locale = 'ta']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'ta';
13
+
14
+ @override
15
+ String get audioVoice => 'ta-IN-PallaviNeural';
16
+
17
+ @override
18
+ String get title => 'பைபிள் ஆப் மட்டுமே';
19
+
20
+ @override
21
+ String get languageTitle => 'Tamil';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'தமிழ்';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'பழைய ஏற்பாடு';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'புதிய ஏற்பாடு';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'தயவுசெய்து ஒரு பைபிளைத் தேர்ந்தெடுக்கவும்';
34
+
35
+ @override
36
+ String get audioError => 'ஆடியோவை இயக்க முடியவில்லை';
37
+
38
+ @override
39
+ String get urlError => 'உலாவியைத் திறக்க முடியவில்லை';
40
+
41
+ @override
42
+ String get settingsTitle => 'அமைப்புகள்';
43
+
44
+ @override
45
+ String get bibleTitle => 'திருவிவிலியம்';
46
+
47
+ @override
48
+ String get themeTitle => 'வண்ணங்கள்';
49
+
50
+ @override
51
+ String get incrementFontTitle => 'உரை அளவை அதிகரிக்கவும்';
52
+
53
+ @override
54
+ String get decrementFontTitle => 'உரை அளவைக் குறைக்கவும்';
55
+
56
+ @override
57
+ String get boldFontTitle => 'கொட்டை எழுத்துக்கள்';
58
+
59
+ @override
60
+ String get engTitles => 'ஆங்கில தலைப்புகளைப் பயன்படுத்தவும்';
61
+
62
+ @override
63
+ String get privacyPolicyTitle => 'தனியுரிமைக் கொள்கை';
64
+
65
+ @override
66
+ String get termsAndConditionsTitle => 'விதிமுறைகளும் நிபந்தனைகளும்';
67
+
68
+ @override
69
+ String get shareAppTitle => 'பயன்பாட்டைப் பகிரவும்';
70
+
71
+ @override
72
+ String get rateAppTitle => 'பயன்பாட்டை மதிப்பிடவும்';
73
+
74
+ @override
75
+ String get aboutUsTitle => 'எங்களை பற்றி';
76
+
77
+ @override
78
+ String get genesis => 'ஆதியாகமம்';
79
+
80
+ @override
81
+ String get exodus => 'யாத்திராகமம்';
82
+
83
+ @override
84
+ String get leviticus => 'லேவியராகமம்';
85
+
86
+ @override
87
+ String get numbers => 'எண்ணாகமம்';
88
+
89
+ @override
90
+ String get deuteronomy => 'உபாகமம்';
91
+
92
+ @override
93
+ String get joshua => 'யோசுவா';
94
+
95
+ @override
96
+ String get judges => 'நியாயாதிபதிகள்';
97
+
98
+ @override
99
+ String get ruth => 'ரூத்';
100
+
101
+ @override
102
+ String get firstSamuel => '1 சாமுவேல்';
103
+
104
+ @override
105
+ String get secondSamuel => '2 சாமுவேல்';
106
+
107
+ @override
108
+ String get firstKings => '1 இராஜாக்கள்';
109
+
110
+ @override
111
+ String get secondKings => '2 இராஜாக்கள்';
112
+
113
+ @override
114
+ String get firstChronicles => '1 நாளாகமம்';
115
+
116
+ @override
117
+ String get secondChronicles => '2 நாளாகமம்';
118
+
119
+ @override
120
+ String get ezra => 'எஸ்றா';
121
+
122
+ @override
123
+ String get nehemiah => 'நெகேமியா';
124
+
125
+ @override
126
+ String get esther => 'எஸ்தர்';
127
+
128
+ @override
129
+ String get job => 'யோபு';
130
+
131
+ @override
132
+ String get psalms => 'சங்கீதம்';
133
+
134
+ @override
135
+ String get proverbs => 'நீதிமொழிகள்';
136
+
137
+ @override
138
+ String get ecclesiastes => 'பிரசங்கி';
139
+
140
+ @override
141
+ String get song_of_solomon => 'உன்னதப்பாட்டு';
142
+
143
+ @override
144
+ String get isaiah => 'ஏசாயா';
145
+
146
+ @override
147
+ String get jeremiah => 'எரேமியா';
148
+
149
+ @override
150
+ String get lamentations => 'புலம்பல்';
151
+
152
+ @override
153
+ String get ezekiel => 'எசேக்கியேல்';
154
+
155
+ @override
156
+ String get daniel => 'தானியேல்';
157
+
158
+ @override
159
+ String get hosea => 'ஓசியா';
160
+
161
+ @override
162
+ String get joel => 'யோவேல்';
163
+
164
+ @override
165
+ String get amos => 'ஆமோஸ்';
166
+
167
+ @override
168
+ String get obadiah => 'ஒபதியா';
169
+
170
+ @override
171
+ String get jonah => 'யோனா';
172
+
173
+ @override
174
+ String get micah => 'மீகா';
175
+
176
+ @override
177
+ String get nahum => 'நாகூம்';
178
+
179
+ @override
180
+ String get habakkuk => 'ஆபகூக்';
181
+
182
+ @override
183
+ String get zephaniah => 'செப்பனியா';
184
+
185
+ @override
186
+ String get haggai => 'ஆகாய்';
187
+
188
+ @override
189
+ String get zechariah => 'சகரியா';
190
+
191
+ @override
192
+ String get malachi => 'மல்கியா';
193
+
194
+ @override
195
+ String get matthew => 'மத்தேயு';
196
+
197
+ @override
198
+ String get mark => 'மாற்கு';
199
+
200
+ @override
201
+ String get luke => 'லுூக்கா';
202
+
203
+ @override
204
+ String get john => 'யோவான்';
205
+
206
+ @override
207
+ String get acts => 'அப்போஸ்தலர்';
208
+
209
+ @override
210
+ String get romans => 'ரோமர்';
211
+
212
+ @override
213
+ String get firstCorinthians => '1 கொரிந்தியர்';
214
+
215
+ @override
216
+ String get secondCorinthians => '2 கொரிந்தியர்';
217
+
218
+ @override
219
+ String get galatians => 'கலாத்தியர்';
220
+
221
+ @override
222
+ String get ephesians => 'எபேசியர்';
223
+
224
+ @override
225
+ String get philippians => 'பிலிப்பியர்';
226
+
227
+ @override
228
+ String get colossians => 'கொலோசெயர்';
229
+
230
+ @override
231
+ String get firstThessalonians => '1 தெசலோனிக்கேயர்';
232
+
233
+ @override
234
+ String get secondThessalonians => '2 தெசலோனிக்கேயர்';
235
+
236
+ @override
237
+ String get firstTimothy => '1 தீமோத்தேயு';
238
+
239
+ @override
240
+ String get secondTimothy => '2 தீமோத்தேயு';
241
+
242
+ @override
243
+ String get titus => 'தீத்து';
244
+
245
+ @override
246
+ String get philemon => 'பிலேமோன்';
247
+
248
+ @override
249
+ String get hebrews => 'எபிரெயர்';
250
+
251
+ @override
252
+ String get james => 'யாக்கோபு';
253
+
254
+ @override
255
+ String get firstPeter => '1 பேதுரு';
256
+
257
+ @override
258
+ String get secondPeter => '2 பேதுரு';
259
+
260
+ @override
261
+ String get firstJohn => '1 யோவான்';
262
+
263
+ @override
264
+ String get secondJohn => '2 யோவான்';
265
+
266
+ @override
267
+ String get thirdJohn => '3 யோவான்';
268
+
269
+ @override
270
+ String get jude => 'யூதா';
271
+
272
+ @override
273
+ String get revelation => 'வெளி';
274
+ }
lib/l10n/app_localizations_te.dart ADDED
@@ -0,0 +1,274 @@
1
+ // ignore: unused_import
2
+ import 'package:intl/intl.dart' as intl;
3
+ import 'app_localizations.dart';
4
+
5
+ // ignore_for_file: type=lint
6
+
7
+ /// The translations for Telugu (`te`).
8
+ class AppLocalizationsTe extends AppLocalizations {
9
+ AppLocalizationsTe([String locale = 'te']) : super(locale);
10
+
11
+ @override
12
+ String get languageCode => 'te';
13
+
14
+ @override
15
+ String get audioVoice => 'te-IN-ShrutiNeural';
16
+
17
+ @override
18
+ String get title => 'బైబిల్ యాప్ మాత్రమే';
19
+
20
+ @override
21
+ String get languageTitle => 'Telugu';
22
+
23
+ @override
24
+ String get localeLanguageTitle => 'తెలుగు';
25
+
26
+ @override
27
+ String get oldTestamentTitle => 'పాత నిబంధన';
28
+
29
+ @override
30
+ String get newTestamentTitle => 'కొత్త నిబంధన';
31
+
32
+ @override
33
+ String get bibleSelectTitle => 'దయచేసి బైబిల్‌ను ఎంచుకోండి';
34
+
35
+ @override
36
+ String get audioError => 'ఆడియోను ప్లే చేయడం సాధ్యపడలేదు';
37
+
38
+ @override
39
+ String get urlError => 'బ్రౌజర్‌ని తెరవడం సాధ్యపడలేదు';
40
+
41
+ @override
42
+ String get settingsTitle => 'సెట్టింగ్‌లు';
43
+
44
+ @override
45
+ String get bibleTitle => 'బైబిల్';
46
+
47
+ @override
48
+ String get themeTitle => 'రంగులు';
49
+
50
+ @override
51
+ String get incrementFontTitle => 'వచన పరిమాణాన్ని పెంచండి';
52
+
53
+ @override
54
+ String get decrementFontTitle => 'వచన పరిమాణాన్ని తగ్గించండిe';
55
+
56
+ @override
57
+ String get boldFontTitle => 'బోల్డ్ టెక్స్ట్';
58
+
59
+ @override
60
+ String get engTitles => 'ఆంగ్ల శీర్షికలను ఉపయోగించండి';
61
+
62
+ @override
63
+ String get privacyPolicyTitle => 'గోప్యతా విధానం';
64
+
65
+ @override
66
+ String get termsAndConditionsTitle => 'నిబంధనలు & షరతులు';
67
+
68
+ @override
69
+ String get shareAppTitle => 'యాప్‌ను షేర్ చేయండి';
70
+
71
+ @override
72
+ String get rateAppTitle => 'యాప్‌ను రేట్ చేయండి';
73
+
74
+ @override
75
+ String get aboutUsTitle => 'మా గురించి';
76
+
77
+ @override
78
+ String get genesis => 'ఆదికాండము';
79
+
80
+ @override
81
+ String get exodus => 'నిర్గమకాండము';
82
+
83
+ @override
84
+ String get leviticus => 'లేవీయకాండము';
85
+
86
+ @override
87
+ String get numbers => 'సంఖ్యాకాండము';
88
+
89
+ @override
90
+ String get deuteronomy => 'ద్వితీయోపదేశకాండమ';
91
+
92
+ @override
93
+ String get joshua => 'యెహొషువ';
94
+
95
+ @override
96
+ String get judges => 'న్యాయాధిపతులు';
97
+
98
+ @override
99
+ String get ruth => 'రూతు';
100
+
101
+ @override
102
+ String get firstSamuel => 'సమూయేలు మొదటి గ్రంథము';
103
+
104
+ @override
105
+ String get secondSamuel => 'సమూయేలు రెండవ గ్రంథము';
106
+
107
+ @override
108
+ String get firstKings => 'రాజులు మొదటి గ్రంథము';
109
+
110
+ @override
111
+ String get secondKings => 'రాజులు రెండవ గ్రంథము';
112
+
113
+ @override
114
+ String get firstChronicles => 'దినవృత్తాంతములు మొదటి గ్రంథము';
115
+
116
+ @override
117
+ String get secondChronicles => 'దినవృత్తాంతములు రెండవ గ్రంథము';
118
+
119
+ @override
120
+ String get ezra => 'ఎజ్రా';
121
+
122
+ @override
123
+ String get nehemiah => 'నెహెమ్యా';
124
+
125
+ @override
126
+ String get esther => 'ఎస్తేరు';
127
+
128
+ @override
129
+ String get job => 'యోబు గ్రంథము';
130
+
131
+ @override
132
+ String get psalms => 'కీర్తనల గ్రంథము';
133
+
134
+ @override
135
+ String get proverbs => 'సామెతలు';
136
+
137
+ @override
138
+ String get ecclesiastes => 'ప్రసంగి';
139
+
140
+ @override
141
+ String get song_of_solomon => 'పరమగీతము';
142
+
143
+ @override
144
+ String get isaiah => 'యెషయా గ్రంథము';
145
+
146
+ @override
147
+ String get jeremiah => 'యిర్మీయా';
148
+
149
+ @override
150
+ String get lamentations => 'విలాపవాక్యములు';
151
+
152
+ @override
153
+ String get ezekiel => 'యెహెజ్కేలు';
154
+
155
+ @override
156
+ String get daniel => 'దానియేలు';
157
+
158
+ @override
159
+ String get hosea => 'హొషేయ';
160
+
161
+ @override
162
+ String get joel => 'యోవేలు';
163
+
164
+ @override
165
+ String get amos => 'ఆమోసు';
166
+
167
+ @override
168
+ String get obadiah => 'ఓబద్యా';
169
+
170
+ @override
171
+ String get jonah => 'యోనా';
172
+
173
+ @override
174
+ String get micah => 'మీకా';
175
+
176
+ @override
177
+ String get nahum => 'నహూము';
178
+
179
+ @override
180
+ String get habakkuk => 'హబక్కూకు';
181
+
182
+ @override
183
+ String get zephaniah => 'జెఫన్యా';
184
+
185
+ @override
186
+ String get haggai => 'హగ్గయి';
187
+
188
+ @override
189
+ String get zechariah => 'జెకర్యా';
190
+
191
+ @override
192
+ String get malachi => 'మలాకీ';
193
+
194
+ @override
195
+ String get matthew => 'మత్తయి సువార్త';
196
+
197
+ @override
198
+ String get mark => 'మార్కు సువార్త';
199
+
200
+ @override
201
+ String get luke => 'లూకా సువార్త';
202
+
203
+ @override
204
+ String get john => 'యోహాను సువార్త';
205
+
206
+ @override
207
+ String get acts => 'అపొస్తలుల కార్యములు';
208
+
209
+ @override
210
+ String get romans => 'రోమీయులకు';
211
+
212
+ @override
213
+ String get firstCorinthians => '1 కొరింథీయులకు';
214
+
215
+ @override
216
+ String get secondCorinthians => '2 కొరింథీయులకు';
217
+
218
+ @override
219
+ String get galatians => 'గలతీయులకు';
220
+
221
+ @override
222
+ String get ephesians => 'ఎఫెసీయులకు';
223
+
224
+ @override
225
+ String get philippians => 'ఫిలిప్పీయులకు';
226
+
227
+ @override
228
+ String get colossians => 'కొలొస్సయులకు';
229
+
230
+ @override
231
+ String get firstThessalonians => '1 థెస్సలొనీకయులకు';
232
+
233
+ @override
234
+ String get secondThessalonians => '2 థెస్సలొనీకయులకు';
235
+
236
+ @override
237
+ String get firstTimothy => '1 తిమోతికి';
238
+
239
+ @override
240
+ String get secondTimothy => '2 తిమోతికి';
241
+
242
+ @override
243
+ String get titus => 'తీతుకు';
244
+
245
+ @override
246
+ String get philemon => 'ఫిలేమోనుకు';
247
+
248
+ @override
249
+ String get hebrews => 'హెబ్రీయులకు';
250
+
251
+ @override
252
+ String get james => 'యాకోబు';
253
+
254
+ @override
255
+ String get firstPeter => '1 పేతురు';
256
+
257
+ @override
258
+ String get secondPeter => '2 పేతురు';
259
+
260
+ @override
261
+ String get firstJohn => '1 యోహాను';
262
+
263
+ @override
264
+ String get secondJohn => '2 యోహాను';
265
+
266
+ @override
267
+ String get thirdJohn => '3 యోహాను';
268
+
269
+ @override
270
+ String get jude => 'యూదా';
271
+
272
+ @override
273
+ String get revelation => 'ప్రకటన గ్రంథము';
274
+ }
lib/main.dart CHANGED
@@ -11,36 +11,36 @@ import "package:only_bible_app/navigation.dart";
11
11
  import "package:only_bible_app/store/state.dart";
12
12
 
13
13
  void main() async {
14
- FlutterError.onError = (errorDetails) {
14
+ // FlutterError.onError = (errorDetails) {
15
- SchedulerBinding.instance.addPostFrameCallback((d) {
15
+ // SchedulerBinding.instance.addPostFrameCallback((d) {
16
- showReportError(
16
+ // showReportError(
17
- globalNavigatorKey.currentState!.context,
17
+ // globalNavigatorKey.currentState!.context,
18
- errorDetails.exception.toString(),
18
+ // errorDetails.exception.toString(),
19
- errorDetails.stack,
19
+ // errorDetails.stack,
20
- );
20
+ // );
21
- });
21
+ // });
22
- };
22
+ // };
23
- PlatformDispatcher.instance.onError = (error, stack) {
23
+ // PlatformDispatcher.instance.onError = (error, stack) {
24
- Future.delayed(const Duration(seconds: 1), () {
24
+ // Future.delayed(const Duration(seconds: 1), () {
25
- showReportError(
25
+ // showReportError(
26
- globalNavigatorKey.currentState!.context,
26
+ // globalNavigatorKey.currentState!.context,
27
- error.toString(),
27
+ // error.toString(),
28
- stack,
28
+ // stack,
29
- );
29
+ // );
30
- });
30
+ // });
31
- return true;
31
+ // return true;
32
- };
32
+ // };
33
- FlutterNativeSplash.preserve(
33
+ // FlutterNativeSplash.preserve(
34
- widgetsBinding: WidgetsFlutterBinding.ensureInitialized(),
34
+ // widgetsBinding: WidgetsFlutterBinding.ensureInitialized(),
35
- );
35
+ // );
36
36
  usePathUrlStrategy();
37
- AzureTts.init(
37
+ FlutterAzureTts.init(
38
- subscriptionKey: Env.ttsSubscriptionKey,
38
+ subscriptionKey: "a9d2d78796924a2a9df2b6d5c1c4a576",
39
39
  region: "centralindia",
40
- withLogs: false,
40
+ withLogs: true,
41
41
  );
42
- await initState();
42
+ // await initState();
43
- updateStatusBar(darkModeAtom.value);
43
+ // updateStatusBar(darkModeAtom.value);
44
44
  runApp(const App());
45
- FlutterNativeSplash.remove();
45
+ // FlutterNativeSplash.remove();
46
46
  }
lib/models.dart CHANGED
@@ -47,7 +47,7 @@ class Chapter {
47
47
  final List<Verse> verses;
48
48
 
49
49
  const Chapter(
50
- {required this.index, required this.verses, required this.book});
50
+ {required this.index, required this.verses, required this.book,});
51
51
  }
52
52
 
53
53
  class Verse {
lib/navigation.dart CHANGED
@@ -38,7 +38,7 @@ final highlightsShownAtom = Atom(
38
38
  },
39
39
  );
40
40
 
41
- createNoTransitionPageRoute(Widget page) {
41
+ PageRouteBuilder<dynamic> createNoTransitionPageRoute(Widget page) {
42
42
  return PageRouteBuilder(
43
43
  opaque: false,
44
44
  transitionDuration: Duration.zero,
@@ -47,7 +47,7 @@ createNoTransitionPageRoute(Widget page) {
47
47
  );
48
48
  }
49
49
 
50
- createSlideRoute({
50
+ PageRouteBuilder<dynamic> createSlideRoute({
51
51
  required BuildContext context,
52
52
  TextDirection? slideDir,
53
53
  required Widget page,
@@ -75,26 +75,26 @@ createSlideRoute({
75
75
  );
76
76
  }
77
77
 
78
- updateStatusBar(bool v) {
78
+ void updateStatusBar(bool v) {
79
79
  if (v) {
80
80
  SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
81
81
  systemNavigationBarColor: Color(0xFF1F1F22),
82
82
  statusBarColor: Color(0xFF1F1F22),
83
83
  systemNavigationBarIconBrightness: Brightness.light,
84
84
  statusBarIconBrightness: Brightness.light,
85
- ));
85
+ ),);
86
86
  } else {
87
87
  SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
88
88
  systemNavigationBarColor: Colors.white,
89
89
  statusBarColor: Colors.white,
90
90
  systemNavigationBarIconBrightness: Brightness.dark,
91
91
  statusBarIconBrightness: Brightness.dark,
92
- ));
92
+ ),);
93
93
  }
94
94
  }
95
95
 
96
- pushBookChapter(BuildContext context, String bibleName, int book, int chapter,
96
+ void pushBookChapter(BuildContext context, String bibleName, int book, int chapter,
97
- TextDirection? dir) {
97
+ TextDirection? dir,) {
98
98
  dispatch(UpdateChapter(book, chapter));
99
99
  clearEvents(context);
100
100
  Navigator.of(context).push(
@@ -102,12 +102,12 @@ pushBookChapter(BuildContext context, String bibleName, int book, int chapter,
102
102
  context: context,
103
103
  slideDir: dir,
104
104
  page: ChapterViewScreen(
105
- bibleName: bibleName, bookIndex: book, chapterIndex: chapter),
105
+ bibleName: bibleName, bookIndex: book, chapterIndex: chapter,),
106
106
  ),
107
107
  );
108
108
  }
109
109
 
110
- replaceBookChapter(
110
+ void replaceBookChapter(
111
111
  BuildContext context,
112
112
  String bibleName,
113
113
  int book,
@@ -126,39 +126,39 @@ replaceBookChapter(
126
126
  );
127
127
  }
128
128
 
129
- nextChapter(BuildContext context, Bible bible, int book, int chapter) {
129
+ void nextChapter(BuildContext context, Bible bible, int book, int chapter) {
130
130
  final selectedBook = bible.books[book];
131
131
  if (selectedBook.chapters.length > chapter + 1) {
132
132
  pushBookChapter(context, bible.name, selectedBook.index, chapter + 1,
133
- TextDirection.ltr);
133
+ TextDirection.ltr,);
134
134
  } else {
135
135
  if (selectedBook.index + 1 < bible.books.length) {
136
136
  final nextBook = bible.books[selectedBook.index + 1];
137
137
  pushBookChapter(
138
- context, bible.name, nextBook.index, 0, TextDirection.ltr);
138
+ context, bible.name, nextBook.index, 0, TextDirection.ltr,);
139
139
  }
140
140
  }
141
141
  }
142
142
 
143
- previousChapter(BuildContext context, Bible bible, int book, int chapter) {
143
+ void previousChapter(BuildContext context, Bible bible, int book, int chapter) {
144
144
  final selectedBook = bible.books[book];
145
145
  if (chapter - 1 >= 0) {
146
146
  // if (Navigator.of(context).canPop()) {
147
147
  // Navigator.of(context).pop();
148
148
  // } else {
149
149
  pushBookChapter(context, bible.name, selectedBook.index, chapter - 1,
150
- TextDirection.rtl);
150
+ TextDirection.rtl,);
151
151
  // }
152
152
  } else {
153
153
  if (selectedBook.index - 1 >= 0) {
154
154
  final prevBook = bible.books[selectedBook.index - 1];
155
155
  pushBookChapter(context, bible.name, prevBook.index,
156
- prevBook.chapters.length - 1, TextDirection.rtl);
156
+ prevBook.chapters.length - 1, TextDirection.rtl,);
157
157
  }
158
158
  }
159
159
  }
160
160
 
161
- showAboutUs(BuildContext context) {
161
+ void showAboutUs(BuildContext context) {
162
162
  Navigator.of(context).push(
163
163
  createNoTransitionPageRoute(
164
164
  const WebViewScreen(
@@ -168,7 +168,7 @@ showAboutUs(BuildContext context) {
168
168
  );
169
169
  }
170
170
 
171
- showPrivacyPolicy(BuildContext context) {
171
+ void showPrivacyPolicy(BuildContext context) {
172
172
  Navigator.of(context).push(
173
173
  createNoTransitionPageRoute(
174
174
  const WebViewScreen(
@@ -178,7 +178,7 @@ showPrivacyPolicy(BuildContext context) {
178
178
  );
179
179
  }
180
180
 
181
- showTermsAndConditions(BuildContext context) {
181
+ void showTermsAndConditions(BuildContext context) {
182
182
  Navigator.of(context).push(
183
183
  createNoTransitionPageRoute(
184
184
  const WebViewScreen(
@@ -188,7 +188,7 @@ showTermsAndConditions(BuildContext context) {
188
188
  );
189
189
  }
190
190
 
191
- changeBible(BuildContext context) {
191
+ void changeBible(BuildContext context) {
192
192
  Navigator.of(context).pushReplacement(
193
193
  createNoTransitionPageRoute(
194
194
  const BibleSelectScreen(),
@@ -196,7 +196,7 @@ changeBible(BuildContext context) {
196
196
  );
197
197
  }
198
198
 
199
- changeBibleFromHeader(BuildContext context) {
199
+ void changeBibleFromHeader(BuildContext context) {
200
200
  Navigator.of(context).push(
201
201
  createNoTransitionPageRoute(
202
202
  const BibleSelectScreen(),
@@ -204,7 +204,7 @@ changeBibleFromHeader(BuildContext context) {
204
204
  );
205
205
  }
206
206
 
207
- changeBook(BuildContext context, Bible bible) {
207
+ void changeBook(BuildContext context, Bible bible) {
208
208
  Navigator.of(context).push(
209
209
  createNoTransitionPageRoute(
210
210
  BookSelectScreen(bible: bible),
@@ -212,7 +212,7 @@ changeBook(BuildContext context, Bible bible) {
212
212
  );
213
213
  }
214
214
 
215
- changeChapter(BuildContext context, Bible bible, Book book, int index) {
215
+ void changeChapter(BuildContext context, Bible bible, Book book, int index) {
216
216
  Navigator.of(context).push(
217
217
  createNoTransitionPageRoute(
218
218
  ChapterSelectScreen(bible: bible, book: book, selectedBookIndex: index),
@@ -220,14 +220,14 @@ changeChapter(BuildContext context, Bible bible, Book book, int index) {
220
220
  );
221
221
  }
222
222
 
223
- updateCurrentBible(BuildContext context, String name, String code, int book,
223
+ Future<void> updateCurrentBible(BuildContext context, String name, String code, int book,
224
- int chapter) async {
224
+ int chapter,) async {
225
225
  hideActions(context);
226
226
  dispatch(UpdateBible(name, code));
227
227
  pushBookChapter(context, name, book, chapter, null);
228
228
  }
229
229
 
230
- shareAppLink(BuildContext context) {
230
+ void shareAppLink(BuildContext context) {
231
231
  if (isAndroid()) {
232
232
  Share.share(
233
233
  subject: "Only Bible App",
@@ -241,11 +241,11 @@ shareAppLink(BuildContext context) {
241
241
  }
242
242
  }
243
243
 
244
- rateApp(BuildContext context) async {
244
+ Future<void> rateApp(BuildContext context) async {
245
- await AppReview.requestReview;
245
+ AppReview.requestReview;
246
246
  }
247
247
 
248
- shareVerses(BuildContext context, Bible bible, List<Verse> verses) async {
248
+ Future<void> shareVerses(BuildContext context, Bible bible, List<Verse> verses) async {
249
249
  final name = context.bookNames[verses.first.book];
250
250
  final chapter = verses.first.chapter + 1;
251
251
  final items = verses.sortedBy((e) => e.index).map((e) => e.index + 1);
@@ -258,7 +258,7 @@ shareVerses(BuildContext context, Bible bible, List<Verse> verses) async {
258
258
  hideActions(context);
259
259
  }
260
260
 
261
- showSettings(BuildContext context, Bible bible) {
261
+ void showSettings(BuildContext context, Bible bible) {
262
262
  showModalBottomSheet(
263
263
  context: context,
264
264
  isDismissible: true,
@@ -269,7 +269,7 @@ showSettings(BuildContext context, Bible bible) {
269
269
  );
270
270
  }
271
271
 
272
- showActions(BuildContext context, Bible bible) {
272
+ void showActions(BuildContext context, Bible bible) {
273
273
  if (!actionsShownAtom.value) {
274
274
  dispatch(const SetActionsShown(true));
275
275
  Scaffold.of(context).showBottomSheet(
@@ -280,7 +280,7 @@ showActions(BuildContext context, Bible bible) {
280
280
  }
281
281
  }
282
282
 
283
- hideActions(BuildContext context) {
283
+ void hideActions(BuildContext context) {
284
284
  if (actionsShownAtom.value) {
285
285
  dispatch(const SetActionsShown(false));
286
286
  dispatch(const ClearSelectedVerses());
@@ -288,7 +288,7 @@ hideActions(BuildContext context) {
288
288
  }
289
289
  }
290
290
 
291
- showHighlights(BuildContext context) {
291
+ void showHighlights(BuildContext context) {
292
292
  dispatch(const SetHighlightsShown(true));
293
293
  Scaffold.of(context).showBottomSheet(
294
294
  enableDrag: false,
@@ -297,7 +297,7 @@ showHighlights(BuildContext context) {
297
297
  );
298
298
  }
299
299
 
300
- hideHighlights(BuildContext context) {
300
+ void hideHighlights(BuildContext context) {
301
301
  if (highlightsShownAtom.value) {
302
302
  dispatch(const SetHighlightsShown(false));
303
303
  Navigator.of(context).pop();
lib/screens/book_select_screen.dart CHANGED
@@ -12,7 +12,7 @@ class BookSelectScreen extends StatelessWidget {
12
12
 
13
13
  const BookSelectScreen({super.key, required this.bible});
14
14
 
15
- onBookSelected(BuildContext context, int index) {
15
+ dynamic onBookSelected(BuildContext context, int index) {
16
16
  final book = bible.books[index];
17
17
  if (book.chapters.length == 1) {
18
18
  return replaceBookChapter(context, bible.name, index, 0);
lib/screens/chapter_view_screen.dart CHANGED
@@ -14,7 +14,7 @@ class ChapterViewScreen extends StatelessWidget {
14
14
  {super.key,
15
15
  required this.bibleName,
16
16
  required this.bookIndex,
17
- required this.chapterIndex});
17
+ required this.chapterIndex,});
18
18
 
19
19
  @override
20
20
  Widget build(BuildContext context) {
@@ -23,7 +23,7 @@ class ChapterViewScreen extends StatelessWidget {
23
23
  builder: (context, state) {
24
24
  return state.when(
25
25
  loading: () => ColoredBox(
26
- color: Theme.of(context).colorScheme.background,
26
+ color: Theme.of(context).colorScheme.surface,
27
27
  child: const Center(
28
28
  child: CircularProgressIndicator(),
29
29
  ),
@@ -34,7 +34,7 @@ class ChapterViewScreen extends StatelessWidget {
34
34
  return Scaffold(
35
35
  appBar:
36
36
  ChapterAppBar(bible: bible, book: book, chapter: chapter),
37
- backgroundColor: Theme.of(context).colorScheme.background,
37
+ backgroundColor: Theme.of(context).colorScheme.surface,
38
38
  body: SafeArea(
39
39
  child: VersesView(bible: bible, chapter: chapter),
40
40
  ),
@@ -43,12 +43,12 @@ class ChapterViewScreen extends StatelessWidget {
43
43
  error: () {
44
44
  print(state.stackTrace);
45
45
  return ColoredBox(
46
- color: Theme.of(context).colorScheme.background,
46
+ color: Theme.of(context).colorScheme.surface,
47
47
  child: Center(
48
48
  child: Text("Could not load the bible ${state.error}"),
49
49
  ),
50
50
  );
51
- });
51
+ },);
52
52
  },
53
53
  );
54
54
  }
lib/screens/webview_screen.dart CHANGED
@@ -12,7 +12,7 @@ class WebViewScreen extends StatelessWidget {
12
12
  ..setJavaScriptMode(JavaScriptMode.unrestricted)
13
13
  ..loadRequest(Uri.parse(url));
14
14
  return Scaffold(
15
- backgroundColor: Theme.of(context).colorScheme.background,
15
+ backgroundColor: Theme.of(context).colorScheme.surface,
16
16
  appBar: AppBar(),
17
17
  body: SafeArea(
18
18
  child: WebViewWidget(controller: controller),
lib/sheets/actions_sheet.dart CHANGED
@@ -16,7 +16,7 @@ class ActionsSheet extends StatelessWidget {
16
16
  final audioIcon = isPlaying.watch(context) ? Icons.pause_circle_outline : Icons.play_circle_outline;
17
17
  return Container(
18
18
  height: context.actionsHeight,
19
- color: Theme.of(context).colorScheme.background,
19
+ color: Theme.of(context).colorScheme.surface,
20
20
  padding: EdgeInsets.only(left: 20, right: 20, bottom: bottom),
21
21
  child: Row(
22
22
  mainAxisAlignment: MainAxisAlignment.spaceAround,
lib/sheets/highlight_sheet.dart CHANGED
@@ -17,7 +17,7 @@ class HighlightSheet extends StatelessWidget {
17
17
 
18
18
  return Container(
19
19
  height: context.actionsHeight,
20
- color: context.theme.colorScheme.background,
20
+ color: context.theme.colorScheme.surface,
21
21
  padding: EdgeInsets.only(left: 20, right: 20, bottom: bottom),
22
22
  child: Row(
23
23
  mainAxisAlignment: MainAxisAlignment.spaceAround,
lib/sheets/settings_sheet.dart CHANGED
@@ -61,7 +61,7 @@ class SettingsSheet extends StatelessWidget {
61
61
  ),
62
62
  SettingsTile(
63
63
  title: Text(context.l.incrementFontTitle),
64
- leading: Icon(Icons.font_download, color: context.theme.colorScheme.onBackground),
64
+ leading: Icon(Icons.font_download, color: context.theme.colorScheme.onSurface),
65
65
  trailing: IconButton(
66
66
  onPressed: () => dispatch(const UpdateTextScale(0.1)),
67
67
  icon: const Icon(Icons.add_circle_outline, size: 32, color: Colors.redAccent),
@@ -69,7 +69,7 @@ class SettingsSheet extends StatelessWidget {
69
69
  ),
70
70
  SettingsTile(
71
71
  title: Text(context.l.decrementFontTitle),
72
- leading: Icon(Icons.font_download, color: context.theme.colorScheme.onBackground),
72
+ leading: Icon(Icons.font_download, color: context.theme.colorScheme.onSurface),
73
73
  trailing: IconButton(
74
74
  onPressed: () => dispatch(const UpdateTextScale(-0.1)),
75
75
  icon: const Icon(Icons.remove_circle_outline, size: 32, color: Colors.blueAccent),
@@ -77,13 +77,13 @@ class SettingsSheet extends StatelessWidget {
77
77
  ),
78
78
  SettingsTile.switchTile(
79
79
  initialValue: boldFontAtom.watch(context),
80
- leading: Icon(Icons.format_bold, color: context.theme.colorScheme.onBackground),
80
+ leading: Icon(Icons.format_bold, color: context.theme.colorScheme.onSurface),
81
81
  title: Text(context.l.boldFontTitle),
82
82
  onToggle: (value) => dispatch(ToggleBoldFont()),
83
83
  ),
84
84
  SettingsTile.switchTile(
85
85
  initialValue: engTitlesAtom.watch(context),
86
- leading: Icon(Icons.abc, color: context.theme.colorScheme.onBackground),
86
+ leading: Icon(Icons.abc, color: context.theme.colorScheme.onSurface),
87
87
  title: Text(context.l.engTitles),
88
88
  onToggle: (value) => dispatch(ToggleEngTitles()),
89
89
  ),
@@ -114,7 +114,7 @@ class SettingsSheet extends StatelessWidget {
114
114
  onPressed: rateApp,
115
115
  ),
116
116
  SettingsTile.navigation(
117
- leading: Icon(Icons.info_outline, color: context.theme.colorScheme.onBackground),
117
+ leading: Icon(Icons.info_outline, color: context.theme.colorScheme.onSurface),
118
118
  title: Text(context.l.aboutUsTitle),
119
119
  onPressed: showAboutUs,
120
120
  ),
lib/store/state.dart CHANGED
@@ -18,7 +18,7 @@ final player = AudioPlayer();
18
18
  final noteTextController = TextEditingController();
19
19
  final storage = FileStorage(box: box);
20
20
 
21
- initState() async {
21
+ Future<void> initState() async {
22
22
  await box.initStorage;
23
23
  }
24
24
 
@@ -198,12 +198,12 @@ void removeHighlight(BuildContext context) {
198
198
 
199
199
  bool isVerseSelected(Verse v) {
200
200
  return selectedVersesAtom.value.any((el) =>
201
- el.book == v.book && el.chapter == v.chapter && el.index == v.index);
201
+ el.book == v.book && el.chapter == v.chapter && el.index == v.index,);
202
202
  }
203
203
 
204
204
  bool watchVerseSelected(BuildContext context, Verse v) {
205
205
  return selectedVersesAtom.watch(context).any((el) =>
206
- el.book == v.book && el.chapter == v.chapter && el.index == v.index);
206
+ el.book == v.book && el.chapter == v.chapter && el.index == v.index,);
207
207
  }
208
208
 
209
209
  void onVerseSelected(BuildContext context, Bible bible, Verse v) {
@@ -231,22 +231,22 @@ TextStyle getHighlightStyle(BuildContext context, Verse v, bool heading) {
231
231
  backgroundColor: getHighlight(v)?.withOpacity(0.7),
232
232
  color: getHighlight(v) != null
233
233
  ? Colors.white
234
- : context.theme.colorScheme.onBackground,
234
+ : context.theme.colorScheme.onSurface,
235
235
  );
236
236
  }
237
237
  return TextStyle(
238
- backgroundColor: getHighlight(v) ?? context.theme.colorScheme.background,
238
+ backgroundColor: getHighlight(v) ?? context.theme.colorScheme.surface,
239
239
  );
240
240
  }
241
241
 
242
- clearEvents(BuildContext context) {
242
+ void clearEvents(BuildContext context) {
243
243
  if (isPlaying.value) {
244
244
  pause();
245
245
  }
246
246
  hideActions(context);
247
247
  }
248
248
 
249
- pause() async {
249
+ Future<void> pause() async {
250
250
  await player.pause();
251
251
  dispatch(const SetPlaying(false));
252
252
  }
@@ -274,7 +274,7 @@ class BufferAudioSource extends StreamAudioSource {
274
274
  }
275
275
  }
276
276
 
277
- onPlay(BuildContext context, Bible bible) async {
277
+ Future<void> onPlay(BuildContext context, Bible bible) async {
278
278
  final versesToPlay = List<Verse>.from(selectedVersesAtom.value);
279
279
  if (isPlaying.value) {
280
280
  pause();
lib/theme.dart CHANGED
@@ -15,8 +15,8 @@ const darkHighlights = [
15
15
  ];
16
16
 
17
17
  const lightColorScheme = ColorScheme.light(
18
- background: Colors.white,
18
+ surface: Colors.white,
19
- onBackground: Color(0xFF010101),
19
+ onSurface: Color(0xFF010101),
20
20
  primary: Color(0xFF9A1111),
21
21
  secondary: Color(0xFFFFC351),
22
22
  surfaceTint: Colors.black,
@@ -25,8 +25,8 @@ const lightColorScheme = ColorScheme.light(
25
25
  );
26
26
 
27
27
  const darkColorScheme = ColorScheme.dark(
28
- background: Color(0xFF1F1F22),
28
+ surface: Color(0xFF1F1F22),
29
- onBackground: Color(0xFFBCBEC4),
29
+ onSurface: Color(0xFFBCBEC4),
30
30
  primary: Color(0xFFBC86FC),
31
31
  secondary: Color(0xFFFFC351),
32
32
  tertiary: Color(0xFF323232),
@@ -64,8 +64,8 @@ final lightTheme = ThemeData(
64
64
  hintStyle: TextStyle(color: Colors.grey),
65
65
  ),
66
66
  appBarTheme: AppBarTheme(
67
- backgroundColor: lightColorScheme.background,
67
+ backgroundColor: lightColorScheme.surface,
68
- foregroundColor: lightColorScheme.onBackground,
68
+ foregroundColor: lightColorScheme.onSurface,
69
69
  elevation: 1,
70
70
  ),
71
71
  bottomSheetTheme: const BottomSheetThemeData(
@@ -86,7 +86,7 @@ final lightTheme = ThemeData(
86
86
  ),
87
87
  ),
88
88
  ),
89
- dialogTheme: const DialogTheme(
89
+ dialogTheme: const DialogThemeData(
90
90
  elevation: 10,
91
91
  // TODO: get this to inherit from top like darkTheme does
92
92
  shadowColor: Colors.black,
@@ -146,14 +146,14 @@ final lightTheme = ThemeData(
146
146
  fontWeight: FontWeight.w400,
147
147
  wordSpacing: 0,
148
148
  letterSpacing: 0,
149
- color: lightColorScheme.onBackground,
149
+ color: lightColorScheme.onSurface,
150
150
  ),
151
151
  bodySmall: TextStyle(
152
152
  fontSize: 14,
153
153
  fontWeight: FontWeight.w400,
154
154
  wordSpacing: 0,
155
155
  letterSpacing: 0,
156
- color: lightColorScheme.onBackground,
156
+ color: lightColorScheme.onSurface,
157
157
  ),
158
158
  headlineLarge: TextStyle(
159
159
  fontSize: 38,
@@ -161,7 +161,7 @@ final lightTheme = ThemeData(
161
161
  color: lightColorScheme.secondary,
162
162
  ),
163
163
  headlineMedium: TextStyle(
164
- color: lightColorScheme.onBackground,
164
+ color: lightColorScheme.onSurface,
165
165
  fontSize: 19,
166
166
  fontWeight: FontWeight.w500,
167
167
  letterSpacing: 0.5,
@@ -187,8 +187,8 @@ final darkTheme = lightTheme.copyWith(
187
187
  dividerColor: Colors.white,
188
188
  shadowColor: Colors.white,
189
189
  appBarTheme: AppBarTheme(
190
- backgroundColor: darkColorScheme.background,
190
+ backgroundColor: darkColorScheme.surface,
191
- foregroundColor: darkColorScheme.onBackground,
191
+ foregroundColor: darkColorScheme.onSurface,
192
192
  elevation: 1,
193
193
  ),
194
194
  bottomSheetTheme: lightTheme.bottomSheetTheme.copyWith(
@@ -196,8 +196,8 @@ final darkTheme = lightTheme.copyWith(
196
196
  shadowColor: Colors.white,
197
197
  surfaceTintColor: const Color(0xFF141415),
198
198
  ),
199
- dialogTheme: DialogTheme(
199
+ dialogTheme: DialogThemeData(
200
- backgroundColor: darkColorScheme.background,
200
+ backgroundColor: darkColorScheme.surface,
201
201
  elevation: 1,
202
202
  shape: Border(
203
203
  top: BorderSide(
@@ -234,24 +234,24 @@ final darkTheme = lightTheme.copyWith(
234
234
  padding: lightTheme.textButtonTheme.style!.padding,
235
235
  shape: lightTheme.textButtonTheme.style!.shape,
236
236
  textStyle: lightTheme.textButtonTheme.style!.textStyle,
237
- elevation: MaterialStateProperty.all(1),
237
+ elevation: WidgetStateProperty.all(1),
238
- shadowColor: MaterialStateProperty.all(Colors.white),
238
+ shadowColor: WidgetStateProperty.all(Colors.white),
239
- backgroundColor: MaterialStateProperty.all(darkColorScheme.tertiary),
239
+ backgroundColor: WidgetStateProperty.all(darkColorScheme.tertiary),
240
- foregroundColor: MaterialStateProperty.all(darkColorScheme.primary),
240
+ foregroundColor: WidgetStateProperty.all(darkColorScheme.primary),
241
241
  ),
242
242
  ),
243
243
  textTheme: TextTheme(
244
244
  bodyMedium: lightTheme.textTheme.bodyMedium!.copyWith(
245
- color: darkColorScheme.onBackground,
245
+ color: darkColorScheme.onSurface,
246
246
  ),
247
247
  bodySmall: lightTheme.textTheme.bodyMedium!.copyWith(
248
- color: darkColorScheme.onBackground,
248
+ color: darkColorScheme.onSurface,
249
249
  ),
250
250
  headlineLarge: lightTheme.textTheme.headlineLarge!.copyWith(
251
251
  color: darkColorScheme.secondary,
252
252
  ),
253
253
  headlineMedium: lightTheme.textTheme.headlineMedium!.copyWith(
254
- color: darkColorScheme.onBackground,
254
+ color: darkColorScheme.onSurface,
255
255
  ),
256
256
  labelMedium: lightTheme.textTheme.labelMedium!.copyWith(
257
257
  color: darkColorScheme.onTertiary,
lib/utils.dart CHANGED
@@ -7,13 +7,15 @@ import "package:only_bible_app/models.dart";
7
7
  import "package:only_bible_app/store/state.dart";
8
8
  import "package:package_info_plus/package_info_plus.dart";
9
9
  import "package:url_launcher/url_launcher.dart";
10
- import "package:flutter/foundation.dart" show TargetPlatform, defaultTargetPlatform, kDebugMode;
10
+ import "package:flutter/foundation.dart"
11
+ show TargetPlatform, defaultTargetPlatform, kDebugMode;
11
12
  import "package:flutter/material.dart";
12
- import "package:flutter_gen/gen_l10n/app_localizations.dart";
13
+ import "package:only_bible_app/l10n/app_localizations.dart";
13
14
  import "package:flutter_azure_tts/flutter_azure_tts.dart";
14
15
 
15
16
  extension IterableUtils<E> on Iterable<E> {
16
- Iterable<E> sortedBy(Comparable Function(E e) key) => toList()..sort((a, b) => key(a).compareTo(key(b)));
17
+ Iterable<E> sortedBy(Comparable Function(E e) key) =>
18
+ toList()..sort((a, b) => key(a).compareTo(key(b)));
17
19
 
18
20
  Iterable<E> removeBy(bool Function(E e) key) => toList()..removeWhere(key);
19
21
 
@@ -39,12 +41,13 @@ extension AsyncSnapshotUtils<E> on AsyncSnapshot<E> {
39
41
  extension AppContext on BuildContext {
40
42
  ThemeData get theme => Theme.of(this);
41
43
 
44
+ AppLocalizations get l =>
42
- AppLocalizations get l => engTitlesAtom.watch(this) && languageCodeAtom.watch(this) != "en"
45
+ engTitlesAtom.watch(this) && languageCodeAtom.watch(this) != "en"
43
- ? lookupAppLocalizations(const Locale("en"))
46
+ ? lookupAppLocalizations(const Locale("en"))
44
- : AppLocalizations.of(this)!;
47
+ : AppLocalizations.of(this)!;
45
48
 
46
- AppLocalizations get currentLang =>
49
+ AppLocalizations get currentLang => supportedLocalizations
47
- supportedLocalizations.firstWhere((el) => el.languageCode == languageCodeAtom.value);
50
+ .firstWhere((el) => el.languageCode == languageCodeAtom.value);
48
51
 
49
52
  double get actionsHeight {
50
53
  if (isIOS()) {
@@ -131,7 +134,7 @@ extension AppContext on BuildContext {
131
134
  ];
132
135
  }
133
136
 
134
- openUrl(String url) async {
137
+ Future<void> openUrl(String url) async {
135
138
  final uri = Uri.parse(url);
136
139
  if (await canLaunchUrl(uri)) {
137
140
  if (await launchUrl(uri)) {
@@ -152,28 +155,33 @@ bool isAndroid() {
152
155
  }
153
156
 
154
157
  Future<Uint8List> convertText(String langCode, String text) async {
155
- final ttsResponse = await AzureTts.getTts(TtsParams(
158
+ final ttsResponse = await FlutterAzureTts.getTts(
159
+ TtsParams(
156
- voice: Voice(
160
+ voice: Voice(
157
- name: "",
161
+ name: "",
158
- displayName: "",
162
+ displayName: "",
159
- localName: "",
163
+ localName: "",
160
- shortName: langCode,
164
+ shortName: langCode,
161
- gender: "",
165
+ gender: "",
162
- locale: langCode,
166
+ locale: langCode,
163
- sampleRateHertz: AudioOutputFormat.audio48khz96kBitrateMonoMp3,
167
+ sampleRateHertz: AudioOutputFormat.audio48khz96kBitrateMonoMp3,
164
- voiceType: "",
168
+ voiceType: "",
165
- status: "",
169
+ status: "",
170
+ styles: [],
171
+ roles: [],
172
+ ),
173
+ audioFormat: AudioOutputFormat.audio48khz96kBitrateMonoMp3,
174
+ rate: 0.90,
175
+ text: text,
166
176
  ),
167
- audioFormat: AudioOutputFormat.audio48khz96kBitrateMonoMp3,
168
- rate: 0.90,
169
- text: text,
170
- ));
177
+ );
171
178
  return ttsResponse.audio.buffer.asUint8List();
172
179
  }
173
180
 
174
181
  Future<Bible> loadBible(String name) async {
175
182
  final bytes = await rootBundle.load("assets/bibles/$name.txt");
183
+ final books = parseBible(
176
- final books = parseBible(name, utf8.decode(bytes.buffer.asUint8List(), allowMalformed: false));
184
+ name, utf8.decode(bytes.buffer.asUint8List(), allowMalformed: false));
177
185
  // await Future.delayed(Duration(seconds: 2));
178
186
  return Bible(
179
187
  name: name,
@@ -181,7 +189,7 @@ Future<Bible> loadBible(String name) async {
181
189
  );
182
190
  }
183
191
 
184
- recordError(String message, StackTrace? stack) async {
192
+ Future<void> recordError(String message, StackTrace? stack) async {
185
193
  final packageInfo = await PackageInfo.fromPlatform();
186
194
  if (kDebugMode) {
187
195
  print("ERROR: $message");
lib/widgets/modal_button.dart CHANGED
@@ -34,7 +34,7 @@ class ModalButton extends StatelessWidget {
34
34
  ),
35
35
  ),
36
36
  shadowColor: theme.shadowColor,
37
- backgroundColor: theme.colorScheme.background,
37
+ backgroundColor: theme.colorScheme.surface,
38
38
  foregroundColor: theme.colorScheme.primary,
39
39
  ),
40
40
  ),
lib/widgets/scaffold_menu.dart CHANGED
@@ -10,12 +10,12 @@ class ScaffoldMenu extends StatelessWidget {
10
10
  @override
11
11
  Widget build(BuildContext context) {
12
12
  return Scaffold(
13
- backgroundColor: context.theme.colorScheme.background,
13
+ backgroundColor: context.theme.colorScheme.surface,
14
14
  body: SafeArea(
15
15
  child: ColoredBox(
16
16
  color: Colors.black.withOpacity(0.7),
17
17
  child: ColoredBox(
18
- color: backgroundColor ?? context.theme.colorScheme.background,
18
+ color: backgroundColor ?? context.theme.colorScheme.surface,
19
19
  child: child,
20
20
  ),
21
21
  ),
lib/widgets/sliver_heading.dart CHANGED
@@ -32,7 +32,7 @@ class SliverHeading extends StatelessWidget {
32
32
  onPressed: () {
33
33
  Navigator.of(context).pop();
34
34
  },
35
- )
35
+ ),
36
36
  ],
37
37
  ),
38
38
  ),
lib/widgets/verses_view.dart CHANGED
@@ -39,7 +39,7 @@ class VersesView extends StatelessWidget {
39
39
  alignment: Alignment.centerLeft,
40
40
  child: Text.rich(
41
41
  textScaler: TextScaler.linear(
42
- 1.1 + textScaleAtom.watch(context) / 2),
42
+ 1.1 + textScaleAtom.watch(context) / 2,),
43
43
  textAlign: TextAlign.left,
44
44
  TextSpan(
45
45
  style: boldFontAtom.watch(context)
@@ -68,7 +68,7 @@ class VersesView extends StatelessWidget {
68
68
  child: Text("${v.index + 1} ",
69
69
  style: Theme.of(context)
70
70
  .textTheme
71
- .labelMedium),
71
+ .labelMedium,),
72
72
  ),
73
73
  ),
74
74
  TextSpan(
@@ -83,7 +83,7 @@ class VersesView extends StatelessWidget {
83
83
  const WidgetSpan(
84
84
  child: Padding(
85
85
  padding: EdgeInsets.only(
86
- top: 16, bottom: 16),
86
+ top: 16, bottom: 16,),
87
87
  ),
88
88
  ),
89
89
  ],
@@ -95,7 +95,7 @@ class VersesView extends StatelessWidget {
95
95
  ),
96
96
  Padding(
97
97
  padding: EdgeInsets.only(
98
- bottom: actionsShownAtom.watch(context) ? 120 : 0),
98
+ bottom: actionsShownAtom.watch(context) ? 120 : 0,),
99
99
  ),
100
100
  ],
101
101
  ),
@@ -103,6 +103,6 @@ class VersesView extends StatelessWidget {
103
103
  ),
104
104
  ),
105
105
  ],
106
- ));
106
+ ),);
107
107
  }
108
108
  }
linux/.gitignore ADDED
@@ -0,0 +1 @@
1
+ flutter/ephemeral
linux/CMakeLists.txt ADDED
@@ -0,0 +1,128 @@
1
+ # Project-level configuration.
2
+ cmake_minimum_required(VERSION 3.13)
3
+ project(runner LANGUAGES CXX)
4
+
5
+ # The name of the executable created for the application. Change this to change
6
+ # the on-disk name of your application.
7
+ set(BINARY_NAME "only_bible_app")
8
+ # The unique GTK application identifier for this application. See:
9
+ # https://wiki.gnome.org/HowDoI/ChooseApplicationID
10
+ set(APPLICATION_ID "sh.pyros.only_bible_app")
11
+
12
+ # Explicitly opt in to modern CMake behaviors to avoid warnings with recent
13
+ # versions of CMake.
14
+ cmake_policy(SET CMP0063 NEW)
15
+
16
+ # Load bundled libraries from the lib/ directory relative to the binary.
17
+ set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")
18
+
19
+ # Root filesystem for cross-building.
20
+ if(FLUTTER_TARGET_PLATFORM_SYSROOT)
21
+ set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})
22
+ set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
23
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
24
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
25
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
26
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
27
+ endif()
28
+
29
+ # Define build configuration options.
30
+ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
31
+ set(CMAKE_BUILD_TYPE "Debug" CACHE
32
+ STRING "Flutter build mode" FORCE)
33
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
34
+ "Debug" "Profile" "Release")
35
+ endif()
36
+
37
+ # Compilation settings that should be applied to most targets.
38
+ #
39
+ # Be cautious about adding new options here, as plugins use this function by
40
+ # default. In most cases, you should add new options to specific targets instead
41
+ # of modifying this function.
42
+ function(APPLY_STANDARD_SETTINGS TARGET)
43
+ target_compile_features(${TARGET} PUBLIC cxx_std_14)
44
+ target_compile_options(${TARGET} PRIVATE -Wall -Werror)
45
+ target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
46
+ target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
47
+ endfunction()
48
+
49
+ # Flutter library and tool build rules.
50
+ set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
51
+ add_subdirectory(${FLUTTER_MANAGED_DIR})
52
+
53
+ # System-level dependencies.
54
+ find_package(PkgConfig REQUIRED)
55
+ pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
56
+
57
+ # Application build; see runner/CMakeLists.txt.
58
+ add_subdirectory("runner")
59
+
60
+ # Run the Flutter tool portions of the build. This must not be removed.
61
+ add_dependencies(${BINARY_NAME} flutter_assemble)
62
+
63
+ # Only the install-generated bundle's copy of the executable will launch
64
+ # correctly, since the resources must in the right relative locations. To avoid
65
+ # people trying to run the unbundled copy, put it in a subdirectory instead of
66
+ # the default top-level location.
67
+ set_target_properties(${BINARY_NAME}
68
+ PROPERTIES
69
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run"
70
+ )
71
+
72
+
73
+ # Generated plugin build rules, which manage building the plugins and adding
74
+ # them to the application.
75
+ include(flutter/generated_plugins.cmake)
76
+
77
+
78
+ # === Installation ===
79
+ # By default, "installing" just makes a relocatable bundle in the build
80
+ # directory.
81
+ set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle")
82
+ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
83
+ set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
84
+ endif()
85
+
86
+ # Start with a clean build bundle directory every time.
87
+ install(CODE "
88
+ file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\")
89
+ " COMPONENT Runtime)
90
+
91
+ set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")
92
+ set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
93
+
94
+ install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
95
+ COMPONENT Runtime)
96
+
97
+ install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
98
+ COMPONENT Runtime)
99
+
100
+ install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
101
+ COMPONENT Runtime)
102
+
103
+ foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
104
+ install(FILES "${bundled_library}"
105
+ DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
106
+ COMPONENT Runtime)
107
+ endforeach(bundled_library)
108
+
109
+ # Copy the native assets provided by the build.dart from all packages.
110
+ set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/")
111
+ install(DIRECTORY "${NATIVE_ASSETS_DIR}"
112
+ DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
113
+ COMPONENT Runtime)
114
+
115
+ # Fully re-copy the assets directory on each build to avoid having stale files
116
+ # from a previous install.
117
+ set(FLUTTER_ASSET_DIR_NAME "flutter_assets")
118
+ install(CODE "
119
+ file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")
120
+ " COMPONENT Runtime)
121
+ install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"
122
+ DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)
123
+
124
+ # Install the AOT library on non-Debug builds only.
125
+ if(NOT CMAKE_BUILD_TYPE MATCHES "Debug")
126
+ install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
127
+ COMPONENT Runtime)
128
+ endif()
linux/flutter/CMakeLists.txt ADDED
@@ -0,0 +1,88 @@
1
+ # This file controls Flutter-level build steps. It should not be edited.
2
+ cmake_minimum_required(VERSION 3.10)
3
+
4
+ set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
5
+
6
+ # Configuration provided via flutter tool.
7
+ include(${EPHEMERAL_DIR}/generated_config.cmake)
8
+
9
+ # TODO: Move the rest of this into files in ephemeral. See
10
+ # https://github.com/flutter/flutter/issues/57146.
11
+
12
+ # Serves the same purpose as list(TRANSFORM ... PREPEND ...),
13
+ # which isn't available in 3.10.
14
+ function(list_prepend LIST_NAME PREFIX)
15
+ set(NEW_LIST "")
16
+ foreach(element ${${LIST_NAME}})
17
+ list(APPEND NEW_LIST "${PREFIX}${element}")
18
+ endforeach(element)
19
+ set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE)
20
+ endfunction()
21
+
22
+ # === Flutter Library ===
23
+ # System-level dependencies.
24
+ find_package(PkgConfig REQUIRED)
25
+ pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
26
+ pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
27
+ pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
28
+
29
+ set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so")
30
+
31
+ # Published to parent scope for install step.
32
+ set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)
33
+ set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE)
34
+ set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE)
35
+ set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE)
36
+
37
+ list(APPEND FLUTTER_LIBRARY_HEADERS
38
+ "fl_basic_message_channel.h"
39
+ "fl_binary_codec.h"
40
+ "fl_binary_messenger.h"
41
+ "fl_dart_project.h"
42
+ "fl_engine.h"
43
+ "fl_json_message_codec.h"
44
+ "fl_json_method_codec.h"
45
+ "fl_message_codec.h"
46
+ "fl_method_call.h"
47
+ "fl_method_channel.h"
48
+ "fl_method_codec.h"
49
+ "fl_method_response.h"
50
+ "fl_plugin_registrar.h"
51
+ "fl_plugin_registry.h"
52
+ "fl_standard_message_codec.h"
53
+ "fl_standard_method_codec.h"
54
+ "fl_string_codec.h"
55
+ "fl_value.h"
56
+ "fl_view.h"
57
+ "flutter_linux.h"
58
+ )
59
+ list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/")
60
+ add_library(flutter INTERFACE)
61
+ target_include_directories(flutter INTERFACE
62
+ "${EPHEMERAL_DIR}"
63
+ )
64
+ target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}")
65
+ target_link_libraries(flutter INTERFACE
66
+ PkgConfig::GTK
67
+ PkgConfig::GLIB
68
+ PkgConfig::GIO
69
+ )
70
+ add_dependencies(flutter flutter_assemble)
71
+
72
+ # === Flutter tool backend ===
73
+ # _phony_ is a non-existent file to force this command to run every time,
74
+ # since currently there's no way to get a full input/output list from the
75
+ # flutter tool.
76
+ add_custom_command(
77
+ OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}
78
+ ${CMAKE_CURRENT_BINARY_DIR}/_phony_
79
+ COMMAND ${CMAKE_COMMAND} -E env
80
+ ${FLUTTER_TOOL_ENVIRONMENT}
81
+ "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh"
82
+ ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE}
83
+ VERBATIM
84
+ )
85
+ add_custom_target(flutter_assemble DEPENDS
86
+ "${FLUTTER_LIBRARY}"
87
+ ${FLUTTER_LIBRARY_HEADERS}
88
+ )
linux/flutter/generated_plugin_registrant.cc ADDED
@@ -0,0 +1,15 @@
1
+ //
2
+ // Generated file. Do not edit.
3
+ //
4
+
5
+ // clang-format off
6
+
7
+ #include "generated_plugin_registrant.h"
8
+
9
+ #include <url_launcher_linux/url_launcher_plugin.h>
10
+
11
+ void fl_register_plugins(FlPluginRegistry* registry) {
12
+ g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
13
+ fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
14
+ url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
15
+ }
linux/flutter/generated_plugin_registrant.h ADDED
@@ -0,0 +1,15 @@
1
+ //
2
+ // Generated file. Do not edit.
3
+ //
4
+
5
+ // clang-format off
6
+
7
+ #ifndef GENERATED_PLUGIN_REGISTRANT_
8
+ #define GENERATED_PLUGIN_REGISTRANT_
9
+
10
+ #include <flutter_linux/flutter_linux.h>
11
+
12
+ // Registers Flutter plugins.
13
+ void fl_register_plugins(FlPluginRegistry* registry);
14
+
15
+ #endif // GENERATED_PLUGIN_REGISTRANT_
linux/flutter/generated_plugins.cmake ADDED
@@ -0,0 +1,24 @@
1
+ #
2
+ # Generated file, do not edit.
3
+ #
4
+
5
+ list(APPEND FLUTTER_PLUGIN_LIST
6
+ url_launcher_linux
7
+ )
8
+
9
+ list(APPEND FLUTTER_FFI_PLUGIN_LIST
10
+ )
11
+
12
+ set(PLUGIN_BUNDLED_LIBRARIES)
13
+
14
+ foreach(plugin ${FLUTTER_PLUGIN_LIST})
15
+ add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})
16
+ target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
17
+ list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
18
+ list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
19
+ endforeach(plugin)
20
+
21
+ foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
22
+ add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
23
+ list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
24
+ endforeach(ffi_plugin)
linux/runner/CMakeLists.txt ADDED
@@ -0,0 +1,26 @@
1
+ cmake_minimum_required(VERSION 3.13)
2
+ project(runner LANGUAGES CXX)
3
+
4
+ # Define the application target. To change its name, change BINARY_NAME in the
5
+ # top-level CMakeLists.txt, not the value here, or `flutter run` will no longer
6
+ # work.
7
+ #
8
+ # Any new source files that you add to the application should be added here.
9
+ add_executable(${BINARY_NAME}
10
+ "main.cc"
11
+ "my_application.cc"
12
+ "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
13
+ )
14
+
15
+ # Apply the standard set of build settings. This can be removed for applications
16
+ # that need different build settings.
17
+ apply_standard_settings(${BINARY_NAME})
18
+
19
+ # Add preprocessor definitions for the application ID.
20
+ add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")
21
+
22
+ # Add dependency libraries. Add any application-specific dependencies here.
23
+ target_link_libraries(${BINARY_NAME} PRIVATE flutter)
24
+ target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)
25
+
26
+ target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
linux/runner/main.cc ADDED
@@ -0,0 +1,6 @@
1
+ #include "my_application.h"
2
+
3
+ int main(int argc, char** argv) {
4
+ g_autoptr(MyApplication) app = my_application_new();
5
+ return g_application_run(G_APPLICATION(app), argc, argv);
6
+ }
linux/runner/my_application.cc ADDED
@@ -0,0 +1,148 @@
1
+ #include "my_application.h"
2
+
3
+ #include <flutter_linux/flutter_linux.h>
4
+ #ifdef GDK_WINDOWING_X11
5
+ #include <gdk/gdkx.h>
6
+ #endif
7
+
8
+ #include "flutter/generated_plugin_registrant.h"
9
+
10
+ struct _MyApplication {
11
+ GtkApplication parent_instance;
12
+ char** dart_entrypoint_arguments;
13
+ };
14
+
15
+ G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
16
+
17
+ // Called when first Flutter frame received.
18
+ static void first_frame_cb(MyApplication* self, FlView* view) {
19
+ gtk_widget_show(gtk_widget_get_toplevel(GTK_WIDGET(view)));
20
+ }
21
+
22
+ // Implements GApplication::activate.
23
+ static void my_application_activate(GApplication* application) {
24
+ MyApplication* self = MY_APPLICATION(application);
25
+ GtkWindow* window =
26
+ GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
27
+
28
+ // Use a header bar when running in GNOME as this is the common style used
29
+ // by applications and is the setup most users will be using (e.g. Ubuntu
30
+ // desktop).
31
+ // If running on X and not using GNOME then just use a traditional title bar
32
+ // in case the window manager does more exotic layout, e.g. tiling.
33
+ // If running on Wayland assume the header bar will work (may need changing
34
+ // if future cases occur).
35
+ gboolean use_header_bar = TRUE;
36
+ #ifdef GDK_WINDOWING_X11
37
+ GdkScreen* screen = gtk_window_get_screen(window);
38
+ if (GDK_IS_X11_SCREEN(screen)) {
39
+ const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);
40
+ if (g_strcmp0(wm_name, "GNOME Shell") != 0) {
41
+ use_header_bar = FALSE;
42
+ }
43
+ }
44
+ #endif
45
+ if (use_header_bar) {
46
+ GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
47
+ gtk_widget_show(GTK_WIDGET(header_bar));
48
+ gtk_header_bar_set_title(header_bar, "only_bible_app");
49
+ gtk_header_bar_set_show_close_button(header_bar, TRUE);
50
+ gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
51
+ } else {
52
+ gtk_window_set_title(window, "only_bible_app");
53
+ }
54
+
55
+ gtk_window_set_default_size(window, 1280, 720);
56
+
57
+ g_autoptr(FlDartProject) project = fl_dart_project_new();
58
+ fl_dart_project_set_dart_entrypoint_arguments(
59
+ project, self->dart_entrypoint_arguments);
60
+
61
+ FlView* view = fl_view_new(project);
62
+ GdkRGBA background_color;
63
+ // Background defaults to black, override it here if necessary, e.g. #00000000
64
+ // for transparent.
65
+ gdk_rgba_parse(&background_color, "#000000");
66
+ fl_view_set_background_color(view, &background_color);
67
+ gtk_widget_show(GTK_WIDGET(view));
68
+ gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
69
+
70
+ // Show the window when Flutter renders.
71
+ // Requires the view to be realized so we can start rendering.
72
+ g_signal_connect_swapped(view, "first-frame", G_CALLBACK(first_frame_cb),
73
+ self);
74
+ gtk_widget_realize(GTK_WIDGET(view));
75
+
76
+ fl_register_plugins(FL_PLUGIN_REGISTRY(view));
77
+
78
+ gtk_widget_grab_focus(GTK_WIDGET(view));
79
+ }
80
+
81
+ // Implements GApplication::local_command_line.
82
+ static gboolean my_application_local_command_line(GApplication* application,
83
+ gchar*** arguments,
84
+ int* exit_status) {
85
+ MyApplication* self = MY_APPLICATION(application);
86
+ // Strip out the first argument as it is the binary name.
87
+ self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);
88
+
89
+ g_autoptr(GError) error = nullptr;
90
+ if (!g_application_register(application, nullptr, &error)) {
91
+ g_warning("Failed to register: %s", error->message);
92
+ *exit_status = 1;
93
+ return TRUE;
94
+ }
95
+
96
+ g_application_activate(application);
97
+ *exit_status = 0;
98
+
99
+ return TRUE;
100
+ }
101
+
102
+ // Implements GApplication::startup.
103
+ static void my_application_startup(GApplication* application) {
104
+ // MyApplication* self = MY_APPLICATION(object);
105
+
106
+ // Perform any actions required at application startup.
107
+
108
+ G_APPLICATION_CLASS(my_application_parent_class)->startup(application);
109
+ }
110
+
111
+ // Implements GApplication::shutdown.
112
+ static void my_application_shutdown(GApplication* application) {
113
+ // MyApplication* self = MY_APPLICATION(object);
114
+
115
+ // Perform any actions required at application shutdown.
116
+
117
+ G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application);
118
+ }
119
+
120
+ // Implements GObject::dispose.
121
+ static void my_application_dispose(GObject* object) {
122
+ MyApplication* self = MY_APPLICATION(object);
123
+ g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);
124
+ G_OBJECT_CLASS(my_application_parent_class)->dispose(object);
125
+ }
126
+
127
+ static void my_application_class_init(MyApplicationClass* klass) {
128
+ G_APPLICATION_CLASS(klass)->activate = my_application_activate;
129
+ G_APPLICATION_CLASS(klass)->local_command_line =
130
+ my_application_local_command_line;
131
+ G_APPLICATION_CLASS(klass)->startup = my_application_startup;
132
+ G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown;
133
+ G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
134
+ }
135
+
136
+ static void my_application_init(MyApplication* self) {}
137
+
138
+ MyApplication* my_application_new() {
139
+ // Set the program name to the application ID, which helps various systems
140
+ // like GTK and desktop environments map this running application to its
141
+ // corresponding .desktop file. This ensures better integration by allowing
142
+ // the application to be recognized beyond its binary name.
143
+ g_set_prgname(APPLICATION_ID);
144
+
145
+ return MY_APPLICATION(g_object_new(my_application_get_type(),
146
+ "application-id", APPLICATION_ID, "flags",
147
+ G_APPLICATION_NON_UNIQUE, nullptr));
148
+ }
linux/runner/my_application.h ADDED
@@ -0,0 +1,21 @@
1
+ #ifndef FLUTTER_MY_APPLICATION_H_
2
+ #define FLUTTER_MY_APPLICATION_H_
3
+
4
+ #include <gtk/gtk.h>
5
+
6
+ G_DECLARE_FINAL_TYPE(MyApplication,
7
+ my_application,
8
+ MY,
9
+ APPLICATION,
10
+ GtkApplication)
11
+
12
+ /**
13
+ * my_application_new:
14
+ *
15
+ * Creates a new Flutter-based application.
16
+ *
17
+ * Returns: a new #MyApplication.
18
+ */
19
+ MyApplication* my_application_new();
20
+
21
+ #endif // FLUTTER_MY_APPLICATION_H_
macos/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ # Flutter-related
2
+ **/Flutter/ephemeral/
3
+ **/Pods/
4
+
5
+ # Xcode-related
6
+ **/dgph
7
+ **/xcuserdata/
macos/Flutter/Flutter-Debug.xcconfig ADDED
@@ -0,0 +1,2 @@
1
+ #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2
+ #include "ephemeral/Flutter-Generated.xcconfig"
macos/Flutter/Flutter-Release.xcconfig ADDED
@@ -0,0 +1,2 @@
1
+ #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2
+ #include "ephemeral/Flutter-Generated.xcconfig"
macos/Flutter/GeneratedPluginRegistrant.swift ADDED
@@ -0,0 +1,26 @@
1
+ //
2
+ // Generated file. Do not edit.
3
+ //
4
+
5
+ import FlutterMacOS
6
+ import Foundation
7
+
8
+ import app_review
9
+ import audio_session
10
+ import just_audio
11
+ import package_info_plus
12
+ import share_plus
13
+ import shared_preferences_foundation
14
+ import url_launcher_macos
15
+ import webview_flutter_wkwebview
16
+
17
+ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
18
+ AppReviewPlugin.register(with: registry.registrar(forPlugin: "AppReviewPlugin"))
19
+ AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin"))
20
+ JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin"))
21
+ FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
22
+ SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
23
+ SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
24
+ UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
25
+ WebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "WebViewFlutterPlugin"))
26
+ }
macos/Podfile ADDED
@@ -0,0 +1,42 @@
1
+ platform :osx, '10.15'
2
+
3
+ # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
4
+ ENV['COCOAPODS_DISABLE_STATS'] = 'true'
5
+
6
+ project 'Runner', {
7
+ 'Debug' => :debug,
8
+ 'Profile' => :release,
9
+ 'Release' => :release,
10
+ }
11
+
12
+ def flutter_root
13
+ generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
14
+ unless File.exist?(generated_xcode_build_settings_path)
15
+ raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
16
+ end
17
+
18
+ File.foreach(generated_xcode_build_settings_path) do |line|
19
+ matches = line.match(/FLUTTER_ROOT\=(.*)/)
20
+ return matches[1].strip if matches
21
+ end
22
+ raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
23
+ end
24
+
25
+ require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
26
+
27
+ flutter_macos_podfile_setup
28
+
29
+ target 'Runner' do
30
+ use_frameworks!
31
+
32
+ flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
33
+ target 'RunnerTests' do
34
+ inherit! :search_paths
35
+ end
36
+ end
37
+
38
+ post_install do |installer|
39
+ installer.pods_project.targets.each do |target|
40
+ flutter_additional_macos_build_settings(target)
41
+ end
42
+ end
macos/Runner.xcodeproj/project.pbxproj ADDED
@@ -0,0 +1,705 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 54;
7
+ objects = {
8
+
9
+ /* Begin PBXAggregateTarget section */
10
+ 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
11
+ isa = PBXAggregateTarget;
12
+ buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
13
+ buildPhases = (
14
+ 33CC111E2044C6BF0003C045 /* ShellScript */,
15
+ );
16
+ dependencies = (
17
+ );
18
+ name = "Flutter Assemble";
19
+ productName = FLX;
20
+ };
21
+ /* End PBXAggregateTarget section */
22
+
23
+ /* Begin PBXBuildFile section */
24
+ 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };
25
+ 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
26
+ 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
27
+ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
28
+ 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
29
+ 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
30
+ /* End PBXBuildFile section */
31
+
32
+ /* Begin PBXContainerItemProxy section */
33
+ 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {
34
+ isa = PBXContainerItemProxy;
35
+ containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
36
+ proxyType = 1;
37
+ remoteGlobalIDString = 33CC10EC2044A3C60003C045;
38
+ remoteInfo = Runner;
39
+ };
40
+ 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
41
+ isa = PBXContainerItemProxy;
42
+ containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
43
+ proxyType = 1;
44
+ remoteGlobalIDString = 33CC111A2044C6BA0003C045;
45
+ remoteInfo = FLX;
46
+ };
47
+ /* End PBXContainerItemProxy section */
48
+
49
+ /* Begin PBXCopyFilesBuildPhase section */
50
+ 33CC110E2044A8840003C045 /* Bundle Framework */ = {
51
+ isa = PBXCopyFilesBuildPhase;
52
+ buildActionMask = 2147483647;
53
+ dstPath = "";
54
+ dstSubfolderSpec = 10;
55
+ files = (
56
+ );
57
+ name = "Bundle Framework";
58
+ runOnlyForDeploymentPostprocessing = 0;
59
+ };
60
+ /* End PBXCopyFilesBuildPhase section */
61
+
62
+ /* Begin PBXFileReference section */
63
+ 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
64
+ 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
65
+ 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
66
+ 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
67
+ 33CC10ED2044A3C60003C045 /* only_bible_app.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "only_bible_app.app"; sourceTree = BUILT_PRODUCTS_DIR; };
68
+ 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
69
+ 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
70
+ 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
71
+ 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = "<group>"; };
72
+ 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = "<group>"; };
73
+ 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
74
+ 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
75
+ 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
76
+ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
77
+ 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
78
+ 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
79
+ 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
80
+ 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
81
+ /* End PBXFileReference section */
82
+
83
+ /* Begin PBXFrameworksBuildPhase section */
84
+ 331C80D2294CF70F00263BE5 /* Frameworks */ = {
85
+ isa = PBXFrameworksBuildPhase;
86
+ buildActionMask = 2147483647;
87
+ files = (
88
+ );
89
+ runOnlyForDeploymentPostprocessing = 0;
90
+ };
91
+ 33CC10EA2044A3C60003C045 /* Frameworks */ = {
92
+ isa = PBXFrameworksBuildPhase;
93
+ buildActionMask = 2147483647;
94
+ files = (
95
+ );
96
+ runOnlyForDeploymentPostprocessing = 0;
97
+ };
98
+ /* End PBXFrameworksBuildPhase section */
99
+
100
+ /* Begin PBXGroup section */
101
+ 331C80D6294CF71000263BE5 /* RunnerTests */ = {
102
+ isa = PBXGroup;
103
+ children = (
104
+ 331C80D7294CF71000263BE5 /* RunnerTests.swift */,
105
+ );
106
+ path = RunnerTests;
107
+ sourceTree = "<group>";
108
+ };
109
+ 33BA886A226E78AF003329D5 /* Configs */ = {
110
+ isa = PBXGroup;
111
+ children = (
112
+ 33E5194F232828860026EE4D /* AppInfo.xcconfig */,
113
+ 9740EEB21CF90195004384FC /* Debug.xcconfig */,
114
+ 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
115
+ 333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
116
+ );
117
+ path = Configs;
118
+ sourceTree = "<group>";
119
+ };
120
+ 33CC10E42044A3C60003C045 = {
121
+ isa = PBXGroup;
122
+ children = (
123
+ 33FAB671232836740065AC1E /* Runner */,
124
+ 33CEB47122A05771004F2AC0 /* Flutter */,
125
+ 331C80D6294CF71000263BE5 /* RunnerTests */,
126
+ 33CC10EE2044A3C60003C045 /* Products */,
127
+ D73912EC22F37F3D000D13A0 /* Frameworks */,
128
+ );
129
+ sourceTree = "<group>";
130
+ };
131
+ 33CC10EE2044A3C60003C045 /* Products */ = {
132
+ isa = PBXGroup;
133
+ children = (
134
+ 33CC10ED2044A3C60003C045 /* only_bible_app.app */,
135
+ 331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
136
+ );
137
+ name = Products;
138
+ sourceTree = "<group>";
139
+ };
140
+ 33CC11242044D66E0003C045 /* Resources */ = {
141
+ isa = PBXGroup;
142
+ children = (
143
+ 33CC10F22044A3C60003C045 /* Assets.xcassets */,
144
+ 33CC10F42044A3C60003C045 /* MainMenu.xib */,
145
+ 33CC10F72044A3C60003C045 /* Info.plist */,
146
+ );
147
+ name = Resources;
148
+ path = ..;
149
+ sourceTree = "<group>";
150
+ };
151
+ 33CEB47122A05771004F2AC0 /* Flutter */ = {
152
+ isa = PBXGroup;
153
+ children = (
154
+ 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
155
+ 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
156
+ 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
157
+ 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
158
+ );
159
+ path = Flutter;
160
+ sourceTree = "<group>";
161
+ };
162
+ 33FAB671232836740065AC1E /* Runner */ = {
163
+ isa = PBXGroup;
164
+ children = (
165
+ 33CC10F02044A3C60003C045 /* AppDelegate.swift */,
166
+ 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
167
+ 33E51913231747F40026EE4D /* DebugProfile.entitlements */,
168
+ 33E51914231749380026EE4D /* Release.entitlements */,
169
+ 33CC11242044D66E0003C045 /* Resources */,
170
+ 33BA886A226E78AF003329D5 /* Configs */,
171
+ );
172
+ path = Runner;
173
+ sourceTree = "<group>";
174
+ };
175
+ D73912EC22F37F3D000D13A0 /* Frameworks */ = {
176
+ isa = PBXGroup;
177
+ children = (
178
+ );
179
+ name = Frameworks;
180
+ sourceTree = "<group>";
181
+ };
182
+ /* End PBXGroup section */
183
+
184
+ /* Begin PBXNativeTarget section */
185
+ 331C80D4294CF70F00263BE5 /* RunnerTests */ = {
186
+ isa = PBXNativeTarget;
187
+ buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
188
+ buildPhases = (
189
+ 331C80D1294CF70F00263BE5 /* Sources */,
190
+ 331C80D2294CF70F00263BE5 /* Frameworks */,
191
+ 331C80D3294CF70F00263BE5 /* Resources */,
192
+ );
193
+ buildRules = (
194
+ );
195
+ dependencies = (
196
+ 331C80DA294CF71000263BE5 /* PBXTargetDependency */,
197
+ );
198
+ name = RunnerTests;
199
+ productName = RunnerTests;
200
+ productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;
201
+ productType = "com.apple.product-type.bundle.unit-test";
202
+ };
203
+ 33CC10EC2044A3C60003C045 /* Runner */ = {
204
+ isa = PBXNativeTarget;
205
+ buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
206
+ buildPhases = (
207
+ 33CC10E92044A3C60003C045 /* Sources */,
208
+ 33CC10EA2044A3C60003C045 /* Frameworks */,
209
+ 33CC10EB2044A3C60003C045 /* Resources */,
210
+ 33CC110E2044A8840003C045 /* Bundle Framework */,
211
+ 3399D490228B24CF009A79C7 /* ShellScript */,
212
+ );
213
+ buildRules = (
214
+ );
215
+ dependencies = (
216
+ 33CC11202044C79F0003C045 /* PBXTargetDependency */,
217
+ );
218
+ name = Runner;
219
+ productName = Runner;
220
+ productReference = 33CC10ED2044A3C60003C045 /* only_bible_app.app */;
221
+ productType = "com.apple.product-type.application";
222
+ };
223
+ /* End PBXNativeTarget section */
224
+
225
+ /* Begin PBXProject section */
226
+ 33CC10E52044A3C60003C045 /* Project object */ = {
227
+ isa = PBXProject;
228
+ attributes = {
229
+ BuildIndependentTargetsInParallel = YES;
230
+ LastSwiftUpdateCheck = 0920;
231
+ LastUpgradeCheck = 1510;
232
+ ORGANIZATIONNAME = "";
233
+ TargetAttributes = {
234
+ 331C80D4294CF70F00263BE5 = {
235
+ CreatedOnToolsVersion = 14.0;
236
+ TestTargetID = 33CC10EC2044A3C60003C045;
237
+ };
238
+ 33CC10EC2044A3C60003C045 = {
239
+ CreatedOnToolsVersion = 9.2;
240
+ LastSwiftMigration = 1100;
241
+ ProvisioningStyle = Automatic;
242
+ SystemCapabilities = {
243
+ com.apple.Sandbox = {
244
+ enabled = 1;
245
+ };
246
+ };
247
+ };
248
+ 33CC111A2044C6BA0003C045 = {
249
+ CreatedOnToolsVersion = 9.2;
250
+ ProvisioningStyle = Manual;
251
+ };
252
+ };
253
+ };
254
+ buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
255
+ compatibilityVersion = "Xcode 9.3";
256
+ developmentRegion = en;
257
+ hasScannedForEncodings = 0;
258
+ knownRegions = (
259
+ en,
260
+ Base,
261
+ );
262
+ mainGroup = 33CC10E42044A3C60003C045;
263
+ productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
264
+ projectDirPath = "";
265
+ projectRoot = "";
266
+ targets = (
267
+ 33CC10EC2044A3C60003C045 /* Runner */,
268
+ 331C80D4294CF70F00263BE5 /* RunnerTests */,
269
+ 33CC111A2044C6BA0003C045 /* Flutter Assemble */,
270
+ );
271
+ };
272
+ /* End PBXProject section */
273
+
274
+ /* Begin PBXResourcesBuildPhase section */
275
+ 331C80D3294CF70F00263BE5 /* Resources */ = {
276
+ isa = PBXResourcesBuildPhase;
277
+ buildActionMask = 2147483647;
278
+ files = (
279
+ );
280
+ runOnlyForDeploymentPostprocessing = 0;
281
+ };
282
+ 33CC10EB2044A3C60003C045 /* Resources */ = {
283
+ isa = PBXResourcesBuildPhase;
284
+ buildActionMask = 2147483647;
285
+ files = (
286
+ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
287
+ 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
288
+ );
289
+ runOnlyForDeploymentPostprocessing = 0;
290
+ };
291
+ /* End PBXResourcesBuildPhase section */
292
+
293
+ /* Begin PBXShellScriptBuildPhase section */
294
+ 3399D490228B24CF009A79C7 /* ShellScript */ = {
295
+ isa = PBXShellScriptBuildPhase;
296
+ alwaysOutOfDate = 1;
297
+ buildActionMask = 2147483647;
298
+ files = (
299
+ );
300
+ inputFileListPaths = (
301
+ );
302
+ inputPaths = (
303
+ );
304
+ outputFileListPaths = (
305
+ );
306
+ outputPaths = (
307
+ );
308
+ runOnlyForDeploymentPostprocessing = 0;
309
+ shellPath = /bin/sh;
310
+ shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
311
+ };
312
+ 33CC111E2044C6BF0003C045 /* ShellScript */ = {
313
+ isa = PBXShellScriptBuildPhase;
314
+ buildActionMask = 2147483647;
315
+ files = (
316
+ );
317
+ inputFileListPaths = (
318
+ Flutter/ephemeral/FlutterInputs.xcfilelist,
319
+ );
320
+ inputPaths = (
321
+ Flutter/ephemeral/tripwire,
322
+ );
323
+ outputFileListPaths = (
324
+ Flutter/ephemeral/FlutterOutputs.xcfilelist,
325
+ );
326
+ outputPaths = (
327
+ );
328
+ runOnlyForDeploymentPostprocessing = 0;
329
+ shellPath = /bin/sh;
330
+ shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
331
+ };
332
+ /* End PBXShellScriptBuildPhase section */
333
+
334
+ /* Begin PBXSourcesBuildPhase section */
335
+ 331C80D1294CF70F00263BE5 /* Sources */ = {
336
+ isa = PBXSourcesBuildPhase;
337
+ buildActionMask = 2147483647;
338
+ files = (
339
+ 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,
340
+ );
341
+ runOnlyForDeploymentPostprocessing = 0;
342
+ };
343
+ 33CC10E92044A3C60003C045 /* Sources */ = {
344
+ isa = PBXSourcesBuildPhase;
345
+ buildActionMask = 2147483647;
346
+ files = (
347
+ 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
348
+ 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
349
+ 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
350
+ );
351
+ runOnlyForDeploymentPostprocessing = 0;
352
+ };
353
+ /* End PBXSourcesBuildPhase section */
354
+
355
+ /* Begin PBXTargetDependency section */
356
+ 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {
357
+ isa = PBXTargetDependency;
358
+ target = 33CC10EC2044A3C60003C045 /* Runner */;
359
+ targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;
360
+ };
361
+ 33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
362
+ isa = PBXTargetDependency;
363
+ target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
364
+ targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
365
+ };
366
+ /* End PBXTargetDependency section */
367
+
368
+ /* Begin PBXVariantGroup section */
369
+ 33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
370
+ isa = PBXVariantGroup;
371
+ children = (
372
+ 33CC10F52044A3C60003C045 /* Base */,
373
+ );
374
+ name = MainMenu.xib;
375
+ path = Runner;
376
+ sourceTree = "<group>";
377
+ };
378
+ /* End PBXVariantGroup section */
379
+
380
+ /* Begin XCBuildConfiguration section */
381
+ 331C80DB294CF71000263BE5 /* Debug */ = {
382
+ isa = XCBuildConfiguration;
383
+ buildSettings = {
384
+ BUNDLE_LOADER = "$(TEST_HOST)";
385
+ CURRENT_PROJECT_VERSION = 1;
386
+ GENERATE_INFOPLIST_FILE = YES;
387
+ MARKETING_VERSION = 1.0;
388
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp.RunnerTests;
389
+ PRODUCT_NAME = "$(TARGET_NAME)";
390
+ SWIFT_VERSION = 5.0;
391
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/only_bible_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/only_bible_app";
392
+ };
393
+ name = Debug;
394
+ };
395
+ 331C80DC294CF71000263BE5 /* Release */ = {
396
+ isa = XCBuildConfiguration;
397
+ buildSettings = {
398
+ BUNDLE_LOADER = "$(TEST_HOST)";
399
+ CURRENT_PROJECT_VERSION = 1;
400
+ GENERATE_INFOPLIST_FILE = YES;
401
+ MARKETING_VERSION = 1.0;
402
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp.RunnerTests;
403
+ PRODUCT_NAME = "$(TARGET_NAME)";
404
+ SWIFT_VERSION = 5.0;
405
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/only_bible_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/only_bible_app";
406
+ };
407
+ name = Release;
408
+ };
409
+ 331C80DD294CF71000263BE5 /* Profile */ = {
410
+ isa = XCBuildConfiguration;
411
+ buildSettings = {
412
+ BUNDLE_LOADER = "$(TEST_HOST)";
413
+ CURRENT_PROJECT_VERSION = 1;
414
+ GENERATE_INFOPLIST_FILE = YES;
415
+ MARKETING_VERSION = 1.0;
416
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp.RunnerTests;
417
+ PRODUCT_NAME = "$(TARGET_NAME)";
418
+ SWIFT_VERSION = 5.0;
419
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/only_bible_app.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/only_bible_app";
420
+ };
421
+ name = Profile;
422
+ };
423
+ 338D0CE9231458BD00FA5F75 /* Profile */ = {
424
+ isa = XCBuildConfiguration;
425
+ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
426
+ buildSettings = {
427
+ ALWAYS_SEARCH_USER_PATHS = NO;
428
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
429
+ CLANG_ANALYZER_NONNULL = YES;
430
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
431
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
432
+ CLANG_CXX_LIBRARY = "libc++";
433
+ CLANG_ENABLE_MODULES = YES;
434
+ CLANG_ENABLE_OBJC_ARC = YES;
435
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
436
+ CLANG_WARN_BOOL_CONVERSION = YES;
437
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
438
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
439
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
440
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
441
+ CLANG_WARN_EMPTY_BODY = YES;
442
+ CLANG_WARN_ENUM_CONVERSION = YES;
443
+ CLANG_WARN_INFINITE_RECURSION = YES;
444
+ CLANG_WARN_INT_CONVERSION = YES;
445
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
446
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
447
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
448
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
449
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
450
+ CODE_SIGN_IDENTITY = "-";
451
+ COPY_PHASE_STRIP = NO;
452
+ DEAD_CODE_STRIPPING = YES;
453
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
454
+ ENABLE_NS_ASSERTIONS = NO;
455
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
456
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
457
+ GCC_C_LANGUAGE_STANDARD = gnu11;
458
+ GCC_NO_COMMON_BLOCKS = YES;
459
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
460
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
461
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
462
+ GCC_WARN_UNUSED_FUNCTION = YES;
463
+ GCC_WARN_UNUSED_VARIABLE = YES;
464
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
465
+ MTL_ENABLE_DEBUG_INFO = NO;
466
+ SDKROOT = macosx;
467
+ SWIFT_COMPILATION_MODE = wholemodule;
468
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
469
+ };
470
+ name = Profile;
471
+ };
472
+ 338D0CEA231458BD00FA5F75 /* Profile */ = {
473
+ isa = XCBuildConfiguration;
474
+ baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
475
+ buildSettings = {
476
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
477
+ CLANG_ENABLE_MODULES = YES;
478
+ CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
479
+ CODE_SIGN_STYLE = Automatic;
480
+ COMBINE_HIDPI_IMAGES = YES;
481
+ INFOPLIST_FILE = Runner/Info.plist;
482
+ LD_RUNPATH_SEARCH_PATHS = (
483
+ "$(inherited)",
484
+ "@executable_path/../Frameworks",
485
+ );
486
+ PROVISIONING_PROFILE_SPECIFIER = "";
487
+ SWIFT_VERSION = 5.0;
488
+ };
489
+ name = Profile;
490
+ };
491
+ 338D0CEB231458BD00FA5F75 /* Profile */ = {
492
+ isa = XCBuildConfiguration;
493
+ buildSettings = {
494
+ CODE_SIGN_STYLE = Manual;
495
+ PRODUCT_NAME = "$(TARGET_NAME)";
496
+ };
497
+ name = Profile;
498
+ };
499
+ 33CC10F92044A3C60003C045 /* Debug */ = {
500
+ isa = XCBuildConfiguration;
501
+ baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
502
+ buildSettings = {
503
+ ALWAYS_SEARCH_USER_PATHS = NO;
504
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
505
+ CLANG_ANALYZER_NONNULL = YES;
506
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
507
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
508
+ CLANG_CXX_LIBRARY = "libc++";
509
+ CLANG_ENABLE_MODULES = YES;
510
+ CLANG_ENABLE_OBJC_ARC = YES;
511
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
512
+ CLANG_WARN_BOOL_CONVERSION = YES;
513
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
514
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
515
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
516
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
517
+ CLANG_WARN_EMPTY_BODY = YES;
518
+ CLANG_WARN_ENUM_CONVERSION = YES;
519
+ CLANG_WARN_INFINITE_RECURSION = YES;
520
+ CLANG_WARN_INT_CONVERSION = YES;
521
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
522
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
523
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
524
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
525
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
526
+ CODE_SIGN_IDENTITY = "-";
527
+ COPY_PHASE_STRIP = NO;
528
+ DEAD_CODE_STRIPPING = YES;
529
+ DEBUG_INFORMATION_FORMAT = dwarf;
530
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
531
+ ENABLE_TESTABILITY = YES;
532
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
533
+ GCC_C_LANGUAGE_STANDARD = gnu11;
534
+ GCC_DYNAMIC_NO_PIC = NO;
535
+ GCC_NO_COMMON_BLOCKS = YES;
536
+ GCC_OPTIMIZATION_LEVEL = 0;
537
+ GCC_PREPROCESSOR_DEFINITIONS = (
538
+ "DEBUG=1",
539
+ "$(inherited)",
540
+ );
541
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
542
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
543
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
544
+ GCC_WARN_UNUSED_FUNCTION = YES;
545
+ GCC_WARN_UNUSED_VARIABLE = YES;
546
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
547
+ MTL_ENABLE_DEBUG_INFO = YES;
548
+ ONLY_ACTIVE_ARCH = YES;
549
+ SDKROOT = macosx;
550
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
551
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
552
+ };
553
+ name = Debug;
554
+ };
555
+ 33CC10FA2044A3C60003C045 /* Release */ = {
556
+ isa = XCBuildConfiguration;
557
+ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
558
+ buildSettings = {
559
+ ALWAYS_SEARCH_USER_PATHS = NO;
560
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
561
+ CLANG_ANALYZER_NONNULL = YES;
562
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
563
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
564
+ CLANG_CXX_LIBRARY = "libc++";
565
+ CLANG_ENABLE_MODULES = YES;
566
+ CLANG_ENABLE_OBJC_ARC = YES;
567
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
568
+ CLANG_WARN_BOOL_CONVERSION = YES;
569
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
570
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
571
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
572
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
573
+ CLANG_WARN_EMPTY_BODY = YES;
574
+ CLANG_WARN_ENUM_CONVERSION = YES;
575
+ CLANG_WARN_INFINITE_RECURSION = YES;
576
+ CLANG_WARN_INT_CONVERSION = YES;
577
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
578
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
579
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
580
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
581
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
582
+ CODE_SIGN_IDENTITY = "-";
583
+ COPY_PHASE_STRIP = NO;
584
+ DEAD_CODE_STRIPPING = YES;
585
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
586
+ ENABLE_NS_ASSERTIONS = NO;
587
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
588
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
589
+ GCC_C_LANGUAGE_STANDARD = gnu11;
590
+ GCC_NO_COMMON_BLOCKS = YES;
591
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
592
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
593
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
594
+ GCC_WARN_UNUSED_FUNCTION = YES;
595
+ GCC_WARN_UNUSED_VARIABLE = YES;
596
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
597
+ MTL_ENABLE_DEBUG_INFO = NO;
598
+ SDKROOT = macosx;
599
+ SWIFT_COMPILATION_MODE = wholemodule;
600
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
601
+ };
602
+ name = Release;
603
+ };
604
+ 33CC10FC2044A3C60003C045 /* Debug */ = {
605
+ isa = XCBuildConfiguration;
606
+ baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
607
+ buildSettings = {
608
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
609
+ CLANG_ENABLE_MODULES = YES;
610
+ CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
611
+ CODE_SIGN_STYLE = Automatic;
612
+ COMBINE_HIDPI_IMAGES = YES;
613
+ INFOPLIST_FILE = Runner/Info.plist;
614
+ LD_RUNPATH_SEARCH_PATHS = (
615
+ "$(inherited)",
616
+ "@executable_path/../Frameworks",
617
+ );
618
+ PROVISIONING_PROFILE_SPECIFIER = "";
619
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
620
+ SWIFT_VERSION = 5.0;
621
+ };
622
+ name = Debug;
623
+ };
624
+ 33CC10FD2044A3C60003C045 /* Release */ = {
625
+ isa = XCBuildConfiguration;
626
+ baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
627
+ buildSettings = {
628
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
629
+ CLANG_ENABLE_MODULES = YES;
630
+ CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
631
+ CODE_SIGN_STYLE = Automatic;
632
+ COMBINE_HIDPI_IMAGES = YES;
633
+ INFOPLIST_FILE = Runner/Info.plist;
634
+ LD_RUNPATH_SEARCH_PATHS = (
635
+ "$(inherited)",
636
+ "@executable_path/../Frameworks",
637
+ );
638
+ PROVISIONING_PROFILE_SPECIFIER = "";
639
+ SWIFT_VERSION = 5.0;
640
+ };
641
+ name = Release;
642
+ };
643
+ 33CC111C2044C6BA0003C045 /* Debug */ = {
644
+ isa = XCBuildConfiguration;
645
+ buildSettings = {
646
+ CODE_SIGN_STYLE = Manual;
647
+ PRODUCT_NAME = "$(TARGET_NAME)";
648
+ };
649
+ name = Debug;
650
+ };
651
+ 33CC111D2044C6BA0003C045 /* Release */ = {
652
+ isa = XCBuildConfiguration;
653
+ buildSettings = {
654
+ CODE_SIGN_STYLE = Automatic;
655
+ PRODUCT_NAME = "$(TARGET_NAME)";
656
+ };
657
+ name = Release;
658
+ };
659
+ /* End XCBuildConfiguration section */
660
+
661
+ /* Begin XCConfigurationList section */
662
+ 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
663
+ isa = XCConfigurationList;
664
+ buildConfigurations = (
665
+ 331C80DB294CF71000263BE5 /* Debug */,
666
+ 331C80DC294CF71000263BE5 /* Release */,
667
+ 331C80DD294CF71000263BE5 /* Profile */,
668
+ );
669
+ defaultConfigurationIsVisible = 0;
670
+ defaultConfigurationName = Release;
671
+ };
672
+ 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
673
+ isa = XCConfigurationList;
674
+ buildConfigurations = (
675
+ 33CC10F92044A3C60003C045 /* Debug */,
676
+ 33CC10FA2044A3C60003C045 /* Release */,
677
+ 338D0CE9231458BD00FA5F75 /* Profile */,
678
+ );
679
+ defaultConfigurationIsVisible = 0;
680
+ defaultConfigurationName = Release;
681
+ };
682
+ 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
683
+ isa = XCConfigurationList;
684
+ buildConfigurations = (
685
+ 33CC10FC2044A3C60003C045 /* Debug */,
686
+ 33CC10FD2044A3C60003C045 /* Release */,
687
+ 338D0CEA231458BD00FA5F75 /* Profile */,
688
+ );
689
+ defaultConfigurationIsVisible = 0;
690
+ defaultConfigurationName = Release;
691
+ };
692
+ 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
693
+ isa = XCConfigurationList;
694
+ buildConfigurations = (
695
+ 33CC111C2044C6BA0003C045 /* Debug */,
696
+ 33CC111D2044C6BA0003C045 /* Release */,
697
+ 338D0CEB231458BD00FA5F75 /* Profile */,
698
+ );
699
+ defaultConfigurationIsVisible = 0;
700
+ defaultConfigurationName = Release;
701
+ };
702
+ /* End XCConfigurationList section */
703
+ };
704
+ rootObject = 33CC10E52044A3C60003C045 /* Project object */;
705
+ }
macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist ADDED
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>IDEDidComputeMac32BitWarning</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme ADDED
@@ -0,0 +1,99 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Scheme
3
+ LastUpgradeVersion = "1510"
4
+ version = "1.3">
5
+ <BuildAction
6
+ parallelizeBuildables = "YES"
7
+ buildImplicitDependencies = "YES">
8
+ <BuildActionEntries>
9
+ <BuildActionEntry
10
+ buildForTesting = "YES"
11
+ buildForRunning = "YES"
12
+ buildForProfiling = "YES"
13
+ buildForArchiving = "YES"
14
+ buildForAnalyzing = "YES">
15
+ <BuildableReference
16
+ BuildableIdentifier = "primary"
17
+ BlueprintIdentifier = "33CC10EC2044A3C60003C045"
18
+ BuildableName = "only_bible_app.app"
19
+ BlueprintName = "Runner"
20
+ ReferencedContainer = "container:Runner.xcodeproj">
21
+ </BuildableReference>
22
+ </BuildActionEntry>
23
+ </BuildActionEntries>
24
+ </BuildAction>
25
+ <TestAction
26
+ buildConfiguration = "Debug"
27
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
+ shouldUseLaunchSchemeArgsEnv = "YES">
30
+ <MacroExpansion>
31
+ <BuildableReference
32
+ BuildableIdentifier = "primary"
33
+ BlueprintIdentifier = "33CC10EC2044A3C60003C045"
34
+ BuildableName = "only_bible_app.app"
35
+ BlueprintName = "Runner"
36
+ ReferencedContainer = "container:Runner.xcodeproj">
37
+ </BuildableReference>
38
+ </MacroExpansion>
39
+ <Testables>
40
+ <TestableReference
41
+ skipped = "NO"
42
+ parallelizable = "YES">
43
+ <BuildableReference
44
+ BuildableIdentifier = "primary"
45
+ BlueprintIdentifier = "331C80D4294CF70F00263BE5"
46
+ BuildableName = "RunnerTests.xctest"
47
+ BlueprintName = "RunnerTests"
48
+ ReferencedContainer = "container:Runner.xcodeproj">
49
+ </BuildableReference>
50
+ </TestableReference>
51
+ </Testables>
52
+ </TestAction>
53
+ <LaunchAction
54
+ buildConfiguration = "Debug"
55
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
56
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
57
+ launchStyle = "0"
58
+ useCustomWorkingDirectory = "NO"
59
+ ignoresPersistentStateOnLaunch = "NO"
60
+ debugDocumentVersioning = "YES"
61
+ debugServiceExtension = "internal"
62
+ enableGPUValidationMode = "1"
63
+ allowLocationSimulation = "YES">
64
+ <BuildableProductRunnable
65
+ runnableDebuggingMode = "0">
66
+ <BuildableReference
67
+ BuildableIdentifier = "primary"
68
+ BlueprintIdentifier = "33CC10EC2044A3C60003C045"
69
+ BuildableName = "only_bible_app.app"
70
+ BlueprintName = "Runner"
71
+ ReferencedContainer = "container:Runner.xcodeproj">
72
+ </BuildableReference>
73
+ </BuildableProductRunnable>
74
+ </LaunchAction>
75
+ <ProfileAction
76
+ buildConfiguration = "Profile"
77
+ shouldUseLaunchSchemeArgsEnv = "YES"
78
+ savedToolIdentifier = ""
79
+ useCustomWorkingDirectory = "NO"
80
+ debugDocumentVersioning = "YES">
81
+ <BuildableProductRunnable
82
+ runnableDebuggingMode = "0">
83
+ <BuildableReference
84
+ BuildableIdentifier = "primary"
85
+ BlueprintIdentifier = "33CC10EC2044A3C60003C045"
86
+ BuildableName = "only_bible_app.app"
87
+ BlueprintName = "Runner"
88
+ ReferencedContainer = "container:Runner.xcodeproj">
89
+ </BuildableReference>
90
+ </BuildableProductRunnable>
91
+ </ProfileAction>
92
+ <AnalyzeAction
93
+ buildConfiguration = "Debug">
94
+ </AnalyzeAction>
95
+ <ArchiveAction
96
+ buildConfiguration = "Release"
97
+ revealArchiveInOrganizer = "YES">
98
+ </ArchiveAction>
99
+ </Scheme>
macos/Runner.xcworkspace/contents.xcworkspacedata ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ <FileRef
5
+ location = "group:Runner.xcodeproj">
6
+ </FileRef>
7
+ </Workspace>
macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist ADDED
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>IDEDidComputeMac32BitWarning</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
macos/Runner/AppDelegate.swift ADDED
@@ -0,0 +1,13 @@
1
+ import Cocoa
2
+ import FlutterMacOS
3
+
4
+ @main
5
+ class AppDelegate: FlutterAppDelegate {
6
+ override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
7
+ return true
8
+ }
9
+
10
+ override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool {
11
+ return true
12
+ }
13
+ }
macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "images" : [
3
+ {
4
+ "size" : "16x16",
5
+ "idiom" : "mac",
6
+ "filename" : "app_icon_16.png",
7
+ "scale" : "1x"
8
+ },
9
+ {
10
+ "size" : "16x16",
11
+ "idiom" : "mac",
12
+ "filename" : "app_icon_32.png",
13
+ "scale" : "2x"
14
+ },
15
+ {
16
+ "size" : "32x32",
17
+ "idiom" : "mac",
18
+ "filename" : "app_icon_32.png",
19
+ "scale" : "1x"
20
+ },
21
+ {
22
+ "size" : "32x32",
23
+ "idiom" : "mac",
24
+ "filename" : "app_icon_64.png",
25
+ "scale" : "2x"
26
+ },
27
+ {
28
+ "size" : "128x128",
29
+ "idiom" : "mac",
30
+ "filename" : "app_icon_128.png",
31
+ "scale" : "1x"
32
+ },
33
+ {
34
+ "size" : "128x128",
35
+ "idiom" : "mac",
36
+ "filename" : "app_icon_256.png",
37
+ "scale" : "2x"
38
+ },
39
+ {
40
+ "size" : "256x256",
41
+ "idiom" : "mac",
42
+ "filename" : "app_icon_256.png",
43
+ "scale" : "1x"
44
+ },
45
+ {
46
+ "size" : "256x256",
47
+ "idiom" : "mac",
48
+ "filename" : "app_icon_512.png",
49
+ "scale" : "2x"
50
+ },
51
+ {
52
+ "size" : "512x512",
53
+ "idiom" : "mac",
54
+ "filename" : "app_icon_512.png",
55
+ "scale" : "1x"
56
+ },
57
+ {
58
+ "size" : "512x512",
59
+ "idiom" : "mac",
60
+ "filename" : "app_icon_1024.png",
61
+ "scale" : "2x"
62
+ }
63
+ ],
64
+ "info" : {
65
+ "version" : 1,
66
+ "author" : "xcode"
67
+ }
68
+ }
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png ADDED
Binary file
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png ADDED
Binary file
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png ADDED
Binary file
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png ADDED
Binary file
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png ADDED
Binary file
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png ADDED
Binary file
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png ADDED
Binary file
macos/Runner/Base.lproj/MainMenu.xib ADDED
@@ -0,0 +1,343 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
3
+ <dependencies>
4
+ <deployment identifier="macosx"/>
5
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
6
+ <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
7
+ </dependencies>
8
+ <objects>
9
+ <customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
10
+ <connections>
11
+ <outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
12
+ </connections>
13
+ </customObject>
14
+ <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
15
+ <customObject id="-3" userLabel="Application" customClass="NSObject"/>
16
+ <customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="Runner" customModuleProvider="target">
17
+ <connections>
18
+ <outlet property="applicationMenu" destination="uQy-DD-JDr" id="XBo-yE-nKs"/>
19
+ <outlet property="mainFlutterWindow" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
20
+ </connections>
21
+ </customObject>
22
+ <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
23
+ <menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
24
+ <items>
25
+ <menuItem title="APP_NAME" id="1Xt-HY-uBw">
26
+ <modifierMask key="keyEquivalentModifierMask"/>
27
+ <menu key="submenu" title="APP_NAME" systemMenu="apple" id="uQy-DD-JDr">
28
+ <items>
29
+ <menuItem title="About APP_NAME" id="5kV-Vb-QxS">
30
+ <modifierMask key="keyEquivalentModifierMask"/>
31
+ <connections>
32
+ <action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
33
+ </connections>
34
+ </menuItem>
35
+ <menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
36
+ <menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
37
+ <menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
38
+ <menuItem title="Services" id="NMo-om-nkz">
39
+ <modifierMask key="keyEquivalentModifierMask"/>
40
+ <menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
41
+ </menuItem>
42
+ <menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
43
+ <menuItem title="Hide APP_NAME" keyEquivalent="h" id="Olw-nP-bQN">
44
+ <connections>
45
+ <action selector="hide:" target="-1" id="PnN-Uc-m68"/>
46
+ </connections>
47
+ </menuItem>
48
+ <menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
49
+ <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
50
+ <connections>
51
+ <action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
52
+ </connections>
53
+ </menuItem>
54
+ <menuItem title="Show All" id="Kd2-mp-pUS">
55
+ <modifierMask key="keyEquivalentModifierMask"/>
56
+ <connections>
57
+ <action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
58
+ </connections>
59
+ </menuItem>
60
+ <menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
61
+ <menuItem title="Quit APP_NAME" keyEquivalent="q" id="4sb-4s-VLi">
62
+ <connections>
63
+ <action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
64
+ </connections>
65
+ </menuItem>
66
+ </items>
67
+ </menu>
68
+ </menuItem>
69
+ <menuItem title="Edit" id="5QF-Oa-p0T">
70
+ <modifierMask key="keyEquivalentModifierMask"/>
71
+ <menu key="submenu" title="Edit" id="W48-6f-4Dl">
72
+ <items>
73
+ <menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg">
74
+ <connections>
75
+ <action selector="undo:" target="-1" id="M6e-cu-g7V"/>
76
+ </connections>
77
+ </menuItem>
78
+ <menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam">
79
+ <connections>
80
+ <action selector="redo:" target="-1" id="oIA-Rs-6OD"/>
81
+ </connections>
82
+ </menuItem>
83
+ <menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/>
84
+ <menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG">
85
+ <connections>
86
+ <action selector="cut:" target="-1" id="YJe-68-I9s"/>
87
+ </connections>
88
+ </menuItem>
89
+ <menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU">
90
+ <connections>
91
+ <action selector="copy:" target="-1" id="G1f-GL-Joy"/>
92
+ </connections>
93
+ </menuItem>
94
+ <menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL">
95
+ <connections>
96
+ <action selector="paste:" target="-1" id="UvS-8e-Qdg"/>
97
+ </connections>
98
+ </menuItem>
99
+ <menuItem title="Paste and Match Style" keyEquivalent="V" id="WeT-3V-zwk">
100
+ <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
101
+ <connections>
102
+ <action selector="pasteAsPlainText:" target="-1" id="cEh-KX-wJQ"/>
103
+ </connections>
104
+ </menuItem>
105
+ <menuItem title="Delete" id="pa3-QI-u2k">
106
+ <modifierMask key="keyEquivalentModifierMask"/>
107
+ <connections>
108
+ <action selector="delete:" target="-1" id="0Mk-Ml-PaM"/>
109
+ </connections>
110
+ </menuItem>
111
+ <menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
112
+ <connections>
113
+ <action selector="selectAll:" target="-1" id="VNm-Mi-diN"/>
114
+ </connections>
115
+ </menuItem>
116
+ <menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/>
117
+ <menuItem title="Find" id="4EN-yA-p0u">
118
+ <modifierMask key="keyEquivalentModifierMask"/>
119
+ <menu key="submenu" title="Find" id="1b7-l0-nxx">
120
+ <items>
121
+ <menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W">
122
+ <connections>
123
+ <action selector="performFindPanelAction:" target="-1" id="cD7-Qs-BN4"/>
124
+ </connections>
125
+ </menuItem>
126
+ <menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz">
127
+ <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
128
+ <connections>
129
+ <action selector="performFindPanelAction:" target="-1" id="WD3-Gg-5AJ"/>
130
+ </connections>
131
+ </menuItem>
132
+ <menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye">
133
+ <connections>
134
+ <action selector="performFindPanelAction:" target="-1" id="NDo-RZ-v9R"/>
135
+ </connections>
136
+ </menuItem>
137
+ <menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV">
138
+ <connections>
139
+ <action selector="performFindPanelAction:" target="-1" id="HOh-sY-3ay"/>
140
+ </connections>
141
+ </menuItem>
142
+ <menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt">
143
+ <connections>
144
+ <action selector="performFindPanelAction:" target="-1" id="U76-nv-p5D"/>
145
+ </connections>
146
+ </menuItem>
147
+ <menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd">
148
+ <connections>
149
+ <action selector="centerSelectionInVisibleArea:" target="-1" id="IOG-6D-g5B"/>
150
+ </connections>
151
+ </menuItem>
152
+ </items>
153
+ </menu>
154
+ </menuItem>
155
+ <menuItem title="Spelling and Grammar" id="Dv1-io-Yv7">
156
+ <modifierMask key="keyEquivalentModifierMask"/>
157
+ <menu key="submenu" title="Spelling" id="3IN-sU-3Bg">
158
+ <items>
159
+ <menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="HFo-cy-zxI">
160
+ <connections>
161
+ <action selector="showGuessPanel:" target="-1" id="vFj-Ks-hy3"/>
162
+ </connections>
163
+ </menuItem>
164
+ <menuItem title="Check Document Now" keyEquivalent=";" id="hz2-CU-CR7">
165
+ <connections>
166
+ <action selector="checkSpelling:" target="-1" id="fz7-VC-reM"/>
167
+ </connections>
168
+ </menuItem>
169
+ <menuItem isSeparatorItem="YES" id="bNw-od-mp5"/>
170
+ <menuItem title="Check Spelling While Typing" id="rbD-Rh-wIN">
171
+ <modifierMask key="keyEquivalentModifierMask"/>
172
+ <connections>
173
+ <action selector="toggleContinuousSpellChecking:" target="-1" id="7w6-Qz-0kB"/>
174
+ </connections>
175
+ </menuItem>
176
+ <menuItem title="Check Grammar With Spelling" id="mK6-2p-4JG">
177
+ <modifierMask key="keyEquivalentModifierMask"/>
178
+ <connections>
179
+ <action selector="toggleGrammarChecking:" target="-1" id="muD-Qn-j4w"/>
180
+ </connections>
181
+ </menuItem>
182
+ <menuItem title="Correct Spelling Automatically" id="78Y-hA-62v">
183
+ <modifierMask key="keyEquivalentModifierMask"/>
184
+ <connections>
185
+ <action selector="toggleAutomaticSpellingCorrection:" target="-1" id="2lM-Qi-WAP"/>
186
+ </connections>
187
+ </menuItem>
188
+ </items>
189
+ </menu>
190
+ </menuItem>
191
+ <menuItem title="Substitutions" id="9ic-FL-obx">
192
+ <modifierMask key="keyEquivalentModifierMask"/>
193
+ <menu key="submenu" title="Substitutions" id="FeM-D8-WVr">
194
+ <items>
195
+ <menuItem title="Show Substitutions" id="z6F-FW-3nz">
196
+ <modifierMask key="keyEquivalentModifierMask"/>
197
+ <connections>
198
+ <action selector="orderFrontSubstitutionsPanel:" target="-1" id="oku-mr-iSq"/>
199
+ </connections>
200
+ </menuItem>
201
+ <menuItem isSeparatorItem="YES" id="gPx-C9-uUO"/>
202
+ <menuItem title="Smart Copy/Paste" id="9yt-4B-nSM">
203
+ <modifierMask key="keyEquivalentModifierMask"/>
204
+ <connections>
205
+ <action selector="toggleSmartInsertDelete:" target="-1" id="3IJ-Se-DZD"/>
206
+ </connections>
207
+ </menuItem>
208
+ <menuItem title="Smart Quotes" id="hQb-2v-fYv">
209
+ <modifierMask key="keyEquivalentModifierMask"/>
210
+ <connections>
211
+ <action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="ptq-xd-QOA"/>
212
+ </connections>
213
+ </menuItem>
214
+ <menuItem title="Smart Dashes" id="rgM-f4-ycn">
215
+ <modifierMask key="keyEquivalentModifierMask"/>
216
+ <connections>
217
+ <action selector="toggleAutomaticDashSubstitution:" target="-1" id="oCt-pO-9gS"/>
218
+ </connections>
219
+ </menuItem>
220
+ <menuItem title="Smart Links" id="cwL-P1-jid">
221
+ <modifierMask key="keyEquivalentModifierMask"/>
222
+ <connections>
223
+ <action selector="toggleAutomaticLinkDetection:" target="-1" id="Gip-E3-Fov"/>
224
+ </connections>
225
+ </menuItem>
226
+ <menuItem title="Data Detectors" id="tRr-pd-1PS">
227
+ <modifierMask key="keyEquivalentModifierMask"/>
228
+ <connections>
229
+ <action selector="toggleAutomaticDataDetection:" target="-1" id="R1I-Nq-Kbl"/>
230
+ </connections>
231
+ </menuItem>
232
+ <menuItem title="Text Replacement" id="HFQ-gK-NFA">
233
+ <modifierMask key="keyEquivalentModifierMask"/>
234
+ <connections>
235
+ <action selector="toggleAutomaticTextReplacement:" target="-1" id="DvP-Fe-Py6"/>
236
+ </connections>
237
+ </menuItem>
238
+ </items>
239
+ </menu>
240
+ </menuItem>
241
+ <menuItem title="Transformations" id="2oI-Rn-ZJC">
242
+ <modifierMask key="keyEquivalentModifierMask"/>
243
+ <menu key="submenu" title="Transformations" id="c8a-y6-VQd">
244
+ <items>
245
+ <menuItem title="Make Upper Case" id="vmV-6d-7jI">
246
+ <modifierMask key="keyEquivalentModifierMask"/>
247
+ <connections>
248
+ <action selector="uppercaseWord:" target="-1" id="sPh-Tk-edu"/>
249
+ </connections>
250
+ </menuItem>
251
+ <menuItem title="Make Lower Case" id="d9M-CD-aMd">
252
+ <modifierMask key="keyEquivalentModifierMask"/>
253
+ <connections>
254
+ <action selector="lowercaseWord:" target="-1" id="iUZ-b5-hil"/>
255
+ </connections>
256
+ </menuItem>
257
+ <menuItem title="Capitalize" id="UEZ-Bs-lqG">
258
+ <modifierMask key="keyEquivalentModifierMask"/>
259
+ <connections>
260
+ <action selector="capitalizeWord:" target="-1" id="26H-TL-nsh"/>
261
+ </connections>
262
+ </menuItem>
263
+ </items>
264
+ </menu>
265
+ </menuItem>
266
+ <menuItem title="Speech" id="xrE-MZ-jX0">
267
+ <modifierMask key="keyEquivalentModifierMask"/>
268
+ <menu key="submenu" title="Speech" id="3rS-ZA-NoH">
269
+ <items>
270
+ <menuItem title="Start Speaking" id="Ynk-f8-cLZ">
271
+ <modifierMask key="keyEquivalentModifierMask"/>
272
+ <connections>
273
+ <action selector="startSpeaking:" target="-1" id="654-Ng-kyl"/>
274
+ </connections>
275
+ </menuItem>
276
+ <menuItem title="Stop Speaking" id="Oyz-dy-DGm">
277
+ <modifierMask key="keyEquivalentModifierMask"/>
278
+ <connections>
279
+ <action selector="stopSpeaking:" target="-1" id="dX8-6p-jy9"/>
280
+ </connections>
281
+ </menuItem>
282
+ </items>
283
+ </menu>
284
+ </menuItem>
285
+ </items>
286
+ </menu>
287
+ </menuItem>
288
+ <menuItem title="View" id="H8h-7b-M4v">
289
+ <modifierMask key="keyEquivalentModifierMask"/>
290
+ <menu key="submenu" title="View" id="HyV-fh-RgO">
291
+ <items>
292
+ <menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa">
293
+ <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
294
+ <connections>
295
+ <action selector="toggleFullScreen:" target="-1" id="dU3-MA-1Rq"/>
296
+ </connections>
297
+ </menuItem>
298
+ </items>
299
+ </menu>
300
+ </menuItem>
301
+ <menuItem title="Window" id="aUF-d1-5bR">
302
+ <modifierMask key="keyEquivalentModifierMask"/>
303
+ <menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
304
+ <items>
305
+ <menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
306
+ <connections>
307
+ <action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
308
+ </connections>
309
+ </menuItem>
310
+ <menuItem title="Zoom" id="R4o-n2-Eq4">
311
+ <modifierMask key="keyEquivalentModifierMask"/>
312
+ <connections>
313
+ <action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
314
+ </connections>
315
+ </menuItem>
316
+ <menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
317
+ <menuItem title="Bring All to Front" id="LE2-aR-0XJ">
318
+ <modifierMask key="keyEquivalentModifierMask"/>
319
+ <connections>
320
+ <action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
321
+ </connections>
322
+ </menuItem>
323
+ </items>
324
+ </menu>
325
+ </menuItem>
326
+ <menuItem title="Help" id="EPT-qC-fAb">
327
+ <modifierMask key="keyEquivalentModifierMask"/>
328
+ <menu key="submenu" title="Help" systemMenu="help" id="rJ0-wn-3NY"/>
329
+ </menuItem>
330
+ </items>
331
+ <point key="canvasLocation" x="142" y="-258"/>
332
+ </menu>
333
+ <window title="APP_NAME" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="MainFlutterWindow" customModule="Runner" customModuleProvider="target">
334
+ <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
335
+ <rect key="contentRect" x="335" y="390" width="800" height="600"/>
336
+ <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1577"/>
337
+ <view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
338
+ <rect key="frame" x="0.0" y="0.0" width="800" height="600"/>
339
+ <autoresizingMask key="autoresizingMask"/>
340
+ </view>
341
+ </window>
342
+ </objects>
343
+ </document>
macos/Runner/Configs/AppInfo.xcconfig ADDED
@@ -0,0 +1,14 @@
1
+ // Application-level settings for the Runner target.
2
+ //
3
+ // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
4
+ // future. If not, the values below would default to using the project name when this becomes a
5
+ // 'flutter create' template.
6
+
7
+ // The application's name. By default this is also the title of the Flutter window.
8
+ PRODUCT_NAME = only_bible_app
9
+
10
+ // The application's bundle identifier
11
+ PRODUCT_BUNDLE_IDENTIFIER = sh.pyros.onlyBibleApp
12
+
13
+ // The copyright displayed in application information
14
+ PRODUCT_COPYRIGHT = Copyright © 2026 sh.pyros. All rights reserved.
macos/Runner/Configs/Debug.xcconfig ADDED
@@ -0,0 +1,2 @@
1
+ #include "../../Flutter/Flutter-Debug.xcconfig"
2
+ #include "Warnings.xcconfig"
macos/Runner/Configs/Release.xcconfig ADDED
@@ -0,0 +1,2 @@
1
+ #include "../../Flutter/Flutter-Release.xcconfig"
2
+ #include "Warnings.xcconfig"
macos/Runner/Configs/Warnings.xcconfig ADDED
@@ -0,0 +1,13 @@
1
+ WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
2
+ GCC_WARN_UNDECLARED_SELECTOR = YES
3
+ CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
4
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
5
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
6
+ CLANG_WARN_PRAGMA_PACK = YES
7
+ CLANG_WARN_STRICT_PROTOTYPES = YES
8
+ CLANG_WARN_COMMA = YES
9
+ GCC_WARN_STRICT_SELECTOR_MATCH = YES
10
+ CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
11
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
12
+ GCC_WARN_SHADOW = YES
13
+ CLANG_WARN_UNREACHABLE_CODE = YES
macos/Runner/DebugProfile.entitlements ADDED
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>com.apple.security.app-sandbox</key>
6
+ <true/>
7
+ <key>com.apple.security.cs.allow-jit</key>
8
+ <true/>
9
+ <key>com.apple.security.network.server</key>
10
+ <true/>
11
+ </dict>
12
+ </plist>
macos/Runner/Info.plist ADDED
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string>$(EXECUTABLE_NAME)</string>
9
+ <key>CFBundleIconFile</key>
10
+ <string></string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string>$(PRODUCT_NAME)</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>APPL</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>$(FLUTTER_BUILD_NAME)</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>$(FLUTTER_BUILD_NUMBER)</string>
23
+ <key>LSMinimumSystemVersion</key>
24
+ <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
25
+ <key>NSHumanReadableCopyright</key>
26
+ <string>$(PRODUCT_COPYRIGHT)</string>
27
+ <key>NSMainNibFile</key>
28
+ <string>MainMenu</string>
29
+ <key>NSPrincipalClass</key>
30
+ <string>NSApplication</string>
31
+ </dict>
32
+ </plist>
macos/Runner/MainFlutterWindow.swift ADDED
@@ -0,0 +1,15 @@
1
+ import Cocoa
2
+ import FlutterMacOS
3
+
4
+ class MainFlutterWindow: NSWindow {
5
+ override func awakeFromNib() {
6
+ let flutterViewController = FlutterViewController()
7
+ let windowFrame = self.frame
8
+ self.contentViewController = flutterViewController
9
+ self.setFrame(windowFrame, display: true)
10
+
11
+ RegisterGeneratedPlugins(registry: flutterViewController)
12
+
13
+ super.awakeFromNib()
14
+ }
15
+ }
macos/Runner/Release.entitlements ADDED
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>com.apple.security.app-sandbox</key>
6
+ <true/>
7
+ </dict>
8
+ </plist>
macos/RunnerTests/RunnerTests.swift ADDED
@@ -0,0 +1,12 @@
1
+ import Cocoa
2
+ import FlutterMacOS
3
+ import XCTest
4
+
5
+ class RunnerTests: XCTestCase {
6
+
7
+ func testExample() {
8
+ // If you add code to the Runner application, consider adding tests here.
9
+ // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10
+ }
11
+
12
+ }
pubspec.lock CHANGED
@@ -5,50 +5,58 @@ packages:
5
5
  dependency: transitive
6
6
  description:
7
7
  name: _fe_analyzer_shared
8
- sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a
8
+ sha256: "8d7ff3948166b8ec5da0fbb5962000926b8e02f2ed9b3e51d1738905fbd4c98d"
9
9
  url: "https://pub.dev"
10
10
  source: hosted
11
- version: "61.0.0"
11
+ version: "93.0.0"
12
12
  analyzer:
13
13
  dependency: transitive
14
14
  description:
15
15
  name: analyzer
16
- sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562
16
+ sha256: de7148ed2fcec579b19f122c1800933dfa028f6d9fd38a152b04b1516cec120b
17
17
  url: "https://pub.dev"
18
18
  source: hosted
19
+ version: "10.0.1"
20
+ ansicolor:
21
+ dependency: transitive
22
+ description:
23
+ name: ansicolor
24
+ sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f"
25
+ url: "https://pub.dev"
26
+ source: hosted
19
- version: "5.13.0"
27
+ version: "2.0.3"
20
28
  app_review:
21
29
  dependency: "direct main"
22
30
  description:
23
31
  name: app_review
24
- sha256: "5dc2725949f526a654f752f423e31669ee3343272491f6947167b457875489b1"
32
+ sha256: "5931c84727c5f5a9cfdb5a40dbd63f2f0ece4157f9a6338fbb5c66d6e71f675e"
25
33
  url: "https://pub.dev"
26
34
  source: hosted
27
- version: "2.1.1+1"
35
+ version: "3.0.0"
28
36
  archive:
29
37
  dependency: transitive
30
38
  description:
31
39
  name: archive
32
- sha256: "0c8368c9b3f0abbc193b9d6133649a614204b528982bebc7026372d61677ce3a"
40
+ sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff
33
41
  url: "https://pub.dev"
34
42
  source: hosted
35
- version: "3.3.7"
43
+ version: "4.0.9"
36
44
  args:
37
45
  dependency: transitive
38
46
  description:
39
47
  name: args
40
- sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596
48
+ sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
41
49
  url: "https://pub.dev"
42
50
  source: hosted
43
- version: "2.4.2"
51
+ version: "2.7.0"
44
52
  async:
45
53
  dependency: transitive
46
54
  description:
47
55
  name: async
48
- sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
56
+ sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
49
57
  url: "https://pub.dev"
50
58
  source: hosted
51
- version: "2.11.0"
59
+ version: "2.13.0"
52
60
  atoms_state:
53
61
  dependency: "direct main"
54
62
  description:
@@ -61,66 +69,50 @@ packages:
61
69
  dependency: transitive
62
70
  description:
63
71
  name: audio_session
64
- sha256: "8a2bc5e30520e18f3fb0e366793d78057fb64cd5287862c76af0c8771f2a52ad"
72
+ sha256: "7217b229db57cc4dc577a8abb56b7429a5a212b978517a5be578704bfe5e568b"
65
73
  url: "https://pub.dev"
66
74
  source: hosted
67
- version: "0.1.16"
75
+ version: "0.2.3"
68
76
  boolean_selector:
69
77
  dependency: transitive
70
78
  description:
71
79
  name: boolean_selector
72
- sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
80
+ sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
73
81
  url: "https://pub.dev"
74
82
  source: hosted
75
- version: "2.1.1"
83
+ version: "2.1.2"
76
84
  build:
77
85
  dependency: transitive
78
86
  description:
79
87
  name: build
80
- sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0"
88
+ sha256: aadd943f4f8cc946882c954c187e6115a84c98c81ad1d9c6cbf0895a8c85da9c
81
89
  url: "https://pub.dev"
82
90
  source: hosted
83
- version: "2.4.1"
91
+ version: "4.0.5"
84
92
  build_config:
85
93
  dependency: transitive
86
94
  description:
87
95
  name: build_config
88
- sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
96
+ sha256: "4070d2a59f8eec34c97c86ceb44403834899075f66e8a9d59706f8e7834f6f71"
89
97
  url: "https://pub.dev"
90
98
  source: hosted
91
- version: "1.1.1"
99
+ version: "1.3.0"
92
100
  build_daemon:
93
101
  dependency: transitive
94
102
  description:
95
103
  name: build_daemon
96
- sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65"
97
- url: "https://pub.dev"
98
- source: hosted
99
- version: "4.0.0"
100
- build_resolvers:
101
- dependency: transitive
102
- description:
103
- name: build_resolvers
104
- sha256: "6c4dd11d05d056e76320b828a1db0fc01ccd376922526f8e9d6c796a5adbac20"
104
+ sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957
105
105
  url: "https://pub.dev"
106
106
  source: hosted
107
- version: "2.2.1"
107
+ version: "4.1.1"
108
108
  build_runner:
109
- dependency: transitive
109
+ dependency: "direct dev"
110
110
  description:
111
111
  name: build_runner
112
- sha256: "10c6bcdbf9d049a0b666702cf1cee4ddfdc38f02a19d35ae392863b47519848b"
112
+ sha256: "521daf8d189deb79ba474e43a696b41c49fb3987818dbacf3308f1e03673a75e"
113
- url: "https://pub.dev"
114
- source: hosted
115
- version: "2.4.6"
116
- build_runner_core:
117
- dependency: transitive
118
- description:
119
- name: build_runner_core
120
- sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41"
121
113
  url: "https://pub.dev"
122
114
  source: hosted
123
- version: "7.2.10"
115
+ version: "2.13.1"
124
116
  built_collection:
125
117
  dependency: transitive
126
118
  description:
@@ -133,154 +125,186 @@ packages:
133
125
  dependency: transitive
134
126
  description:
135
127
  name: built_value
136
- sha256: "598a2a682e2a7a90f08ba39c0aaa9374c5112340f0a2e275f61b59389543d166"
128
+ sha256: "6ae8a6435a8c6520c7077b107e77f1fb4ba7009633259a4d49a8afd8e7efc5e9"
137
129
  url: "https://pub.dev"
138
130
  source: hosted
139
- version: "8.6.1"
131
+ version: "8.12.4"
140
132
  characters:
141
133
  dependency: transitive
142
134
  description:
143
135
  name: characters
144
- sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
136
+ sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
145
137
  url: "https://pub.dev"
146
138
  source: hosted
147
- version: "1.3.0"
139
+ version: "1.4.1"
148
140
  checked_yaml:
149
141
  dependency: transitive
150
142
  description:
151
143
  name: checked_yaml
152
- sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
144
+ sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
153
145
  url: "https://pub.dev"
154
146
  source: hosted
155
- version: "2.0.3"
147
+ version: "2.0.4"
148
+ cli_config:
149
+ dependency: transitive
150
+ description:
151
+ name: cli_config
152
+ sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec
153
+ url: "https://pub.dev"
154
+ source: hosted
155
+ version: "0.2.0"
156
156
  cli_util:
157
157
  dependency: transitive
158
158
  description:
159
159
  name: cli_util
160
- sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7
160
+ sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c
161
161
  url: "https://pub.dev"
162
162
  source: hosted
163
- version: "0.4.0"
163
+ version: "0.4.2"
164
164
  clock:
165
165
  dependency: transitive
166
166
  description:
167
167
  name: clock
168
- sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
168
+ sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
169
169
  url: "https://pub.dev"
170
170
  source: hosted
171
- version: "1.1.1"
171
+ version: "1.1.2"
172
+ code_assets:
173
+ dependency: transitive
174
+ description:
175
+ name: code_assets
176
+ sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687"
177
+ url: "https://pub.dev"
178
+ source: hosted
179
+ version: "1.0.0"
172
180
  code_builder:
173
181
  dependency: transitive
174
182
  description:
175
183
  name: code_builder
176
- sha256: "4ad01d6e56db961d29661561effde45e519939fdaeb46c351275b182eac70189"
184
+ sha256: "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d"
177
185
  url: "https://pub.dev"
178
186
  source: hosted
179
- version: "4.5.0"
187
+ version: "4.11.1"
180
188
  collection:
181
189
  dependency: transitive
182
190
  description:
183
191
  name: collection
192
+ sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
193
+ url: "https://pub.dev"
194
+ source: hosted
195
+ version: "1.19.1"
196
+ color:
197
+ dependency: transitive
198
+ description:
199
+ name: color
184
- sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
200
+ sha256: ddcdf1b3badd7008233f5acffaf20ca9f5dc2cd0172b75f68f24526a5f5725cb
185
201
  url: "https://pub.dev"
186
202
  source: hosted
187
- version: "1.18.0"
203
+ version: "3.0.0"
188
204
  convert:
189
205
  dependency: transitive
190
206
  description:
191
207
  name: convert
192
- sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
208
+ sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
193
209
  url: "https://pub.dev"
194
210
  source: hosted
195
- version: "3.1.1"
211
+ version: "3.1.2"
196
212
  coverage:
197
213
  dependency: transitive
198
214
  description:
199
215
  name: coverage
200
- sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76"
216
+ sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d"
201
217
  url: "https://pub.dev"
202
218
  source: hosted
203
- version: "1.7.2"
219
+ version: "1.15.0"
204
220
  cross_file:
205
221
  dependency: transitive
206
222
  description:
207
223
  name: cross_file
208
- sha256: "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9"
224
+ sha256: "28bb3ae56f117b5aec029d702a90f57d285cd975c3c5c281eaca38dbc47c5937"
209
225
  url: "https://pub.dev"
210
226
  source: hosted
211
- version: "0.3.3+4"
227
+ version: "0.3.5+2"
212
228
  crypto:
213
229
  dependency: transitive
214
230
  description:
215
231
  name: crypto
216
- sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
232
+ sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
217
233
  url: "https://pub.dev"
218
234
  source: hosted
219
- version: "3.0.3"
235
+ version: "3.0.7"
220
236
  csslib:
221
237
  dependency: transitive
222
238
  description:
223
239
  name: csslib
224
- sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
240
+ sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e"
225
241
  url: "https://pub.dev"
226
242
  source: hosted
227
- version: "1.0.0"
243
+ version: "1.0.2"
228
244
  cupertino_icons:
229
245
  dependency: "direct main"
230
246
  description:
231
247
  name: cupertino_icons
232
- sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
248
+ sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
233
249
  url: "https://pub.dev"
234
250
  source: hosted
235
- version: "1.0.5"
251
+ version: "1.0.8"
236
252
  dart_style:
237
253
  dependency: transitive
238
254
  description:
239
255
  name: dart_style
240
- sha256: "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55"
256
+ sha256: "29f7ecc274a86d32920b1d9cfc7502fa87220da41ec60b55f329559d5732e2b2"
241
257
  url: "https://pub.dev"
242
258
  source: hosted
243
- version: "2.3.2"
259
+ version: "3.1.7"
260
+ dartx:
261
+ dependency: transitive
262
+ description:
263
+ name: dartx
264
+ sha256: "8b25435617027257d43e6508b5fe061012880ddfdaa75a71d607c3de2a13d244"
265
+ url: "https://pub.dev"
266
+ source: hosted
267
+ version: "1.2.0"
244
268
  equatable:
245
269
  dependency: transitive
246
270
  description:
247
271
  name: equatable
248
- sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2
272
+ sha256: "3e0141505477fd8ad55d6eb4e7776d3fe8430be8e497ccb1521370c3f21a3e2b"
249
273
  url: "https://pub.dev"
250
274
  source: hosted
251
- version: "2.0.5"
275
+ version: "2.0.8"
252
276
  fake_async:
253
277
  dependency: transitive
254
278
  description:
255
279
  name: fake_async
256
- sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
280
+ sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
257
281
  url: "https://pub.dev"
258
282
  source: hosted
259
- version: "1.3.1"
283
+ version: "1.3.3"
260
284
  ffi:
261
285
  dependency: transitive
262
286
  description:
263
287
  name: ffi
264
- sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
288
+ sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45"
265
289
  url: "https://pub.dev"
266
290
  source: hosted
267
- version: "2.0.2"
291
+ version: "2.2.0"
268
292
  file:
269
293
  dependency: transitive
270
294
  description:
271
295
  name: file
272
- sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
296
+ sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
273
297
  url: "https://pub.dev"
274
298
  source: hosted
275
- version: "7.0.0"
299
+ version: "7.0.1"
276
300
  fixnum:
277
301
  dependency: transitive
278
302
  description:
279
303
  name: fixnum
280
- sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
304
+ sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
281
305
  url: "https://pub.dev"
282
306
  source: hosted
283
- version: "1.1.0"
307
+ version: "1.1.1"
284
308
  flutter:
285
309
  dependency: "direct main"
286
310
  description: flutter
@@ -290,31 +314,47 @@ packages:
290
314
  dependency: "direct main"
291
315
  description:
292
316
  name: flutter_azure_tts
293
- sha256: c216a6b6b7c1b4f2217bb2ad7b6b5b6c3b4221d21309eab57ea1cad41e55949e
317
+ sha256: "130b1bb36de0ef5e090d76d172920b63e7381fd85eb6acf76a2cbbc6de2859ea"
294
318
  url: "https://pub.dev"
295
319
  source: hosted
296
- version: "0.1.6"
320
+ version: "1.0.0"
297
321
  flutter_driver:
298
322
  dependency: transitive
299
323
  description: flutter
300
324
  source: sdk
301
325
  version: "0.0.0"
326
+ flutter_gen_core:
327
+ dependency: transitive
328
+ description:
329
+ name: flutter_gen_core
330
+ sha256: "22b3198a4cb1255841a3662b41adad35d36d9037fcd9d129858240030417e0b1"
331
+ url: "https://pub.dev"
332
+ source: hosted
333
+ version: "5.13.0+1"
334
+ flutter_gen_runner:
335
+ dependency: "direct dev"
336
+ description:
337
+ name: flutter_gen_runner
338
+ sha256: "83fd55f5472a955725c5912819847e9770c4f295cd0ae4bdd26d99853f8a6546"
339
+ url: "https://pub.dev"
340
+ source: hosted
341
+ version: "5.13.0+1"
302
342
  flutter_launcher_icons:
303
343
  dependency: "direct dev"
304
344
  description:
305
345
  name: flutter_launcher_icons
306
- sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
346
+ sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7"
307
347
  url: "https://pub.dev"
308
348
  source: hosted
309
- version: "0.13.1"
349
+ version: "0.14.4"
310
350
  flutter_lints:
311
351
  dependency: "direct dev"
312
352
  description:
313
353
  name: flutter_lints
314
- sha256: "2118df84ef0c3ca93f96123a616ae8540879991b8b57af2f81b76a7ada49b2a4"
354
+ sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1"
315
355
  url: "https://pub.dev"
316
356
  source: hosted
317
- version: "2.0.2"
357
+ version: "6.0.0"
318
358
  flutter_localizations:
319
359
  dependency: "direct main"
320
360
  description: flutter
@@ -324,10 +364,10 @@ packages:
324
364
  dependency: "direct main"
325
365
  description:
326
366
  name: flutter_native_splash
327
- sha256: ba45d8cfbd778478a74696b012f33ffb6b1760c9bc531b21e2964444a4870dae
367
+ sha256: "4fb9f4113350d3a80841ce05ebf1976a36de622af7d19aca0ca9a9911c7ff002"
328
368
  url: "https://pub.dev"
329
369
  source: hosted
330
- version: "2.3.1"
370
+ version: "2.4.7"
331
371
  flutter_swipe_detector:
332
372
  dependency: "direct main"
333
373
  description:
@@ -350,10 +390,10 @@ packages:
350
390
  dependency: transitive
351
391
  description:
352
392
  name: frontend_server_client
353
- sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
393
+ sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
354
394
  url: "https://pub.dev"
355
395
  source: hosted
356
- version: "3.2.0"
396
+ version: "4.0.0"
357
397
  fuchsia_remote_debug_protocol:
358
398
  dependency: transitive
359
399
  description: flutter
@@ -363,10 +403,10 @@ packages:
363
403
  dependency: transitive
364
404
  description:
365
405
  name: get
366
- sha256: "2ba20a47c8f1f233bed775ba2dd0d3ac97b4cf32fc17731b3dfc672b06b0e92a"
406
+ sha256: "5ed34a7925b85336e15d472cc4cfe7d9ebf4ab8e8b9f688585bf6b50f4c3d79a"
367
407
  url: "https://pub.dev"
368
408
  source: hosted
369
- version: "4.6.5"
409
+ version: "4.7.3"
370
410
  get_storage:
371
411
  dependency: "direct main"
372
412
  description:
@@ -379,58 +419,82 @@ packages:
379
419
  dependency: transitive
380
420
  description:
381
421
  name: glob
382
- sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
422
+ sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
383
423
  url: "https://pub.dev"
384
424
  source: hosted
385
- version: "2.1.2"
425
+ version: "2.1.3"
386
426
  graphs:
387
427
  dependency: transitive
388
428
  description:
389
429
  name: graphs
390
- sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19
430
+ sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0"
391
431
  url: "https://pub.dev"
392
432
  source: hosted
393
- version: "2.3.1"
433
+ version: "2.3.2"
434
+ hashcodes:
435
+ dependency: transitive
436
+ description:
437
+ name: hashcodes
438
+ sha256: "80f9410a5b3c8e110c4b7604546034749259f5d6dcca63e0d3c17c9258f1a651"
439
+ url: "https://pub.dev"
440
+ source: hosted
441
+ version: "2.0.0"
394
- html:
442
+ hooks:
395
443
  dependency: transitive
444
+ description:
445
+ name: hooks
446
+ sha256: e79ed1e8e1929bc6ecb6ec85f0cb519c887aa5b423705ded0d0f2d9226def388
447
+ url: "https://pub.dev"
448
+ source: hosted
449
+ version: "1.0.2"
450
+ html:
451
+ dependency: "direct dev"
396
452
  description:
397
453
  name: html
398
- sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a"
454
+ sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602"
399
455
  url: "https://pub.dev"
400
456
  source: hosted
401
- version: "0.15.4"
457
+ version: "0.15.6"
402
458
  http:
403
459
  dependency: "direct main"
404
460
  description:
405
461
  name: http
406
- sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2"
462
+ sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
407
463
  url: "https://pub.dev"
408
464
  source: hosted
409
- version: "0.13.6"
465
+ version: "1.6.0"
410
466
  http_multi_server:
411
467
  dependency: transitive
412
468
  description:
413
469
  name: http_multi_server
414
- sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
470
+ sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8
415
471
  url: "https://pub.dev"
416
472
  source: hosted
417
- version: "3.2.1"
473
+ version: "3.2.2"
418
474
  http_parser:
419
475
  dependency: transitive
420
476
  description:
421
477
  name: http_parser
422
- sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
478
+ sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
423
479
  url: "https://pub.dev"
424
480
  source: hosted
425
- version: "4.0.2"
481
+ version: "4.1.2"
426
482
  image:
427
483
  dependency: transitive
428
484
  description:
429
485
  name: image
430
- sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf
486
+ sha256: f9881ff4998044947ec38d098bc7c8316ae1186fa786eddffdb867b9bc94dfce
487
+ url: "https://pub.dev"
488
+ source: hosted
489
+ version: "4.8.0"
490
+ image_size_getter:
491
+ dependency: transitive
492
+ description:
493
+ name: image_size_getter
494
+ sha256: "7c26937e0ae341ca558b7556591fd0cc456fcc454583b7cb665d2f03e93e590f"
431
495
  url: "https://pub.dev"
432
496
  source: hosted
433
- version: "4.0.17"
497
+ version: "2.4.1"
434
498
  integration_test:
435
499
  dependency: "direct dev"
436
500
  description: flutter
@@ -440,130 +504,130 @@ packages:
440
504
  dependency: "direct main"
441
505
  description:
442
506
  name: intl
443
- sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
507
+ sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
444
508
  url: "https://pub.dev"
445
509
  source: hosted
446
- version: "0.18.1"
510
+ version: "0.20.2"
447
511
  io:
448
512
  dependency: transitive
449
513
  description:
450
514
  name: io
451
- sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
452
- url: "https://pub.dev"
453
- source: hosted
454
- version: "1.0.4"
455
- js:
456
- dependency: transitive
457
- description:
458
- name: js
459
- sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
515
+ sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b
460
516
  url: "https://pub.dev"
461
517
  source: hosted
462
- version: "0.6.7"
518
+ version: "1.0.5"
463
519
  json_annotation:
464
520
  dependency: transitive
465
521
  description:
466
522
  name: json_annotation
467
- sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
523
+ sha256: cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8
468
524
  url: "https://pub.dev"
469
525
  source: hosted
470
- version: "4.8.1"
526
+ version: "4.11.0"
471
527
  just_audio:
472
528
  dependency: "direct main"
473
529
  description:
474
530
  name: just_audio
475
- sha256: "890cd0fc41a1a4530c171e375a2a3fb6a09d84e9d508c5195f40bcff54330327"
531
+ sha256: "9694e4734f515f2a052493d1d7e0d6de219ee0427c7c29492e246ff32a219908"
476
532
  url: "https://pub.dev"
477
533
  source: hosted
478
- version: "0.9.34"
534
+ version: "0.10.5"
479
535
  just_audio_platform_interface:
480
536
  dependency: transitive
481
537
  description:
482
538
  name: just_audio_platform_interface
483
- sha256: d8409da198bbc59426cd45d4c92fca522a2ec269b576ce29459d6d6fcaeb44df
539
+ sha256: "2532c8d6702528824445921c5ff10548b518b13f808c2e34c2fd54793b999a6a"
484
540
  url: "https://pub.dev"
485
541
  source: hosted
486
- version: "4.2.1"
542
+ version: "4.6.0"
487
543
  just_audio_web:
488
544
  dependency: transitive
489
545
  description:
490
546
  name: just_audio_web
491
- sha256: ff62f733f437b25a0ff590f0e295fa5441dcb465f1edbdb33b3dea264705bc13
547
+ sha256: "6ba8a2a7e87d57d32f0f7b42856ade3d6a9fbe0f1a11fabae0a4f00bb73f0663"
492
548
  url: "https://pub.dev"
493
549
  source: hosted
494
- version: "0.4.8"
550
+ version: "0.4.16"
495
551
  leak_tracker:
496
552
  dependency: transitive
497
553
  description:
498
554
  name: leak_tracker
499
- sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
555
+ sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
500
556
  url: "https://pub.dev"
501
557
  source: hosted
502
- version: "10.0.0"
558
+ version: "11.0.2"
503
559
  leak_tracker_flutter_testing:
504
560
  dependency: transitive
505
561
  description:
506
562
  name: leak_tracker_flutter_testing
507
- sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
563
+ sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
508
564
  url: "https://pub.dev"
509
565
  source: hosted
510
- version: "2.0.1"
566
+ version: "3.0.10"
511
567
  leak_tracker_testing:
512
568
  dependency: transitive
513
569
  description:
514
570
  name: leak_tracker_testing
515
- sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
571
+ sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
516
572
  url: "https://pub.dev"
517
573
  source: hosted
518
- version: "2.0.1"
574
+ version: "3.0.2"
519
575
  lints:
520
576
  dependency: transitive
521
577
  description:
522
578
  name: lints
523
- sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
579
+ sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df"
524
580
  url: "https://pub.dev"
525
581
  source: hosted
526
- version: "2.1.1"
582
+ version: "6.1.0"
527
583
  logging:
528
584
  dependency: transitive
529
585
  description:
530
586
  name: logging
531
- sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340"
587
+ sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
532
588
  url: "https://pub.dev"
533
589
  source: hosted
534
- version: "1.2.0"
590
+ version: "1.3.0"
535
591
  matcher:
536
592
  dependency: transitive
537
593
  description:
538
594
  name: matcher
539
- sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
595
+ sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
540
596
  url: "https://pub.dev"
541
597
  source: hosted
542
- version: "0.12.16+1"
598
+ version: "0.12.19"
543
599
  material_color_utilities:
544
600
  dependency: transitive
545
601
  description:
546
602
  name: material_color_utilities
547
- sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
603
+ sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
548
604
  url: "https://pub.dev"
549
605
  source: hosted
550
- version: "0.8.0"
606
+ version: "0.13.0"
551
607
  meta:
552
608
  dependency: transitive
553
609
  description:
554
610
  name: meta
555
- sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
611
+ sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
556
612
  url: "https://pub.dev"
557
613
  source: hosted
558
- version: "1.11.0"
614
+ version: "1.17.0"
559
615
  mime:
560
616
  dependency: transitive
561
617
  description:
562
618
  name: mime
563
- sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
619
+ sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
620
+ url: "https://pub.dev"
621
+ source: hosted
622
+ version: "2.0.0"
623
+ native_toolchain_c:
624
+ dependency: transitive
625
+ description:
626
+ name: native_toolchain_c
627
+ sha256: "6ba77bb18063eebe9de401f5e6437e95e1438af0a87a3a39084fbd37c90df572"
564
628
  url: "https://pub.dev"
565
629
  source: hosted
566
- version: "1.0.4"
630
+ version: "0.17.6"
567
631
  node_preamble:
568
632
  dependency: transitive
569
633
  description:
@@ -572,110 +636,118 @@ packages:
572
636
  url: "https://pub.dev"
573
637
  source: hosted
574
638
  version: "2.0.2"
575
- package_config:
639
+ objective_c:
576
640
  dependency: transitive
577
641
  description:
578
- name: package_config
642
+ name: objective_c
579
- sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
643
+ sha256: "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52"
580
644
  url: "https://pub.dev"
581
645
  source: hosted
582
- version: "2.1.0"
646
+ version: "9.3.0"
583
- package_info:
647
+ package_config:
584
648
  dependency: transitive
585
649
  description:
586
- name: package_info
650
+ name: package_config
587
- sha256: "6c07d9d82c69e16afeeeeb6866fe43985a20b3b50df243091bfc4a4ad2b03b75"
651
+ sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc
588
652
  url: "https://pub.dev"
589
653
  source: hosted
590
- version: "2.0.2"
654
+ version: "2.2.0"
591
655
  package_info_plus:
592
656
  dependency: "direct main"
593
657
  description:
594
658
  name: package_info_plus
595
- sha256: "6ff267fcd9d48cb61c8df74a82680e8b82e940231bb5f68356672fde0397334a"
659
+ sha256: f69da0d3189a4b4ceaeb1a3defb0f329b3b352517f52bed4290f83d4f06bc08d
596
660
  url: "https://pub.dev"
597
661
  source: hosted
598
- version: "4.1.0"
662
+ version: "9.0.0"
599
663
  package_info_plus_platform_interface:
600
664
  dependency: transitive
601
665
  description:
602
666
  name: package_info_plus_platform_interface
603
- sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6"
667
+ sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086"
604
668
  url: "https://pub.dev"
605
669
  source: hosted
606
- version: "2.0.1"
670
+ version: "3.2.1"
607
671
  path:
608
672
  dependency: transitive
609
673
  description:
610
674
  name: path
675
+ sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
676
+ url: "https://pub.dev"
677
+ source: hosted
678
+ version: "1.9.1"
679
+ path_parsing:
680
+ dependency: transitive
681
+ description:
682
+ name: path_parsing
611
- sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
683
+ sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca"
612
684
  url: "https://pub.dev"
613
685
  source: hosted
614
- version: "1.9.0"
686
+ version: "1.1.0"
615
687
  path_provider:
616
688
  dependency: "direct main"
617
689
  description:
618
690
  name: path_provider
619
- sha256: "3087813781ab814e4157b172f1a11c46be20179fcc9bea043e0fba36bc0acaa2"
691
+ sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
620
692
  url: "https://pub.dev"
621
693
  source: hosted
622
- version: "2.0.15"
694
+ version: "2.1.5"
623
695
  path_provider_android:
624
696
  dependency: transitive
625
697
  description:
626
698
  name: path_provider_android
627
- sha256: "2cec049d282c7f13c594b4a73976b0b4f2d7a1838a6dd5aaf7bd9719196bee86"
699
+ sha256: f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e
628
700
  url: "https://pub.dev"
629
701
  source: hosted
630
- version: "2.0.27"
702
+ version: "2.2.22"
631
703
  path_provider_foundation:
632
704
  dependency: transitive
633
705
  description:
634
706
  name: path_provider_foundation
635
- sha256: "916731ccbdce44d545414dd9961f26ba5fbaa74bcbb55237d8e65a623a8c7297"
707
+ sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
636
708
  url: "https://pub.dev"
637
709
  source: hosted
638
- version: "2.2.4"
710
+ version: "2.6.0"
639
711
  path_provider_linux:
640
712
  dependency: transitive
641
713
  description:
642
714
  name: path_provider_linux
643
- sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57
715
+ sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
644
716
  url: "https://pub.dev"
645
717
  source: hosted
646
- version: "2.1.11"
718
+ version: "2.2.1"
647
719
  path_provider_platform_interface:
648
720
  dependency: transitive
649
721
  description:
650
722
  name: path_provider_platform_interface
651
- sha256: bced5679c7df11190e1ddc35f3222c858f328fff85c3942e46e7f5589bf9eb84
723
+ sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
652
724
  url: "https://pub.dev"
653
725
  source: hosted
654
- version: "2.1.0"
726
+ version: "2.1.2"
655
727
  path_provider_windows:
656
728
  dependency: transitive
657
729
  description:
658
730
  name: path_provider_windows
659
- sha256: "1cb68ba4cd3a795033de62ba1b7b4564dace301f952de6bfb3cd91b202b6ee96"
731
+ sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
660
732
  url: "https://pub.dev"
661
733
  source: hosted
662
- version: "2.1.7"
734
+ version: "2.3.0"
663
735
  petitparser:
664
736
  dependency: transitive
665
737
  description:
666
738
  name: petitparser
667
- sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750
739
+ sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675"
668
740
  url: "https://pub.dev"
669
741
  source: hosted
670
- version: "5.4.0"
742
+ version: "7.0.2"
671
743
  platform:
672
744
  dependency: transitive
673
745
  description:
674
746
  name: platform
675
- sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
747
+ sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
676
748
  url: "https://pub.dev"
677
749
  source: hosted
678
- version: "3.1.4"
750
+ version: "3.1.6"
679
751
  plugin_platform_interface:
680
752
  dependency: transitive
681
753
  description:
@@ -684,54 +756,54 @@ packages:
684
756
  url: "https://pub.dev"
685
757
  source: hosted
686
758
  version: "2.1.8"
687
- pointycastle:
759
+ pool:
688
760
  dependency: transitive
689
761
  description:
690
- name: pointycastle
762
+ name: pool
691
- sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c"
763
+ sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d"
692
764
  url: "https://pub.dev"
693
765
  source: hosted
694
- version: "3.7.3"
766
+ version: "1.5.2"
695
- pool:
767
+ posix:
696
768
  dependency: transitive
697
769
  description:
698
- name: pool
770
+ name: posix
699
- sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
771
+ sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07"
700
772
  url: "https://pub.dev"
701
773
  source: hosted
702
- version: "1.5.1"
774
+ version: "6.5.0"
703
775
  process:
704
776
  dependency: transitive
705
777
  description:
706
778
  name: process
707
- sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32"
779
+ sha256: c6248e4526673988586e8c00bb22a49210c258dc91df5227d5da9748ecf79744
708
780
  url: "https://pub.dev"
709
781
  source: hosted
710
- version: "5.0.2"
782
+ version: "5.0.5"
711
783
  pub_semver:
712
784
  dependency: transitive
713
785
  description:
714
786
  name: pub_semver
715
- sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
787
+ sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
716
788
  url: "https://pub.dev"
717
789
  source: hosted
718
- version: "2.1.4"
790
+ version: "2.2.0"
719
791
  pubspec_parse:
720
792
  dependency: transitive
721
793
  description:
722
794
  name: pubspec_parse
723
- sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367
795
+ sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082"
724
796
  url: "https://pub.dev"
725
797
  source: hosted
726
- version: "1.2.3"
798
+ version: "1.5.0"
727
799
  rxdart:
728
800
  dependency: transitive
729
801
  description:
730
802
  name: rxdart
731
- sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
803
+ sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962"
732
804
  url: "https://pub.dev"
733
805
  source: hosted
734
- version: "0.27.7"
806
+ version: "0.28.0"
735
807
  settings_ui:
736
808
  dependency: "direct main"
737
809
  description:
@@ -744,82 +816,82 @@ packages:
744
816
  dependency: "direct main"
745
817
  description:
746
818
  name: share_plus
747
- sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11"
819
+ sha256: "14c8860d4de93d3a7e53af51bff479598c4e999605290756bbbe45cf65b37840"
748
820
  url: "https://pub.dev"
749
821
  source: hosted
750
- version: "7.1.0"
822
+ version: "12.0.1"
751
823
  share_plus_platform_interface:
752
824
  dependency: transitive
753
825
  description:
754
826
  name: share_plus_platform_interface
755
- sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7"
827
+ sha256: "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a"
756
828
  url: "https://pub.dev"
757
829
  source: hosted
758
- version: "3.3.0"
830
+ version: "6.1.0"
759
831
  shared_preferences:
760
832
  dependency: "direct main"
761
833
  description:
762
834
  name: shared_preferences
763
- sha256: "0344316c947ffeb3a529eac929e1978fcd37c26be4e8468628bac399365a3ca1"
835
+ sha256: "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64"
764
836
  url: "https://pub.dev"
765
837
  source: hosted
766
- version: "2.2.0"
838
+ version: "2.5.4"
767
839
  shared_preferences_android:
768
840
  dependency: transitive
769
841
  description:
770
842
  name: shared_preferences_android
771
- sha256: fe8401ec5b6dcd739a0fe9588802069e608c3fdbfd3c3c93e546cf2f90438076
843
+ sha256: "8374d6200ab33ac99031a852eba4c8eb2170c4bf20778b3e2c9eccb45384fb41"
772
844
  url: "https://pub.dev"
773
845
  source: hosted
774
- version: "2.2.0"
846
+ version: "2.4.21"
775
847
  shared_preferences_foundation:
776
848
  dependency: transitive
777
849
  description:
778
850
  name: shared_preferences_foundation
779
- sha256: f39696b83e844923b642ce9dd4bd31736c17e697f6731a5adf445b1274cf3cd4
851
+ sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
780
852
  url: "https://pub.dev"
781
853
  source: hosted
782
- version: "2.3.2"
854
+ version: "2.5.6"
783
855
  shared_preferences_linux:
784
856
  dependency: transitive
785
857
  description:
786
858
  name: shared_preferences_linux
787
- sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa"
859
+ sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
788
860
  url: "https://pub.dev"
789
861
  source: hosted
790
- version: "2.3.2"
862
+ version: "2.4.1"
791
863
  shared_preferences_platform_interface:
792
864
  dependency: transitive
793
865
  description:
794
866
  name: shared_preferences_platform_interface
795
- sha256: "23b052f17a25b90ff2b61aad4cc962154da76fb62848a9ce088efe30d7c50ab1"
867
+ sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
796
868
  url: "https://pub.dev"
797
869
  source: hosted
798
- version: "2.3.0"
870
+ version: "2.4.1"
799
871
  shared_preferences_web:
800
872
  dependency: transitive
801
873
  description:
802
874
  name: shared_preferences_web
803
- sha256: "7347b194fb0bbeb4058e6a4e87ee70350b6b2b90f8ac5f8bd5b3a01548f6d33a"
875
+ sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
804
876
  url: "https://pub.dev"
805
877
  source: hosted
806
- version: "2.2.0"
878
+ version: "2.4.3"
807
879
  shared_preferences_windows:
808
880
  dependency: transitive
809
881
  description:
810
882
  name: shared_preferences_windows
811
- sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59"
883
+ sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
812
884
  url: "https://pub.dev"
813
885
  source: hosted
814
- version: "2.3.2"
886
+ version: "2.4.1"
815
887
  shelf:
816
888
  dependency: transitive
817
889
  description:
818
890
  name: shelf
819
- sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4
891
+ sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
820
892
  url: "https://pub.dev"
821
893
  source: hosted
822
- version: "1.4.1"
894
+ version: "1.4.2"
823
895
  shelf_packages_handler:
824
896
  dependency: transitive
825
897
  description:
@@ -832,79 +904,79 @@ packages:
832
904
  dependency: transitive
833
905
  description:
834
906
  name: shelf_static
835
- sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e
907
+ sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3
836
908
  url: "https://pub.dev"
837
909
  source: hosted
838
- version: "1.1.2"
910
+ version: "1.1.3"
839
911
  shelf_web_socket:
840
912
  dependency: transitive
841
913
  description:
842
914
  name: shelf_web_socket
843
- sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1"
915
+ sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925"
844
916
  url: "https://pub.dev"
845
917
  source: hosted
846
- version: "1.0.4"
918
+ version: "3.0.0"
847
919
  sky_engine:
848
920
  dependency: transitive
849
921
  description: flutter
850
922
  source: sdk
851
- version: "0.0.99"
923
+ version: "0.0.0"
852
924
  source_map_stack_trace:
853
925
  dependency: transitive
854
926
  description:
855
927
  name: source_map_stack_trace
856
- sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
928
+ sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b
857
929
  url: "https://pub.dev"
858
930
  source: hosted
859
- version: "2.1.1"
931
+ version: "2.1.2"
860
932
  source_maps:
861
933
  dependency: transitive
862
934
  description:
863
935
  name: source_maps
864
- sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703"
936
+ sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812"
865
937
  url: "https://pub.dev"
866
938
  source: hosted
867
- version: "0.10.12"
939
+ version: "0.10.13"
868
940
  source_span:
869
941
  dependency: transitive
870
942
  description:
871
943
  name: source_span
872
- sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
944
+ sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
873
945
  url: "https://pub.dev"
874
946
  source: hosted
875
- version: "1.10.0"
947
+ version: "1.10.2"
876
948
  stack_trace:
877
949
  dependency: transitive
878
950
  description:
879
951
  name: stack_trace
880
- sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
952
+ sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
881
953
  url: "https://pub.dev"
882
954
  source: hosted
883
- version: "1.11.1"
955
+ version: "1.12.1"
884
956
  stream_channel:
885
957
  dependency: transitive
886
958
  description:
887
959
  name: stream_channel
888
- sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
960
+ sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
889
961
  url: "https://pub.dev"
890
962
  source: hosted
891
- version: "2.1.2"
963
+ version: "2.1.4"
892
964
  stream_transform:
893
965
  dependency: transitive
894
966
  description:
895
967
  name: stream_transform
896
- sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
968
+ sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871
897
969
  url: "https://pub.dev"
898
970
  source: hosted
899
- version: "2.1.0"
971
+ version: "2.1.1"
900
972
  string_scanner:
901
973
  dependency: transitive
902
974
  description:
903
975
  name: string_scanner
904
- sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
976
+ sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
905
977
  url: "https://pub.dev"
906
978
  source: hosted
907
- version: "1.2.0"
979
+ version: "1.4.1"
908
980
  sync_http:
909
981
  dependency: transitive
910
982
  description:
@@ -913,246 +985,286 @@ packages:
913
985
  url: "https://pub.dev"
914
986
  source: hosted
915
987
  version: "0.3.1"
988
+ synchronized:
989
+ dependency: transitive
990
+ description:
991
+ name: synchronized
992
+ sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0
993
+ url: "https://pub.dev"
994
+ source: hosted
995
+ version: "3.4.0"
916
996
  term_glyph:
917
997
  dependency: transitive
918
998
  description:
919
999
  name: term_glyph
920
- sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
1000
+ sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
921
1001
  url: "https://pub.dev"
922
1002
  source: hosted
923
- version: "1.2.1"
1003
+ version: "1.2.2"
924
1004
  test:
925
1005
  dependency: "direct dev"
926
1006
  description:
927
1007
  name: test
928
- sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f
1008
+ sha256: "280d6d890011ca966ad08df7e8a4ddfab0fb3aa49f96ed6de56e3521347a9ae7"
929
1009
  url: "https://pub.dev"
930
1010
  source: hosted
931
- version: "1.24.9"
1011
+ version: "1.30.0"
932
1012
  test_api:
933
1013
  dependency: transitive
934
1014
  description:
935
1015
  name: test_api
936
- sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
1016
+ sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a"
937
1017
  url: "https://pub.dev"
938
1018
  source: hosted
939
- version: "0.6.1"
1019
+ version: "0.7.10"
940
1020
  test_core:
941
1021
  dependency: transitive
942
1022
  description:
943
1023
  name: test_core
944
- sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a
1024
+ sha256: "0381bd1585d1a924763c308100f2138205252fb90c9d4eeaf28489ee65ccde51"
945
1025
  url: "https://pub.dev"
946
1026
  source: hosted
947
- version: "0.5.9"
1027
+ version: "0.6.16"
948
- timing:
1028
+ time:
949
1029
  dependency: transitive
950
1030
  description:
951
- name: timing
1031
+ name: time
952
- sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
1032
+ sha256: "46187cf30bffdab28c56be9a63861b36e4ab7347bf403297595d6a97e10c789f"
953
1033
  url: "https://pub.dev"
954
1034
  source: hosted
955
- version: "1.0.1"
1035
+ version: "2.1.6"
956
1036
  typed_data:
957
1037
  dependency: transitive
958
1038
  description:
959
1039
  name: typed_data
960
- sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
1040
+ sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
961
1041
  url: "https://pub.dev"
962
1042
  source: hosted
963
- version: "1.3.2"
1043
+ version: "1.4.0"
964
1044
  universal_io:
965
1045
  dependency: transitive
966
1046
  description:
967
1047
  name: universal_io
968
- sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad"
1048
+ sha256: f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2
969
1049
  url: "https://pub.dev"
970
1050
  source: hosted
971
- version: "2.2.2"
1051
+ version: "2.3.1"
972
1052
  url_launcher:
973
1053
  dependency: "direct main"
974
1054
  description:
975
1055
  name: url_launcher
976
- sha256: "781bd58a1eb16069412365c98597726cd8810ae27435f04b3b4d3a470bacd61e"
1056
+ sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8
977
1057
  url: "https://pub.dev"
978
1058
  source: hosted
979
- version: "6.1.12"
1059
+ version: "6.3.2"
980
1060
  url_launcher_android:
981
1061
  dependency: transitive
982
1062
  description:
983
1063
  name: url_launcher_android
984
- sha256: "3dd2388cc0c42912eee04434531a26a82512b9cb1827e0214430c9bcbddfe025"
1064
+ sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611"
985
1065
  url: "https://pub.dev"
986
1066
  source: hosted
987
- version: "6.0.38"
1067
+ version: "6.3.28"
988
1068
  url_launcher_ios:
989
1069
  dependency: transitive
990
1070
  description:
991
1071
  name: url_launcher_ios
992
- sha256: "9af7ea73259886b92199f9e42c116072f05ff9bea2dcb339ab935dfc957392c2"
1072
+ sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0"
993
1073
  url: "https://pub.dev"
994
1074
  source: hosted
995
- version: "6.1.4"
1075
+ version: "6.4.1"
996
1076
  url_launcher_linux:
997
1077
  dependency: transitive
998
1078
  description:
999
1079
  name: url_launcher_linux
1000
- sha256: "207f4ddda99b95b4d4868320a352d374b0b7e05eefad95a4a26f57da413443f5"
1080
+ sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a
1001
1081
  url: "https://pub.dev"
1002
1082
  source: hosted
1003
- version: "3.0.5"
1083
+ version: "3.2.2"
1004
1084
  url_launcher_macos:
1005
1085
  dependency: transitive
1006
1086
  description:
1007
1087
  name: url_launcher_macos
1008
- sha256: "1c4fdc0bfea61a70792ce97157e5cc17260f61abbe4f39354513f39ec6fd73b1"
1088
+ sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18"
1009
1089
  url: "https://pub.dev"
1010
1090
  source: hosted
1011
- version: "3.0.6"
1091
+ version: "3.2.5"
1012
1092
  url_launcher_platform_interface:
1013
1093
  dependency: transitive
1014
1094
  description:
1015
1095
  name: url_launcher_platform_interface
1016
- sha256: bfdfa402f1f3298637d71ca8ecfe840b4696698213d5346e9d12d4ab647ee2ea
1096
+ sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029"
1017
1097
  url: "https://pub.dev"
1018
1098
  source: hosted
1019
- version: "2.1.3"
1099
+ version: "2.3.2"
1020
1100
  url_launcher_web:
1021
1101
  dependency: transitive
1022
1102
  description:
1023
1103
  name: url_launcher_web
1024
- sha256: cc26720eefe98c1b71d85f9dc7ef0cada5132617046369d9dc296b3ecaa5cbb4
1104
+ sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f
1025
1105
  url: "https://pub.dev"
1026
1106
  source: hosted
1027
- version: "2.0.18"
1107
+ version: "2.4.2"
1028
1108
  url_launcher_windows:
1029
1109
  dependency: transitive
1030
1110
  description:
1031
1111
  name: url_launcher_windows
1032
- sha256: "7967065dd2b5fccc18c653b97958fdf839c5478c28e767c61ee879f4e7882422"
1112
+ sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f"
1033
1113
  url: "https://pub.dev"
1034
1114
  source: hosted
1035
- version: "3.0.7"
1115
+ version: "3.1.5"
1036
1116
  uuid:
1037
1117
  dependency: transitive
1038
1118
  description:
1039
1119
  name: uuid
1040
- sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
1120
+ sha256: "1fef9e8e11e2991bb773070d4656b7bd5d850967a2456cfc83cf47925ba79489"
1041
1121
  url: "https://pub.dev"
1042
1122
  source: hosted
1043
- version: "3.0.7"
1123
+ version: "4.5.3"
1124
+ vector_graphics_codec:
1125
+ dependency: transitive
1126
+ description:
1127
+ name: vector_graphics_codec
1128
+ sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146"
1129
+ url: "https://pub.dev"
1130
+ source: hosted
1131
+ version: "1.1.13"
1132
+ vector_graphics_compiler:
1133
+ dependency: transitive
1134
+ description:
1135
+ name: vector_graphics_compiler
1136
+ sha256: "5a88dd14c0954a5398af544651c7fb51b457a2a556949bfb25369b210ef73a74"
1137
+ url: "https://pub.dev"
1138
+ source: hosted
1139
+ version: "1.2.0"
1044
1140
  vector_math:
1045
1141
  dependency: transitive
1046
1142
  description:
1047
1143
  name: vector_math
1048
- sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
1144
+ sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
1049
1145
  url: "https://pub.dev"
1050
1146
  source: hosted
1051
- version: "2.1.4"
1147
+ version: "2.2.0"
1052
1148
  vm_service:
1053
1149
  dependency: transitive
1054
1150
  description:
1055
1151
  name: vm_service
1056
- sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
1152
+ sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60"
1057
1153
  url: "https://pub.dev"
1058
1154
  source: hosted
1059
- version: "13.0.0"
1155
+ version: "15.0.2"
1060
1156
  watcher:
1061
1157
  dependency: transitive
1062
1158
  description:
1063
1159
  name: watcher
1064
- sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
1160
+ sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
1065
1161
  url: "https://pub.dev"
1066
1162
  source: hosted
1163
+ version: "1.2.1"
1164
+ web:
1165
+ dependency: transitive
1166
+ description:
1167
+ name: web
1168
+ sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
1169
+ url: "https://pub.dev"
1170
+ source: hosted
1067
- version: "1.1.0"
1171
+ version: "1.1.1"
1172
+ web_socket:
1173
+ dependency: transitive
1174
+ description:
1175
+ name: web_socket
1176
+ sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
1177
+ url: "https://pub.dev"
1178
+ source: hosted
1179
+ version: "1.0.1"
1068
1180
  web_socket_channel:
1069
1181
  dependency: transitive
1070
1182
  description:
1071
1183
  name: web_socket_channel
1072
- sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b
1184
+ sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8
1073
1185
  url: "https://pub.dev"
1074
1186
  source: hosted
1075
- version: "2.4.0"
1187
+ version: "3.0.3"
1076
1188
  webdriver:
1077
1189
  dependency: transitive
1078
1190
  description:
1079
1191
  name: webdriver
1080
- sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e"
1192
+ sha256: "2f3a14ca026957870cfd9c635b83507e0e51d8091568e90129fbf805aba7cade"
1081
1193
  url: "https://pub.dev"
1082
1194
  source: hosted
1083
- version: "3.0.3"
1195
+ version: "3.1.0"
1084
1196
  webkit_inspection_protocol:
1085
1197
  dependency: transitive
1086
1198
  description:
1087
1199
  name: webkit_inspection_protocol
1088
- sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d"
1200
+ sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
1089
1201
  url: "https://pub.dev"
1090
1202
  source: hosted
1091
- version: "1.2.0"
1203
+ version: "1.2.1"
1092
1204
  webview_flutter:
1093
1205
  dependency: "direct main"
1094
1206
  description:
1095
1207
  name: webview_flutter
1096
- sha256: "25e1b6e839e8cbfbd708abc6f85ed09d1727e24e08e08c6b8590d7c65c9a8932"
1208
+ sha256: a3da219916aba44947d3a5478b1927876a09781174b5a2b67fa5be0555154bf9
1097
1209
  url: "https://pub.dev"
1098
1210
  source: hosted
1099
- version: "4.7.0"
1211
+ version: "4.13.1"
1100
1212
  webview_flutter_android:
1101
1213
  dependency: transitive
1102
1214
  description:
1103
1215
  name: webview_flutter_android
1104
- sha256: f038ee2fae73b509dde1bc9d2c5a50ca92054282de17631a9a3d515883740934
1216
+ sha256: "2a03df01df2fd30b075d1e7f24c28aee593f2e5d5ac4c3c4283c5eda63717b24"
1105
1217
  url: "https://pub.dev"
1106
1218
  source: hosted
1107
- version: "3.16.0"
1219
+ version: "4.10.13"
1108
1220
  webview_flutter_platform_interface:
1109
1221
  dependency: transitive
1110
1222
  description:
1111
1223
  name: webview_flutter_platform_interface
1112
- sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d
1224
+ sha256: "63d26ee3aca7256a83ccb576a50272edd7cfc80573a4305caa98985feb493ee0"
1113
1225
  url: "https://pub.dev"
1114
1226
  source: hosted
1115
- version: "2.10.0"
1227
+ version: "2.14.0"
1116
1228
  webview_flutter_wkwebview:
1117
1229
  dependency: transitive
1118
1230
  description:
1119
1231
  name: webview_flutter_wkwebview
1120
- sha256: f12f8d8a99784b863e8b85e4a9a5e3cf1839d6803d2c0c3e0533a8f3c5a992a7
1232
+ sha256: "0d85e8bc5db9a7c49f6ff57cbeafc6cd8216ad9c9ebc70b2c4579d955698933a"
1121
1233
  url: "https://pub.dev"
1122
1234
  source: hosted
1123
- version: "3.13.0"
1235
+ version: "3.24.1"
1124
1236
  win32:
1125
1237
  dependency: transitive
1126
1238
  description:
1127
1239
  name: win32
1128
- sha256: f2add6fa510d3ae152903412227bda57d0d5a8da61d2c39c1fb022c9429a41c0
1240
+ sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e
1129
1241
  url: "https://pub.dev"
1130
1242
  source: hosted
1131
- version: "5.0.6"
1243
+ version: "5.15.0"
1132
1244
  xdg_directories:
1133
1245
  dependency: transitive
1134
1246
  description:
1135
1247
  name: xdg_directories
1136
- sha256: e0b1147eec179d3911f1f19b59206448f78195ca1d20514134e10641b7d7fbff
1248
+ sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
1137
1249
  url: "https://pub.dev"
1138
1250
  source: hosted
1139
- version: "1.0.1"
1251
+ version: "1.1.0"
1140
1252
  xml:
1141
1253
  dependency: transitive
1142
1254
  description:
1143
1255
  name: xml
1144
- sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84"
1256
+ sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025"
1145
1257
  url: "https://pub.dev"
1146
1258
  source: hosted
1147
- version: "6.3.0"
1259
+ version: "6.6.1"
1148
1260
  yaml:
1149
1261
  dependency: transitive
1150
1262
  description:
1151
1263
  name: yaml
1152
- sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
1264
+ sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
1153
1265
  url: "https://pub.dev"
1154
1266
  source: hosted
1155
- version: "3.1.2"
1267
+ version: "3.1.3"
1156
1268
  sdks:
1157
- dart: ">=3.2.3 <4.0.0"
1269
+ dart: ">=3.10.3 <4.0.0"
1158
- flutter: ">=3.16.6"
1270
+ flutter: ">=3.38.5"
pubspec.yaml CHANGED
@@ -14,32 +14,35 @@ dependencies:
14
14
  flutter_web_plugins:
15
15
  sdk: flutter
16
16
  intl: any
17
- path_provider: ^2.0.15
17
+ path_provider: ^2.1.5
18
- just_audio: ^0.9.34
18
+ just_audio: ^0.10.5
19
- shared_preferences: ^2.2.0
19
+ shared_preferences: ^2.5.4
20
- flutter_native_splash: ^2.3.1
20
+ flutter_native_splash: ^2.4.7
21
21
  flutter_swipe_detector: ^2.0.0
22
- cupertino_icons: ^1.0.5
22
+ cupertino_icons: ^1.0.8
23
23
  settings_ui: ^2.0.2
24
24
  get_storage: ^2.1.1
25
- share_plus: ^7.1.0
25
+ share_plus: ^12.0.1
26
- url_launcher: ^6.1.12
26
+ url_launcher: ^6.3.2
27
- package_info_plus: ^4.1.0
27
+ package_info_plus: ^9.0.0
28
- flutter_azure_tts: ^0.1.6
28
+ flutter_azure_tts: ^1.0.0
29
- http: ^0.13.6
29
+ http: ^1.6.0
30
- atoms_state: 0.0.2
30
+ atoms_state: ^0.0.2
31
- webview_flutter: ^4.7.0
31
+ webview_flutter: ^4.13.1
32
- app_review: ^2.1.1+1
32
+ app_review: ^3.0.0
33
33
 
34
34
  dev_dependencies:
35
35
  flutter_test:
36
36
  sdk: flutter
37
37
  integration_test:
38
38
  sdk: flutter
39
- flutter_lints: ^2.0.0
39
+ flutter_lints: ^6.0.0
40
- flutter_launcher_icons: ^0.13.1
40
+ flutter_launcher_icons: ^0.14.4
41
41
  test: ^1.24.3
42
+ build_runner: any
43
+ flutter_gen_runner: any
42
44
 
45
+ html: any
43
46
  flutter:
44
47
  generate: true
45
48
  uses-material-design: true
scripts/generate_book_names.dart CHANGED
@@ -67,7 +67,7 @@ final keys = [
67
67
  "secondJohn",
68
68
  "thirdJohn",
69
69
  "jude",
70
- "revelation"
70
+ "revelation",
71
71
  ];
72
72
 
73
73
  class CustomLocale {
@@ -78,7 +78,7 @@ class CustomLocale {
78
78
  final List<String> bookNames;
79
79
 
80
80
  const CustomLocale(this.languageCode, this.countryCode, this.name,
81
- this.localName, this.bookNames);
81
+ this.localName, this.bookNames,);
82
82
  }
83
83
 
84
84
  const locales = [
@@ -148,7 +148,7 @@ const locales = [
148
148
  "2 John",
149
149
  "3 John",
150
150
  "Jude",
151
- "Revelation"
151
+ "Revelation",
152
152
  ]),
153
153
  CustomLocale("kn", "IN", "Kannada", "", [
154
154
  "ಆದಿಕಾಂಡ",
@@ -216,7 +216,7 @@ const locales = [
216
216
  "2 ಯೋಹಾನನು",
217
217
  "3 ಯೋಹಾನನು",
218
218
  "ಯೂದನು",
219
- "ಪ್ರಕಟನೆ"
219
+ "ಪ್ರಕಟನೆ",
220
220
  ]),
221
221
  CustomLocale("ta", "IN", "Tamil", "", [
222
222
  "ஆதியாகமம்",
@@ -284,7 +284,7 @@ const locales = [
284
284
  "2 யோவான்",
285
285
  "3 யோவான்",
286
286
  "யூதா",
287
- "வெளி"
287
+ "வெளி",
288
288
  ]),
289
289
  CustomLocale("te", "IN", "Telugu", "", [
290
290
  "ఆదికాండము",
@@ -352,7 +352,7 @@ const locales = [
352
352
  "2 యోహాను",
353
353
  "3 యోహాను",
354
354
  "యూదా",
355
- "ప్రకటన గ్రంథము"
355
+ "ప్రకటన గ్రంథము",
356
356
  ]),
357
357
  CustomLocale("pa", "IN", "Punjabi", "", [
358
358
  "ਪੈਦਾਇਸ਼",
@@ -420,7 +420,7 @@ const locales = [
420
420
  "੨ ਯੂਹੰਨਾ",
421
421
  "੩ ਯੂਹੰਨਾ",
422
422
  "ਯਹੂ ਦਾਹ",
423
- "ਪਰਕਾਸ਼ ਦੀ ਪੋਥੀ"
423
+ "ਪਰਕਾਸ਼ ਦੀ ਪੋਥੀ",
424
424
  ]),
425
425
  CustomLocale("hi", "IN", "Hindi", "", [
426
426
  "उत्पत्ति",
@@ -488,7 +488,7 @@ const locales = [
488
488
  "2 यूहन्ना",
489
489
  "3 यूहन्ना",
490
490
  "यहूदा",
491
- "प्रकाशित वाक्य"
491
+ "प्रकाशित वाक्य",
492
492
  ]),
493
493
  CustomLocale("gu", "IN", "Gujarati", "", [
494
494
  "ઊત્પત્તિ",
@@ -556,7 +556,7 @@ const locales = [
556
556
  "2 યોહાનનો પત્ર",
557
557
  "3 યોહાનનો પત્ર",
558
558
  "યહૂદાનો પત્ર",
559
- "પ્રકટીકરણ"
559
+ "પ્રકટીકરણ",
560
560
  ]),
561
561
  CustomLocale("ml", "IN", "Malayalam", "", [
562
562
  "ഉല്പത്തി",
@@ -624,7 +624,7 @@ const locales = [
624
624
  "2 യോഹന്നാൻ",
625
625
  "3 യോഹന്നാൻ",
626
626
  "യൂദാ",
627
- "വെളിപ്പാട്"
627
+ "വെളിപ്പാട്",
628
628
  ]),
629
629
  CustomLocale("or", "IN", "Oriya", "", [
630
630
  "ଆଦି ପୁସ୍ତକ",
@@ -692,7 +692,7 @@ const locales = [
692
692
  "ଯୋହନଙ୍କ ଦିତୀୟ ପତ୍",
693
693
  "ଯୋହନଙ୍କ ତୃତୀୟ ପତ୍ର",
694
694
  "ଯିହୂଦାଙ୍କ ପତ୍ର",
695
- "ଯୋହନଙ୍କ ପ୍ରତି ପ୍ରକାଶିତ ବାକ୍ୟ"
695
+ "ଯୋହନଙ୍କ ପ୍ରତି ପ୍ରକାଶିତ ବାକ୍ୟ",
696
696
  ]),
697
697
  CustomLocale("bn", "IN", "Bengali", "", [
698
698
  "আদিপুস্তক ",
@@ -760,7 +760,7 @@ const locales = [
760
760
  "যোহনের ২য় পত্",
761
761
  "যোহনের ৩য় পত্",
762
762
  "যুদের পত্র",
763
- "पপ্রত্যাদেশ"
763
+ "पপ্রত্যাদেশ",
764
764
  ]),
765
765
  CustomLocale("ne", "NP", "Nepali", "", [
766
766
  "उत्पत्ति",
scripts/scrape.dart CHANGED
@@ -1,8 +1,8 @@
1
- import 'dart:convert';
1
+ import "dart:convert";
2
2
  import "dart:io";
3
- import 'package:http/http.dart' as http;
3
+ import "package:http/http.dart" as http;
4
- import 'package:html/parser.dart';
4
+ import "package:html/parser.dart";
5
- import 'package:only_bible_app/models.dart';
5
+ import "package:only_bible_app/models.dart";
6
6
 
7
7
  final booksNames = [
8
8
  "Genesis",
@@ -70,7 +70,7 @@ final booksNames = [
70
70
  "2 John",
71
71
  "3 John",
72
72
  "Jude",
73
- "Revelation"
73
+ "Revelation",
74
74
  ];
75
75
 
76
76
  class Heading {
@@ -79,8 +79,9 @@ class Heading {
79
79
 
80
80
  Heading(this.vIndex, this.text);
81
81
 
82
+ @override
82
83
  toString() {
83
- return "vIndex: ${vIndex}" + ", text: " + text;
84
+ return "vIndex: $vIndex, text: $text";
84
85
  }
85
86
  }
86
87
 
@@ -88,7 +89,7 @@ Future<List<Heading>> fetchPage(String book, int chapterIndex) async {
88
89
  print("fetching $book $chapterIndex \n");
89
90
  final res = await http.get(
90
91
  Uri.parse(
91
- "https://raw.githubusercontent.com/kenyonbowers/Bible-JSON/main/JSON/${}/1.json",
92
+ "https://raw.githubusercontent.com/kenyonbowers/Bible-JSON/main/JSON/$/1.json",
92
93
  ),
93
94
  );
94
95
  var document = parse(utf8.decode(res.bodyBytes, allowMalformed: true));
@@ -121,7 +122,7 @@ Future<List<Heading>> fetchPage(String book, int chapterIndex) async {
121
122
  }).toList();
122
123
  if (title != "") {
123
124
  if (els.isNotEmpty) {
124
- els.first.text = title + "<br>" + els.first.text;
125
+ els.first.text = "$title<br>${els.first.text}";
125
126
  } else {
126
127
  els.add(Heading(0, title));
127
128
  }
secrets.properties ADDED
@@ -0,0 +1,5 @@
1
+ KEY_ALIAS='option'
2
+ KEY_PASSWORD='somenone'
3
+ STORE_PASSWORD='somenone'
4
+ STORE_FILE='../keystore.jks'
5
+ SUBSCRIPTION_KEY=a9d2d78796924a2a9df2b6d5c1c4a576
test/widget_test.dart ADDED
@@ -0,0 +1,30 @@
1
+ // This is a basic Flutter widget test.
2
+ //
3
+ // To perform an interaction with a widget in your test, use the WidgetTester
4
+ // utility in the flutter_test package. For example, you can send tap and scroll
5
+ // gestures. You can also use WidgetTester to find child widgets in the widget
6
+ // tree, read text, and verify that the values of widget properties are correct.
7
+
8
+ import 'package:flutter/material.dart';
9
+ import 'package:flutter_test/flutter_test.dart';
10
+
11
+ import 'package:only_bible_app/main.dart';
12
+
13
+ void main() {
14
+ testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15
+ // Build our app and trigger a frame.
16
+ await tester.pumpWidget(const MyApp());
17
+
18
+ // Verify that our counter starts at 0.
19
+ expect(find.text('0'), findsOneWidget);
20
+ expect(find.text('1'), findsNothing);
21
+
22
+ // Tap the '+' icon and trigger a frame.
23
+ await tester.tap(find.byIcon(Icons.add));
24
+ await tester.pump();
25
+
26
+ // Verify that our counter has incremented.
27
+ expect(find.text('0'), findsNothing);
28
+ expect(find.text('1'), findsOneWidget);
29
+ });
30
+ }
web/favicon.png ADDED
Binary file
web/icons/Icon-192.png ADDED
Binary file
web/icons/Icon-512.png ADDED
Binary file
web/icons/Icon-maskable-192.png ADDED
Binary file
web/icons/Icon-maskable-512.png ADDED
Binary file
web/index.html ADDED
@@ -0,0 +1,46 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <!--
5
+ If you are serving your web app in a path other than the root, change the
6
+ href value below to reflect the base path you are serving from.
7
+
8
+ The path provided below has to start and end with a slash "/" in order for
9
+ it to work correctly.
10
+
11
+ For more details:
12
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
13
+
14
+ This is a placeholder for base href that will be replaced by the value of
15
+ the `--base-href` argument provided to `flutter build`.
16
+ -->
17
+ <base href="$FLUTTER_BASE_HREF">
18
+
19
+ <meta charset="UTF-8">
20
+ <meta content="IE=Edge" http-equiv="X-UA-Compatible">
21
+ <meta name="description" content="A new Flutter project.">
22
+
23
+ <!-- iOS meta tags & icons -->
24
+ <meta name="mobile-web-app-capable" content="yes">
25
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
26
+ <meta name="apple-mobile-web-app-title" content="only_bible_app">
27
+ <link rel="apple-touch-icon" href="icons/Icon-192.png">
28
+
29
+ <!-- Favicon -->
30
+ <link rel="icon" type="image/png" href="favicon.png"/>
31
+
32
+ <title>only_bible_app</title>
33
+ <link rel="manifest" href="manifest.json">
34
+ </head>
35
+ <body>
36
+ <!--
37
+ You can customize the "flutter_bootstrap.js" script.
38
+ This is useful to provide a custom configuration to the Flutter loader
39
+ or to give the user feedback during the initialization process.
40
+
41
+ For more details:
42
+ * https://docs.flutter.dev/platform-integration/web/initialization
43
+ -->
44
+ <script src="flutter_bootstrap.js" async></script>
45
+ </body>
46
+ </html>
web/manifest.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "only_bible_app",
3
+ "short_name": "only_bible_app",
4
+ "start_url": ".",
5
+ "display": "standalone",
6
+ "background_color": "#0175C2",
7
+ "theme_color": "#0175C2",
8
+ "description": "A new Flutter project.",
9
+ "orientation": "portrait-primary",
10
+ "prefer_related_applications": false,
11
+ "icons": [
12
+ {
13
+ "src": "icons/Icon-192.png",
14
+ "sizes": "192x192",
15
+ "type": "image/png"
16
+ },
17
+ {
18
+ "src": "icons/Icon-512.png",
19
+ "sizes": "512x512",
20
+ "type": "image/png"
21
+ },
22
+ {
23
+ "src": "icons/Icon-maskable-192.png",
24
+ "sizes": "192x192",
25
+ "type": "image/png",
26
+ "purpose": "maskable"
27
+ },
28
+ {
29
+ "src": "icons/Icon-maskable-512.png",
30
+ "sizes": "512x512",
31
+ "type": "image/png",
32
+ "purpose": "maskable"
33
+ }
34
+ ]
35
+ }
windows/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ flutter/ephemeral/
2
+
3
+ # Visual Studio user-specific files.
4
+ *.suo
5
+ *.user
6
+ *.userosscache
7
+ *.sln.docstates
8
+
9
+ # Visual Studio build-related files.
10
+ x64/
11
+ x86/
12
+
13
+ # Visual Studio cache files
14
+ # files ending in .cache can be ignored
15
+ *.[Cc]ache
16
+ # but keep track of directories ending in .cache
17
+ !*.[Cc]ache/
windows/CMakeLists.txt ADDED
@@ -0,0 +1,108 @@
1
+ # Project-level configuration.
2
+ cmake_minimum_required(VERSION 3.14)
3
+ project(only_bible_app LANGUAGES CXX)
4
+
5
+ # The name of the executable created for the application. Change this to change
6
+ # the on-disk name of your application.
7
+ set(BINARY_NAME "only_bible_app")
8
+
9
+ # Explicitly opt in to modern CMake behaviors to avoid warnings with recent
10
+ # versions of CMake.
11
+ cmake_policy(VERSION 3.14...3.25)
12
+
13
+ # Define build configuration option.
14
+ get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
15
+ if(IS_MULTICONFIG)
16
+ set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release"
17
+ CACHE STRING "" FORCE)
18
+ else()
19
+ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
20
+ set(CMAKE_BUILD_TYPE "Debug" CACHE
21
+ STRING "Flutter build mode" FORCE)
22
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
23
+ "Debug" "Profile" "Release")
24
+ endif()
25
+ endif()
26
+ # Define settings for the Profile build mode.
27
+ set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
28
+ set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
29
+ set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}")
30
+ set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}")
31
+
32
+ # Use Unicode for all projects.
33
+ add_definitions(-DUNICODE -D_UNICODE)
34
+
35
+ # Compilation settings that should be applied to most targets.
36
+ #
37
+ # Be cautious about adding new options here, as plugins use this function by
38
+ # default. In most cases, you should add new options to specific targets instead
39
+ # of modifying this function.
40
+ function(APPLY_STANDARD_SETTINGS TARGET)
41
+ target_compile_features(${TARGET} PUBLIC cxx_std_17)
42
+ target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100")
43
+ target_compile_options(${TARGET} PRIVATE /EHsc)
44
+ target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0")
45
+ target_compile_definitions(${TARGET} PRIVATE "$<$<CONFIG:Debug>:_DEBUG>")
46
+ endfunction()
47
+
48
+ # Flutter library and tool build rules.
49
+ set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
50
+ add_subdirectory(${FLUTTER_MANAGED_DIR})
51
+
52
+ # Application build; see runner/CMakeLists.txt.
53
+ add_subdirectory("runner")
54
+
55
+
56
+ # Generated plugin build rules, which manage building the plugins and adding
57
+ # them to the application.
58
+ include(flutter/generated_plugins.cmake)
59
+
60
+
61
+ # === Installation ===
62
+ # Support files are copied into place next to the executable, so that it can
63
+ # run in place. This is done instead of making a separate bundle (as on Linux)
64
+ # so that building and running from within Visual Studio will work.
65
+ set(BUILD_BUNDLE_DIR "$<TARGET_FILE_DIR:${BINARY_NAME}>")
66
+ # Make the "install" step default, as it's required to run.
67
+ set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
68
+ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
69
+ set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
70
+ endif()
71
+
72
+ set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")
73
+ set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}")
74
+
75
+ install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
76
+ COMPONENT Runtime)
77
+
78
+ install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
79
+ COMPONENT Runtime)
80
+
81
+ install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
82
+ COMPONENT Runtime)
83
+
84
+ if(PLUGIN_BUNDLED_LIBRARIES)
85
+ install(FILES "${PLUGIN_BUNDLED_LIBRARIES}"
86
+ DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
87
+ COMPONENT Runtime)
88
+ endif()
89
+
90
+ # Copy the native assets provided by the build.dart from all packages.
91
+ set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/")
92
+ install(DIRECTORY "${NATIVE_ASSETS_DIR}"
93
+ DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
94
+ COMPONENT Runtime)
95
+
96
+ # Fully re-copy the assets directory on each build to avoid having stale files
97
+ # from a previous install.
98
+ set(FLUTTER_ASSET_DIR_NAME "flutter_assets")
99
+ install(CODE "
100
+ file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")
101
+ " COMPONENT Runtime)
102
+ install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"
103
+ DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)
104
+
105
+ # Install the AOT library on non-Debug builds only.
106
+ install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
107
+ CONFIGURATIONS Profile;Release
108
+ COMPONENT Runtime)
windows/flutter/CMakeLists.txt ADDED
@@ -0,0 +1,109 @@
1
+ # This file controls Flutter-level build steps. It should not be edited.
2
+ cmake_minimum_required(VERSION 3.14)
3
+
4
+ set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
5
+
6
+ # Configuration provided via flutter tool.
7
+ include(${EPHEMERAL_DIR}/generated_config.cmake)
8
+
9
+ # TODO: Move the rest of this into files in ephemeral. See
10
+ # https://github.com/flutter/flutter/issues/57146.
11
+ set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")
12
+
13
+ # Set fallback configurations for older versions of the flutter tool.
14
+ if (NOT DEFINED FLUTTER_TARGET_PLATFORM)
15
+ set(FLUTTER_TARGET_PLATFORM "windows-x64")
16
+ endif()
17
+
18
+ # === Flutter Library ===
19
+ set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll")
20
+
21
+ # Published to parent scope for install step.
22
+ set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)
23
+ set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE)
24
+ set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE)
25
+ set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE)
26
+
27
+ list(APPEND FLUTTER_LIBRARY_HEADERS
28
+ "flutter_export.h"
29
+ "flutter_windows.h"
30
+ "flutter_messenger.h"
31
+ "flutter_plugin_registrar.h"
32
+ "flutter_texture_registrar.h"
33
+ )
34
+ list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/")
35
+ add_library(flutter INTERFACE)
36
+ target_include_directories(flutter INTERFACE
37
+ "${EPHEMERAL_DIR}"
38
+ )
39
+ target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib")
40
+ add_dependencies(flutter flutter_assemble)
41
+
42
+ # === Wrapper ===
43
+ list(APPEND CPP_WRAPPER_SOURCES_CORE
44
+ "core_implementations.cc"
45
+ "standard_codec.cc"
46
+ )
47
+ list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/")
48
+ list(APPEND CPP_WRAPPER_SOURCES_PLUGIN
49
+ "plugin_registrar.cc"
50
+ )
51
+ list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/")
52
+ list(APPEND CPP_WRAPPER_SOURCES_APP
53
+ "flutter_engine.cc"
54
+ "flutter_view_controller.cc"
55
+ )
56
+ list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/")
57
+
58
+ # Wrapper sources needed for a plugin.
59
+ add_library(flutter_wrapper_plugin STATIC
60
+ ${CPP_WRAPPER_SOURCES_CORE}
61
+ ${CPP_WRAPPER_SOURCES_PLUGIN}
62
+ )
63
+ apply_standard_settings(flutter_wrapper_plugin)
64
+ set_target_properties(flutter_wrapper_plugin PROPERTIES
65
+ POSITION_INDEPENDENT_CODE ON)
66
+ set_target_properties(flutter_wrapper_plugin PROPERTIES
67
+ CXX_VISIBILITY_PRESET hidden)
68
+ target_link_libraries(flutter_wrapper_plugin PUBLIC flutter)
69
+ target_include_directories(flutter_wrapper_plugin PUBLIC
70
+ "${WRAPPER_ROOT}/include"
71
+ )
72
+ add_dependencies(flutter_wrapper_plugin flutter_assemble)
73
+
74
+ # Wrapper sources needed for the runner.
75
+ add_library(flutter_wrapper_app STATIC
76
+ ${CPP_WRAPPER_SOURCES_CORE}
77
+ ${CPP_WRAPPER_SOURCES_APP}
78
+ )
79
+ apply_standard_settings(flutter_wrapper_app)
80
+ target_link_libraries(flutter_wrapper_app PUBLIC flutter)
81
+ target_include_directories(flutter_wrapper_app PUBLIC
82
+ "${WRAPPER_ROOT}/include"
83
+ )
84
+ add_dependencies(flutter_wrapper_app flutter_assemble)
85
+
86
+ # === Flutter tool backend ===
87
+ # _phony_ is a non-existent file to force this command to run every time,
88
+ # since currently there's no way to get a full input/output list from the
89
+ # flutter tool.
90
+ set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_")
91
+ set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE)
92
+ add_custom_command(
93
+ OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}
94
+ ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN}
95
+ ${CPP_WRAPPER_SOURCES_APP}
96
+ ${PHONY_OUTPUT}
97
+ COMMAND ${CMAKE_COMMAND} -E env
98
+ ${FLUTTER_TOOL_ENVIRONMENT}
99
+ "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat"
100
+ ${FLUTTER_TARGET_PLATFORM} $<CONFIG>
101
+ VERBATIM
102
+ )
103
+ add_custom_target(flutter_assemble DEPENDS
104
+ "${FLUTTER_LIBRARY}"
105
+ ${FLUTTER_LIBRARY_HEADERS}
106
+ ${CPP_WRAPPER_SOURCES_CORE}
107
+ ${CPP_WRAPPER_SOURCES_PLUGIN}
108
+ ${CPP_WRAPPER_SOURCES_APP}
109
+ )
windows/flutter/generated_plugin_registrant.cc ADDED
@@ -0,0 +1,17 @@
1
+ //
2
+ // Generated file. Do not edit.
3
+ //
4
+
5
+ // clang-format off
6
+
7
+ #include "generated_plugin_registrant.h"
8
+
9
+ #include <share_plus/share_plus_windows_plugin_c_api.h>
10
+ #include <url_launcher_windows/url_launcher_windows.h>
11
+
12
+ void RegisterPlugins(flutter::PluginRegistry* registry) {
13
+ SharePlusWindowsPluginCApiRegisterWithRegistrar(
14
+ registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
15
+ UrlLauncherWindowsRegisterWithRegistrar(
16
+ registry->GetRegistrarForPlugin("UrlLauncherWindows"));
17
+ }
windows/flutter/generated_plugin_registrant.h ADDED
@@ -0,0 +1,15 @@
1
+ //
2
+ // Generated file. Do not edit.
3
+ //
4
+
5
+ // clang-format off
6
+
7
+ #ifndef GENERATED_PLUGIN_REGISTRANT_
8
+ #define GENERATED_PLUGIN_REGISTRANT_
9
+
10
+ #include <flutter/plugin_registry.h>
11
+
12
+ // Registers Flutter plugins.
13
+ void RegisterPlugins(flutter::PluginRegistry* registry);
14
+
15
+ #endif // GENERATED_PLUGIN_REGISTRANT_
windows/flutter/generated_plugins.cmake ADDED
@@ -0,0 +1,25 @@
1
+ #
2
+ # Generated file, do not edit.
3
+ #
4
+
5
+ list(APPEND FLUTTER_PLUGIN_LIST
6
+ share_plus
7
+ url_launcher_windows
8
+ )
9
+
10
+ list(APPEND FLUTTER_FFI_PLUGIN_LIST
11
+ )
12
+
13
+ set(PLUGIN_BUNDLED_LIBRARIES)
14
+
15
+ foreach(plugin ${FLUTTER_PLUGIN_LIST})
16
+ add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})
17
+ target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
18
+ list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
19
+ list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
20
+ endforeach(plugin)
21
+
22
+ foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
23
+ add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
24
+ list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
25
+ endforeach(ffi_plugin)
windows/runner/CMakeLists.txt ADDED
@@ -0,0 +1,40 @@
1
+ cmake_minimum_required(VERSION 3.14)
2
+ project(runner LANGUAGES CXX)
3
+
4
+ # Define the application target. To change its name, change BINARY_NAME in the
5
+ # top-level CMakeLists.txt, not the value here, or `flutter run` will no longer
6
+ # work.
7
+ #
8
+ # Any new source files that you add to the application should be added here.
9
+ add_executable(${BINARY_NAME} WIN32
10
+ "flutter_window.cpp"
11
+ "main.cpp"
12
+ "utils.cpp"
13
+ "win32_window.cpp"
14
+ "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
15
+ "Runner.rc"
16
+ "runner.exe.manifest"
17
+ )
18
+
19
+ # Apply the standard set of build settings. This can be removed for applications
20
+ # that need different build settings.
21
+ apply_standard_settings(${BINARY_NAME})
22
+
23
+ # Add preprocessor definitions for the build version.
24
+ target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"")
25
+ target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}")
26
+ target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}")
27
+ target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}")
28
+ target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}")
29
+
30
+ # Disable Windows macros that collide with C++ standard library functions.
31
+ target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX")
32
+
33
+ # Add dependency libraries and include directories. Add any application-specific
34
+ # dependencies here.
35
+ target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)
36
+ target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib")
37
+ target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
38
+
39
+ # Run the Flutter tool portions of the build. This must not be removed.
40
+ add_dependencies(${BINARY_NAME} flutter_assemble)
windows/runner/Runner.rc ADDED
@@ -0,0 +1,121 @@
1
+ // Microsoft Visual C++ generated resource script.
2
+ //
3
+ #pragma code_page(65001)
4
+ #include "resource.h"
5
+
6
+ #define APSTUDIO_READONLY_SYMBOLS
7
+ /////////////////////////////////////////////////////////////////////////////
8
+ //
9
+ // Generated from the TEXTINCLUDE 2 resource.
10
+ //
11
+ #include "winres.h"
12
+
13
+ /////////////////////////////////////////////////////////////////////////////
14
+ #undef APSTUDIO_READONLY_SYMBOLS
15
+
16
+ /////////////////////////////////////////////////////////////////////////////
17
+ // English (United States) resources
18
+
19
+ #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
20
+ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
21
+
22
+ #ifdef APSTUDIO_INVOKED
23
+ /////////////////////////////////////////////////////////////////////////////
24
+ //
25
+ // TEXTINCLUDE
26
+ //
27
+
28
+ 1 TEXTINCLUDE
29
+ BEGIN
30
+ "resource.h\0"
31
+ END
32
+
33
+ 2 TEXTINCLUDE
34
+ BEGIN
35
+ "#include ""winres.h""\r\n"
36
+ "\0"
37
+ END
38
+
39
+ 3 TEXTINCLUDE
40
+ BEGIN
41
+ "\r\n"
42
+ "\0"
43
+ END
44
+
45
+ #endif // APSTUDIO_INVOKED
46
+
47
+
48
+ /////////////////////////////////////////////////////////////////////////////
49
+ //
50
+ // Icon
51
+ //
52
+
53
+ // Icon with lowest ID value placed first to ensure application icon
54
+ // remains consistent on all systems.
55
+ IDI_APP_ICON ICON "resources\\app_icon.ico"
56
+
57
+
58
+ /////////////////////////////////////////////////////////////////////////////
59
+ //
60
+ // Version
61
+ //
62
+
63
+ #if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD)
64
+ #define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD
65
+ #else
66
+ #define VERSION_AS_NUMBER 1,0,0,0
67
+ #endif
68
+
69
+ #if defined(FLUTTER_VERSION)
70
+ #define VERSION_AS_STRING FLUTTER_VERSION
71
+ #else
72
+ #define VERSION_AS_STRING "1.0.0"
73
+ #endif
74
+
75
+ VS_VERSION_INFO VERSIONINFO
76
+ FILEVERSION VERSION_AS_NUMBER
77
+ PRODUCTVERSION VERSION_AS_NUMBER
78
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
79
+ #ifdef _DEBUG
80
+ FILEFLAGS VS_FF_DEBUG
81
+ #else
82
+ FILEFLAGS 0x0L
83
+ #endif
84
+ FILEOS VOS__WINDOWS32
85
+ FILETYPE VFT_APP
86
+ FILESUBTYPE 0x0L
87
+ BEGIN
88
+ BLOCK "StringFileInfo"
89
+ BEGIN
90
+ BLOCK "040904e4"
91
+ BEGIN
92
+ VALUE "CompanyName", "sh.pyros" "\0"
93
+ VALUE "FileDescription", "only_bible_app" "\0"
94
+ VALUE "FileVersion", VERSION_AS_STRING "\0"
95
+ VALUE "InternalName", "only_bible_app" "\0"
96
+ VALUE "LegalCopyright", "Copyright (C) 2026 sh.pyros. All rights reserved." "\0"
97
+ VALUE "OriginalFilename", "only_bible_app.exe" "\0"
98
+ VALUE "ProductName", "only_bible_app" "\0"
99
+ VALUE "ProductVersion", VERSION_AS_STRING "\0"
100
+ END
101
+ END
102
+ BLOCK "VarFileInfo"
103
+ BEGIN
104
+ VALUE "Translation", 0x409, 1252
105
+ END
106
+ END
107
+
108
+ #endif // English (United States) resources
109
+ /////////////////////////////////////////////////////////////////////////////
110
+
111
+
112
+
113
+ #ifndef APSTUDIO_INVOKED
114
+ /////////////////////////////////////////////////////////////////////////////
115
+ //
116
+ // Generated from the TEXTINCLUDE 3 resource.
117
+ //
118
+
119
+
120
+ /////////////////////////////////////////////////////////////////////////////
121
+ #endif // not APSTUDIO_INVOKED
windows/runner/flutter_window.cpp ADDED
@@ -0,0 +1,71 @@
1
+ #include "flutter_window.h"
2
+
3
+ #include <optional>
4
+
5
+ #include "flutter/generated_plugin_registrant.h"
6
+
7
+ FlutterWindow::FlutterWindow(const flutter::DartProject& project)
8
+ : project_(project) {}
9
+
10
+ FlutterWindow::~FlutterWindow() {}
11
+
12
+ bool FlutterWindow::OnCreate() {
13
+ if (!Win32Window::OnCreate()) {
14
+ return false;
15
+ }
16
+
17
+ RECT frame = GetClientArea();
18
+
19
+ // The size here must match the window dimensions to avoid unnecessary surface
20
+ // creation / destruction in the startup path.
21
+ flutter_controller_ = std::make_unique<flutter::FlutterViewController>(
22
+ frame.right - frame.left, frame.bottom - frame.top, project_);
23
+ // Ensure that basic setup of the controller was successful.
24
+ if (!flutter_controller_->engine() || !flutter_controller_->view()) {
25
+ return false;
26
+ }
27
+ RegisterPlugins(flutter_controller_->engine());
28
+ SetChildContent(flutter_controller_->view()->GetNativeWindow());
29
+
30
+ flutter_controller_->engine()->SetNextFrameCallback([&]() {
31
+ this->Show();
32
+ });
33
+
34
+ // Flutter can complete the first frame before the "show window" callback is
35
+ // registered. The following call ensures a frame is pending to ensure the
36
+ // window is shown. It is a no-op if the first frame hasn't completed yet.
37
+ flutter_controller_->ForceRedraw();
38
+
39
+ return true;
40
+ }
41
+
42
+ void FlutterWindow::OnDestroy() {
43
+ if (flutter_controller_) {
44
+ flutter_controller_ = nullptr;
45
+ }
46
+
47
+ Win32Window::OnDestroy();
48
+ }
49
+
50
+ LRESULT
51
+ FlutterWindow::MessageHandler(HWND hwnd, UINT const message,
52
+ WPARAM const wparam,
53
+ LPARAM const lparam) noexcept {
54
+ // Give Flutter, including plugins, an opportunity to handle window messages.
55
+ if (flutter_controller_) {
56
+ std::optional<LRESULT> result =
57
+ flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam,
58
+ lparam);
59
+ if (result) {
60
+ return *result;
61
+ }
62
+ }
63
+
64
+ switch (message) {
65
+ case WM_FONTCHANGE:
66
+ flutter_controller_->engine()->ReloadSystemFonts();
67
+ break;
68
+ }
69
+
70
+ return Win32Window::MessageHandler(hwnd, message, wparam, lparam);
71
+ }
windows/runner/flutter_window.h ADDED
@@ -0,0 +1,33 @@
1
+ #ifndef RUNNER_FLUTTER_WINDOW_H_
2
+ #define RUNNER_FLUTTER_WINDOW_H_
3
+
4
+ #include <flutter/dart_project.h>
5
+ #include <flutter/flutter_view_controller.h>
6
+
7
+ #include <memory>
8
+
9
+ #include "win32_window.h"
10
+
11
+ // A window that does nothing but host a Flutter view.
12
+ class FlutterWindow : public Win32Window {
13
+ public:
14
+ // Creates a new FlutterWindow hosting a Flutter view running |project|.
15
+ explicit FlutterWindow(const flutter::DartProject& project);
16
+ virtual ~FlutterWindow();
17
+
18
+ protected:
19
+ // Win32Window:
20
+ bool OnCreate() override;
21
+ void OnDestroy() override;
22
+ LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam,
23
+ LPARAM const lparam) noexcept override;
24
+
25
+ private:
26
+ // The project to run.
27
+ flutter::DartProject project_;
28
+
29
+ // The Flutter instance hosted by this window.
30
+ std::unique_ptr<flutter::FlutterViewController> flutter_controller_;
31
+ };
32
+
33
+ #endif // RUNNER_FLUTTER_WINDOW_H_
windows/runner/main.cpp ADDED
@@ -0,0 +1,43 @@
1
+ #include <flutter/dart_project.h>
2
+ #include <flutter/flutter_view_controller.h>
3
+ #include <windows.h>
4
+
5
+ #include "flutter_window.h"
6
+ #include "utils.h"
7
+
8
+ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
9
+ _In_ wchar_t *command_line, _In_ int show_command) {
10
+ // Attach to console when present (e.g., 'flutter run') or create a
11
+ // new console when running with a debugger.
12
+ if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) {
13
+ CreateAndAttachConsole();
14
+ }
15
+
16
+ // Initialize COM, so that it is available for use in the library and/or
17
+ // plugins.
18
+ ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);
19
+
20
+ flutter::DartProject project(L"data");
21
+
22
+ std::vector<std::string> command_line_arguments =
23
+ GetCommandLineArguments();
24
+
25
+ project.set_dart_entrypoint_arguments(std::move(command_line_arguments));
26
+
27
+ FlutterWindow window(project);
28
+ Win32Window::Point origin(10, 10);
29
+ Win32Window::Size size(1280, 720);
30
+ if (!window.Create(L"only_bible_app", origin, size)) {
31
+ return EXIT_FAILURE;
32
+ }
33
+ window.SetQuitOnClose(true);
34
+
35
+ ::MSG msg;
36
+ while (::GetMessage(&msg, nullptr, 0, 0)) {
37
+ ::TranslateMessage(&msg);
38
+ ::DispatchMessage(&msg);
39
+ }
40
+
41
+ ::CoUninitialize();
42
+ return EXIT_SUCCESS;
43
+ }
windows/runner/resource.h ADDED
@@ -0,0 +1,16 @@
1
+ //{{NO_DEPENDENCIES}}
2
+ // Microsoft Visual C++ generated include file.
3
+ // Used by Runner.rc
4
+ //
5
+ #define IDI_APP_ICON 101
6
+
7
+ // Next default values for new objects
8
+ //
9
+ #ifdef APSTUDIO_INVOKED
10
+ #ifndef APSTUDIO_READONLY_SYMBOLS
11
+ #define _APS_NEXT_RESOURCE_VALUE 102
12
+ #define _APS_NEXT_COMMAND_VALUE 40001
13
+ #define _APS_NEXT_CONTROL_VALUE 1001
14
+ #define _APS_NEXT_SYMED_VALUE 101
15
+ #endif
16
+ #endif
windows/runner/resources/app_icon.ico ADDED
Binary file
windows/runner/runner.exe.manifest ADDED
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
3
+ <application xmlns="urn:schemas-microsoft-com:asm.v3">
4
+ <windowsSettings>
5
+ <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
6
+ </windowsSettings>
7
+ </application>
8
+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
9
+ <application>
10
+ <!-- Windows 10 and Windows 11 -->
11
+ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
12
+ </application>
13
+ </compatibility>
14
+ </assembly>
windows/runner/utils.cpp ADDED
@@ -0,0 +1,65 @@
1
+ #include "utils.h"
2
+
3
+ #include <flutter_windows.h>
4
+ #include <io.h>
5
+ #include <stdio.h>
6
+ #include <windows.h>
7
+
8
+ #include <iostream>
9
+
10
+ void CreateAndAttachConsole() {
11
+ if (::AllocConsole()) {
12
+ FILE *unused;
13
+ if (freopen_s(&unused, "CONOUT$", "w", stdout)) {
14
+ _dup2(_fileno(stdout), 1);
15
+ }
16
+ if (freopen_s(&unused, "CONOUT$", "w", stderr)) {
17
+ _dup2(_fileno(stdout), 2);
18
+ }
19
+ std::ios::sync_with_stdio();
20
+ FlutterDesktopResyncOutputStreams();
21
+ }
22
+ }
23
+
24
+ std::vector<std::string> GetCommandLineArguments() {
25
+ // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use.
26
+ int argc;
27
+ wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc);
28
+ if (argv == nullptr) {
29
+ return std::vector<std::string>();
30
+ }
31
+
32
+ std::vector<std::string> command_line_arguments;
33
+
34
+ // Skip the first argument as it's the binary name.
35
+ for (int i = 1; i < argc; i++) {
36
+ command_line_arguments.push_back(Utf8FromUtf16(argv[i]));
37
+ }
38
+
39
+ ::LocalFree(argv);
40
+
41
+ return command_line_arguments;
42
+ }
43
+
44
+ std::string Utf8FromUtf16(const wchar_t* utf16_string) {
45
+ if (utf16_string == nullptr) {
46
+ return std::string();
47
+ }
48
+ unsigned int target_length = ::WideCharToMultiByte(
49
+ CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
50
+ -1, nullptr, 0, nullptr, nullptr)
51
+ -1; // remove the trailing null character
52
+ int input_length = (int)wcslen(utf16_string);
53
+ std::string utf8_string;
54
+ if (target_length == 0 || target_length > utf8_string.max_size()) {
55
+ return utf8_string;
56
+ }
57
+ utf8_string.resize(target_length);
58
+ int converted_length = ::WideCharToMultiByte(
59
+ CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
60
+ input_length, utf8_string.data(), target_length, nullptr, nullptr);
61
+ if (converted_length == 0) {
62
+ return std::string();
63
+ }
64
+ return utf8_string;
65
+ }
windows/runner/utils.h ADDED
@@ -0,0 +1,19 @@
1
+ #ifndef RUNNER_UTILS_H_
2
+ #define RUNNER_UTILS_H_
3
+
4
+ #include <string>
5
+ #include <vector>
6
+
7
+ // Creates a console for the process, and redirects stdout and stderr to
8
+ // it for both the runner and the Flutter library.
9
+ void CreateAndAttachConsole();
10
+
11
+ // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string
12
+ // encoded in UTF-8. Returns an empty std::string on failure.
13
+ std::string Utf8FromUtf16(const wchar_t* utf16_string);
14
+
15
+ // Gets the command line arguments passed in as a std::vector<std::string>,
16
+ // encoded in UTF-8. Returns an empty std::vector<std::string> on failure.
17
+ std::vector<std::string> GetCommandLineArguments();
18
+
19
+ #endif // RUNNER_UTILS_H_
windows/runner/win32_window.cpp ADDED
@@ -0,0 +1,288 @@
1
+ #include "win32_window.h"
2
+
3
+ #include <dwmapi.h>
4
+ #include <flutter_windows.h>
5
+
6
+ #include "resource.h"
7
+
8
+ namespace {
9
+
10
+ /// Window attribute that enables dark mode window decorations.
11
+ ///
12
+ /// Redefined in case the developer's machine has a Windows SDK older than
13
+ /// version 10.0.22000.0.
14
+ /// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute
15
+ #ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
16
+ #define DWMWA_USE_IMMERSIVE_DARK_MODE 20
17
+ #endif
18
+
19
+ constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW";
20
+
21
+ /// Registry key for app theme preference.
22
+ ///
23
+ /// A value of 0 indicates apps should use dark mode. A non-zero or missing
24
+ /// value indicates apps should use light mode.
25
+ constexpr const wchar_t kGetPreferredBrightnessRegKey[] =
26
+ L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize";
27
+ constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme";
28
+
29
+ // The number of Win32Window objects that currently exist.
30
+ static int g_active_window_count = 0;
31
+
32
+ using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd);
33
+
34
+ // Scale helper to convert logical scaler values to physical using passed in
35
+ // scale factor
36
+ int Scale(int source, double scale_factor) {
37
+ return static_cast<int>(source * scale_factor);
38
+ }
39
+
40
+ // Dynamically loads the |EnableNonClientDpiScaling| from the User32 module.
41
+ // This API is only needed for PerMonitor V1 awareness mode.
42
+ void EnableFullDpiSupportIfAvailable(HWND hwnd) {
43
+ HMODULE user32_module = LoadLibraryA("User32.dll");
44
+ if (!user32_module) {
45
+ return;
46
+ }
47
+ auto enable_non_client_dpi_scaling =
48
+ reinterpret_cast<EnableNonClientDpiScaling*>(
49
+ GetProcAddress(user32_module, "EnableNonClientDpiScaling"));
50
+ if (enable_non_client_dpi_scaling != nullptr) {
51
+ enable_non_client_dpi_scaling(hwnd);
52
+ }
53
+ FreeLibrary(user32_module);
54
+ }
55
+
56
+ } // namespace
57
+
58
+ // Manages the Win32Window's window class registration.
59
+ class WindowClassRegistrar {
60
+ public:
61
+ ~WindowClassRegistrar() = default;
62
+
63
+ // Returns the singleton registrar instance.
64
+ static WindowClassRegistrar* GetInstance() {
65
+ if (!instance_) {
66
+ instance_ = new WindowClassRegistrar();
67
+ }
68
+ return instance_;
69
+ }
70
+
71
+ // Returns the name of the window class, registering the class if it hasn't
72
+ // previously been registered.
73
+ const wchar_t* GetWindowClass();
74
+
75
+ // Unregisters the window class. Should only be called if there are no
76
+ // instances of the window.
77
+ void UnregisterWindowClass();
78
+
79
+ private:
80
+ WindowClassRegistrar() = default;
81
+
82
+ static WindowClassRegistrar* instance_;
83
+
84
+ bool class_registered_ = false;
85
+ };
86
+
87
+ WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr;
88
+
89
+ const wchar_t* WindowClassRegistrar::GetWindowClass() {
90
+ if (!class_registered_) {
91
+ WNDCLASS window_class{};
92
+ window_class.hCursor = LoadCursor(nullptr, IDC_ARROW);
93
+ window_class.lpszClassName = kWindowClassName;
94
+ window_class.style = CS_HREDRAW | CS_VREDRAW;
95
+ window_class.cbClsExtra = 0;
96
+ window_class.cbWndExtra = 0;
97
+ window_class.hInstance = GetModuleHandle(nullptr);
98
+ window_class.hIcon =
99
+ LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON));
100
+ window_class.hbrBackground = 0;
101
+ window_class.lpszMenuName = nullptr;
102
+ window_class.lpfnWndProc = Win32Window::WndProc;
103
+ RegisterClass(&window_class);
104
+ class_registered_ = true;
105
+ }
106
+ return kWindowClassName;
107
+ }
108
+
109
+ void WindowClassRegistrar::UnregisterWindowClass() {
110
+ UnregisterClass(kWindowClassName, nullptr);
111
+ class_registered_ = false;
112
+ }
113
+
114
+ Win32Window::Win32Window() {
115
+ ++g_active_window_count;
116
+ }
117
+
118
+ Win32Window::~Win32Window() {
119
+ --g_active_window_count;
120
+ Destroy();
121
+ }
122
+
123
+ bool Win32Window::Create(const std::wstring& title,
124
+ const Point& origin,
125
+ const Size& size) {
126
+ Destroy();
127
+
128
+ const wchar_t* window_class =
129
+ WindowClassRegistrar::GetInstance()->GetWindowClass();
130
+
131
+ const POINT target_point = {static_cast<LONG>(origin.x),
132
+ static_cast<LONG>(origin.y)};
133
+ HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST);
134
+ UINT dpi = FlutterDesktopGetDpiForMonitor(monitor);
135
+ double scale_factor = dpi / 96.0;
136
+
137
+ HWND window = CreateWindow(
138
+ window_class, title.c_str(), WS_OVERLAPPEDWINDOW,
139
+ Scale(origin.x, scale_factor), Scale(origin.y, scale_factor),
140
+ Scale(size.width, scale_factor), Scale(size.height, scale_factor),
141
+ nullptr, nullptr, GetModuleHandle(nullptr), this);
142
+
143
+ if (!window) {
144
+ return false;
145
+ }
146
+
147
+ UpdateTheme(window);
148
+
149
+ return OnCreate();
150
+ }
151
+
152
+ bool Win32Window::Show() {
153
+ return ShowWindow(window_handle_, SW_SHOWNORMAL);
154
+ }
155
+
156
+ // static
157
+ LRESULT CALLBACK Win32Window::WndProc(HWND const window,
158
+ UINT const message,
159
+ WPARAM const wparam,
160
+ LPARAM const lparam) noexcept {
161
+ if (message == WM_NCCREATE) {
162
+ auto window_struct = reinterpret_cast<CREATESTRUCT*>(lparam);
163
+ SetWindowLongPtr(window, GWLP_USERDATA,
164
+ reinterpret_cast<LONG_PTR>(window_struct->lpCreateParams));
165
+
166
+ auto that = static_cast<Win32Window*>(window_struct->lpCreateParams);
167
+ EnableFullDpiSupportIfAvailable(window);
168
+ that->window_handle_ = window;
169
+ } else if (Win32Window* that = GetThisFromHandle(window)) {
170
+ return that->MessageHandler(window, message, wparam, lparam);
171
+ }
172
+
173
+ return DefWindowProc(window, message, wparam, lparam);
174
+ }
175
+
176
+ LRESULT
177
+ Win32Window::MessageHandler(HWND hwnd,
178
+ UINT const message,
179
+ WPARAM const wparam,
180
+ LPARAM const lparam) noexcept {
181
+ switch (message) {
182
+ case WM_DESTROY:
183
+ window_handle_ = nullptr;
184
+ Destroy();
185
+ if (quit_on_close_) {
186
+ PostQuitMessage(0);
187
+ }
188
+ return 0;
189
+
190
+ case WM_DPICHANGED: {
191
+ auto newRectSize = reinterpret_cast<RECT*>(lparam);
192
+ LONG newWidth = newRectSize->right - newRectSize->left;
193
+ LONG newHeight = newRectSize->bottom - newRectSize->top;
194
+
195
+ SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth,
196
+ newHeight, SWP_NOZORDER | SWP_NOACTIVATE);
197
+
198
+ return 0;
199
+ }
200
+ case WM_SIZE: {
201
+ RECT rect = GetClientArea();
202
+ if (child_content_ != nullptr) {
203
+ // Size and position the child window.
204
+ MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left,
205
+ rect.bottom - rect.top, TRUE);
206
+ }
207
+ return 0;
208
+ }
209
+
210
+ case WM_ACTIVATE:
211
+ if (child_content_ != nullptr) {
212
+ SetFocus(child_content_);
213
+ }
214
+ return 0;
215
+
216
+ case WM_DWMCOLORIZATIONCOLORCHANGED:
217
+ UpdateTheme(hwnd);
218
+ return 0;
219
+ }
220
+
221
+ return DefWindowProc(window_handle_, message, wparam, lparam);
222
+ }
223
+
224
+ void Win32Window::Destroy() {
225
+ OnDestroy();
226
+
227
+ if (window_handle_) {
228
+ DestroyWindow(window_handle_);
229
+ window_handle_ = nullptr;
230
+ }
231
+ if (g_active_window_count == 0) {
232
+ WindowClassRegistrar::GetInstance()->UnregisterWindowClass();
233
+ }
234
+ }
235
+
236
+ Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept {
237
+ return reinterpret_cast<Win32Window*>(
238
+ GetWindowLongPtr(window, GWLP_USERDATA));
239
+ }
240
+
241
+ void Win32Window::SetChildContent(HWND content) {
242
+ child_content_ = content;
243
+ SetParent(content, window_handle_);
244
+ RECT frame = GetClientArea();
245
+
246
+ MoveWindow(content, frame.left, frame.top, frame.right - frame.left,
247
+ frame.bottom - frame.top, true);
248
+
249
+ SetFocus(child_content_);
250
+ }
251
+
252
+ RECT Win32Window::GetClientArea() {
253
+ RECT frame;
254
+ GetClientRect(window_handle_, &frame);
255
+ return frame;
256
+ }
257
+
258
+ HWND Win32Window::GetHandle() {
259
+ return window_handle_;
260
+ }
261
+
262
+ void Win32Window::SetQuitOnClose(bool quit_on_close) {
263
+ quit_on_close_ = quit_on_close;
264
+ }
265
+
266
+ bool Win32Window::OnCreate() {
267
+ // No-op; provided for subclasses.
268
+ return true;
269
+ }
270
+
271
+ void Win32Window::OnDestroy() {
272
+ // No-op; provided for subclasses.
273
+ }
274
+
275
+ void Win32Window::UpdateTheme(HWND const window) {
276
+ DWORD light_mode;
277
+ DWORD light_mode_size = sizeof(light_mode);
278
+ LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey,
279
+ kGetPreferredBrightnessRegValue,
280
+ RRF_RT_REG_DWORD, nullptr, &light_mode,
281
+ &light_mode_size);
282
+
283
+ if (result == ERROR_SUCCESS) {
284
+ BOOL enable_dark_mode = light_mode == 0;
285
+ DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE,
286
+ &enable_dark_mode, sizeof(enable_dark_mode));
287
+ }
288
+ }
windows/runner/win32_window.h ADDED
@@ -0,0 +1,102 @@
1
+ #ifndef RUNNER_WIN32_WINDOW_H_
2
+ #define RUNNER_WIN32_WINDOW_H_
3
+
4
+ #include <windows.h>
5
+
6
+ #include <functional>
7
+ #include <memory>
8
+ #include <string>
9
+
10
+ // A class abstraction for a high DPI-aware Win32 Window. Intended to be
11
+ // inherited from by classes that wish to specialize with custom
12
+ // rendering and input handling
13
+ class Win32Window {
14
+ public:
15
+ struct Point {
16
+ unsigned int x;
17
+ unsigned int y;
18
+ Point(unsigned int x, unsigned int y) : x(x), y(y) {}
19
+ };
20
+
21
+ struct Size {
22
+ unsigned int width;
23
+ unsigned int height;
24
+ Size(unsigned int width, unsigned int height)
25
+ : width(width), height(height) {}
26
+ };
27
+
28
+ Win32Window();
29
+ virtual ~Win32Window();
30
+
31
+ // Creates a win32 window with |title| that is positioned and sized using
32
+ // |origin| and |size|. New windows are created on the default monitor. Window
33
+ // sizes are specified to the OS in physical pixels, hence to ensure a
34
+ // consistent size this function will scale the inputted width and height as
35
+ // as appropriate for the default monitor. The window is invisible until
36
+ // |Show| is called. Returns true if the window was created successfully.
37
+ bool Create(const std::wstring& title, const Point& origin, const Size& size);
38
+
39
+ // Show the current window. Returns true if the window was successfully shown.
40
+ bool Show();
41
+
42
+ // Release OS resources associated with window.
43
+ void Destroy();
44
+
45
+ // Inserts |content| into the window tree.
46
+ void SetChildContent(HWND content);
47
+
48
+ // Returns the backing Window handle to enable clients to set icon and other
49
+ // window properties. Returns nullptr if the window has been destroyed.
50
+ HWND GetHandle();
51
+
52
+ // If true, closing this window will quit the application.
53
+ void SetQuitOnClose(bool quit_on_close);
54
+
55
+ // Return a RECT representing the bounds of the current client area.
56
+ RECT GetClientArea();
57
+
58
+ protected:
59
+ // Processes and route salient window messages for mouse handling,
60
+ // size change and DPI. Delegates handling of these to member overloads that
61
+ // inheriting classes can handle.
62
+ virtual LRESULT MessageHandler(HWND window,
63
+ UINT const message,
64
+ WPARAM const wparam,
65
+ LPARAM const lparam) noexcept;
66
+
67
+ // Called when CreateAndShow is called, allowing subclass window-related
68
+ // setup. Subclasses should return false if setup fails.
69
+ virtual bool OnCreate();
70
+
71
+ // Called when Destroy is called.
72
+ virtual void OnDestroy();
73
+
74
+ private:
75
+ friend class WindowClassRegistrar;
76
+
77
+ // OS callback called by message pump. Handles the WM_NCCREATE message which
78
+ // is passed when the non-client area is being created and enables automatic
79
+ // non-client DPI scaling so that the non-client area automatically
80
+ // responds to changes in DPI. All other messages are handled by
81
+ // MessageHandler.
82
+ static LRESULT CALLBACK WndProc(HWND const window,
83
+ UINT const message,
84
+ WPARAM const wparam,
85
+ LPARAM const lparam) noexcept;
86
+
87
+ // Retrieves a class instance pointer for |window|
88
+ static Win32Window* GetThisFromHandle(HWND const window) noexcept;
89
+
90
+ // Update the window frame's theme to match the system theme.
91
+ static void UpdateTheme(HWND const window);
92
+
93
+ bool quit_on_close_ = false;
94
+
95
+ // window handle for top level window.
96
+ HWND window_handle_ = nullptr;
97
+
98
+ // window handle for hosted content.
99
+ HWND child_content_ = nullptr;
100
+ };
101
+
102
+ #endif // RUNNER_WIN32_WINDOW_H_