diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json index 1455258..ac65b28 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -3,409 +3,409 @@ "packages": [ { "name": "_fe_analyzer_shared", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-31.0.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/_fe_analyzer_shared-31.0.0", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "analyzer", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/analyzer-2.8.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-2.8.0", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "args", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/args-2.4.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.4.0", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "async", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/async-2.10.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.10.0", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "boolean_selector", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/boolean_selector-2.1.1", "packageUri": "lib/", "languageVersion": "2.17" }, { "name": "build", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build-2.0.3", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build-2.0.3", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "build_config", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_config-0.4.7", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_config-0.4.7", "packageUri": "lib/", "languageVersion": "2.11" }, { "name": "build_daemon", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_daemon-2.1.10", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_daemon-2.1.10", "packageUri": "lib/", "languageVersion": "2.11" }, { "name": "build_resolvers", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_resolvers-2.0.6", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_resolvers-2.0.6", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "build_runner", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_runner-1.12.2", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner-1.12.2", "packageUri": "lib/", "languageVersion": "2.11" }, { "name": "build_runner_core", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_runner_core-6.1.12", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner_core-6.1.12", "packageUri": "lib/", "languageVersion": "2.11" }, { "name": "built_collection", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/built_collection-5.1.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/built_collection-5.1.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "built_value", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/built_value-8.4.3", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/built_value-8.4.3", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "change_app_package_name", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/change_app_package_name-1.1.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/change_app_package_name-1.1.0", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "characters", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/characters-1.2.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/characters-1.2.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "checked_yaml", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/checked_yaml-2.0.2", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/checked_yaml-2.0.2", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "cli_util", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/cli_util-0.3.5", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/cli_util-0.3.5", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "clock", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/clock-1.1.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/clock-1.1.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "code_builder", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/code_builder-3.7.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/code_builder-3.7.0", "packageUri": "lib/", "languageVersion": "2.7" }, { "name": "collection", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/collection-1.17.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/collection-1.17.0", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "convert", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/convert-3.1.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/convert-3.1.1", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "crypto", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/crypto-3.0.2", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/crypto-3.0.2", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "dart_style", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/dart_style-2.2.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/dart_style-2.2.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "fake_async", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/fake_async-1.3.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/fake_async-1.3.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "file", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/file-6.1.4", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/file-6.1.4", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "fixnum", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/fixnum-1.1.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/fixnum-1.1.0", "packageUri": "lib/", "languageVersion": "2.19" }, { "name": "flutter", - "rootUri": "file:///Users/macbookpro/flutteroldversion/flutter/packages/flutter", + "rootUri": "file:///C:/Flutter_SDK/flutter/packages/flutter", "packageUri": "lib/", "languageVersion": "2.17" }, { "name": "flutter_lints", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/flutter_lints-2.0.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_lints-2.0.1", "packageUri": "lib/", "languageVersion": "2.17" }, { "name": "flutter_test", - "rootUri": "file:///Users/macbookpro/flutteroldversion/flutter/packages/flutter_test", + "rootUri": "file:///C:/Flutter_SDK/flutter/packages/flutter_test", "packageUri": "lib/", "languageVersion": "2.17" }, { "name": "glob", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/glob-2.1.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/glob-2.1.1", "packageUri": "lib/", "languageVersion": "2.15" }, { "name": "graphs", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/graphs-1.0.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/graphs-1.0.0", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "http_multi_server", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/http_multi_server-3.2.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/http_multi_server-3.2.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "http_parser", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/http_parser-4.0.2", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "io", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/io-1.0.4", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/io-1.0.4", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "js", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/js-0.6.5", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/js-0.6.5", "packageUri": "lib/", "languageVersion": "2.16" }, { "name": "json_annotation", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/json_annotation-4.6.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/json_annotation-4.6.0", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "json_serializable", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/json_serializable-6.3.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.3.1", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "lints", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/lints-2.0.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/lints-2.0.1", "packageUri": "lib/", "languageVersion": "2.17" }, { "name": "logging", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/logging-1.1.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/logging-1.1.1", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "matcher", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/matcher-0.12.13", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/matcher-0.12.13", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "material_color_utilities", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/material_color_utilities-0.2.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/material_color_utilities-0.2.0", "packageUri": "lib/", "languageVersion": "2.13" }, { "name": "meta", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/meta-1.8.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/meta-1.8.0", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "mime", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/mime-1.0.4", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/mime-1.0.4", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "package_config", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/package_config-2.1.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/package_config-2.1.0", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "path", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/path-1.8.2", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.8.2", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "pedantic", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pedantic-1.11.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pedantic-1.11.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "plugin_platform_interface", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.4", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/plugin_platform_interface-2.1.4", "packageUri": "lib/", "languageVersion": "2.17" }, { "name": "pool", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pool-1.5.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pool-1.5.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "pub_semver", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pub_semver-2.1.3", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pub_semver-2.1.3", "packageUri": "lib/", "languageVersion": "2.17" }, { "name": "pubspec_parse", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pubspec_parse-1.2.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pubspec_parse-1.2.1", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "shelf", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/shelf-1.4.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/shelf-1.4.0", "packageUri": "lib/", "languageVersion": "2.17" }, { "name": "shelf_web_socket", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/shelf_web_socket-1.0.3", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/shelf_web_socket-1.0.3", "packageUri": "lib/", "languageVersion": "2.17" }, { "name": "sky_engine", - "rootUri": "file:///Users/macbookpro/flutteroldversion/flutter/bin/cache/pkg/sky_engine", + "rootUri": "file:///C:/Flutter_SDK/flutter/bin/cache/pkg/sky_engine", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "source_gen", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/source_gen-1.0.5", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/source_gen-1.0.5", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "source_helper", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/source_helper-1.3.2", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/source_helper-1.3.2", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "source_span", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/source_span-1.9.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/source_span-1.9.1", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "stack_trace", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/stack_trace-1.11.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/stack_trace-1.11.0", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "stream_channel", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/stream_channel-2.1.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/stream_channel-2.1.1", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "stream_transform", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/stream_transform-2.1.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/stream_transform-2.1.0", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "string_scanner", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/string_scanner-1.2.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/string_scanner-1.2.0", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "term_glyph", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/term_glyph-1.2.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/term_glyph-1.2.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "test_api", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/test_api-0.4.16", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.4.16", "packageUri": "lib/", "languageVersion": "2.18" }, { "name": "timing", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/timing-1.0.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/timing-1.0.1", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "typed_data", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/typed_data-1.3.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.3.1", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "vector_math", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/vector_math-2.1.4", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/vector_math-2.1.4", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "watcher", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/watcher-1.0.2", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/watcher-1.0.2", "packageUri": "lib/", "languageVersion": "2.14" }, { "name": "web_socket_channel", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/web_socket_channel-2.3.0", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/web_socket_channel-2.3.0", "packageUri": "lib/", "languageVersion": "2.12" }, { "name": "yaml", - "rootUri": "file:///Users/macbookpro/.pub-cache/hosted/pub.dev/yaml-3.1.1", + "rootUri": "file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/yaml-3.1.1", "packageUri": "lib/", "languageVersion": "2.12" }, @@ -416,7 +416,7 @@ "languageVersion": "2.17" } ], - "generated": "2024-04-08T07:22:52.056049Z", + "generated": "2024-04-11T06:11:34.892808Z", "generator": "pub", "generatorVersion": "2.19.6" } diff --git a/.dart_tool/package_config_subset b/.dart_tool/package_config_subset index cc602fc..2573cd5 100644 --- a/.dart_tool/package_config_subset +++ b/.dart_tool/package_config_subset @@ -1,277 +1,277 @@ -_fe_analyzer_shared -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-31.0.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-31.0.0/lib/ -analyzer -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/analyzer-2.8.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/analyzer-2.8.0/lib/ -args -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/args-2.4.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/args-2.4.0/lib/ -async -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/async-2.10.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/async-2.10.0/lib/ -boolean_selector -2.17 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/lib/ -build -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build-2.0.3/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build-2.0.3/lib/ -build_config -2.11 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_config-0.4.7/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_config-0.4.7/lib/ -build_daemon -2.11 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_daemon-2.1.10/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_daemon-2.1.10/lib/ -build_resolvers -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_resolvers-2.0.6/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_resolvers-2.0.6/lib/ -build_runner -2.11 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_runner-1.12.2/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_runner-1.12.2/lib/ -build_runner_core -2.11 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_runner_core-6.1.12/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/build_runner_core-6.1.12/lib/ -built_collection -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/built_collection-5.1.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/built_collection-5.1.1/lib/ -built_value -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/built_value-8.4.3/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/built_value-8.4.3/lib/ -change_app_package_name -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/change_app_package_name-1.1.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/change_app_package_name-1.1.0/lib/ -characters -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/characters-1.2.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/characters-1.2.1/lib/ -checked_yaml -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/checked_yaml-2.0.2/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/checked_yaml-2.0.2/lib/ -cli_util -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/cli_util-0.3.5/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/cli_util-0.3.5/lib/ -clock -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/clock-1.1.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/clock-1.1.1/lib/ -code_builder -2.7 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/code_builder-3.7.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/code_builder-3.7.0/lib/ -collection -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/collection-1.17.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/collection-1.17.0/lib/ -convert -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/convert-3.1.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/convert-3.1.1/lib/ -crypto -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/crypto-3.0.2/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/crypto-3.0.2/lib/ -dart_style -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/dart_style-2.2.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/dart_style-2.2.1/lib/ -fake_async -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/fake_async-1.3.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/fake_async-1.3.1/lib/ -file -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/file-6.1.4/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/file-6.1.4/lib/ -fixnum -2.19 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/fixnum-1.1.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/fixnum-1.1.0/lib/ -flutter_lints -2.17 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/flutter_lints-2.0.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/flutter_lints-2.0.1/lib/ -glob -2.15 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/glob-2.1.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/glob-2.1.1/lib/ -graphs -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/graphs-1.0.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/graphs-1.0.0/lib/ -http_multi_server -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/http_multi_server-3.2.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/http_multi_server-3.2.1/lib/ -http_parser -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/http_parser-4.0.2/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/http_parser-4.0.2/lib/ -io -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/io-1.0.4/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/io-1.0.4/lib/ -js -2.16 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/js-0.6.5/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/js-0.6.5/lib/ -json_annotation -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/json_annotation-4.6.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/json_annotation-4.6.0/lib/ -json_serializable -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/json_serializable-6.3.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/json_serializable-6.3.1/lib/ -lints -2.17 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/lints-2.0.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/lints-2.0.1/lib/ -logging -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/logging-1.1.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/logging-1.1.1/lib/ -matcher -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/matcher-0.12.13/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/matcher-0.12.13/lib/ -material_color_utilities -2.13 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/material_color_utilities-0.2.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/material_color_utilities-0.2.0/lib/ -meta -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/meta-1.8.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/meta-1.8.0/lib/ -mime -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/mime-1.0.4/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/mime-1.0.4/lib/ -package_config -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/package_config-2.1.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/package_config-2.1.0/lib/ -path -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/path-1.8.2/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/path-1.8.2/lib/ -pedantic -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pedantic-1.11.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pedantic-1.11.1/lib/ -plugin_platform_interface -2.17 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.4/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.4/lib/ -pool -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pool-1.5.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pool-1.5.1/lib/ -pub_semver -2.17 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pub_semver-2.1.3/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pub_semver-2.1.3/lib/ -pubspec_parse -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pubspec_parse-1.2.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/pubspec_parse-1.2.1/lib/ -shelf -2.17 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/shelf-1.4.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/shelf-1.4.0/lib/ -shelf_web_socket -2.17 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/shelf_web_socket-1.0.3/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/shelf_web_socket-1.0.3/lib/ -source_gen -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/source_gen-1.0.5/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/source_gen-1.0.5/lib/ -source_helper -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/source_helper-1.3.2/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/source_helper-1.3.2/lib/ -source_span -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/source_span-1.9.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/source_span-1.9.1/lib/ -stack_trace -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/stack_trace-1.11.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/stack_trace-1.11.0/lib/ -stream_channel -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/stream_channel-2.1.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/stream_channel-2.1.1/lib/ -stream_transform -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/stream_transform-2.1.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/stream_transform-2.1.0/lib/ -string_scanner -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/lib/ -term_glyph -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/lib/ -test_api -2.18 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/test_api-0.4.16/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/test_api-0.4.16/lib/ -timing -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/timing-1.0.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/timing-1.0.1/lib/ -typed_data -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/typed_data-1.3.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/typed_data-1.3.1/lib/ -vector_math -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/vector_math-2.1.4/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib/ -watcher -2.14 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/watcher-1.0.2/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/watcher-1.0.2/lib/ -web_socket_channel -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/web_socket_channel-2.3.0/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/web_socket_channel-2.3.0/lib/ -yaml -2.12 -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/yaml-3.1.1/ -file:///Users/macbookpro/.pub-cache/hosted/pub.dev/yaml-3.1.1/lib/ icdevicemanager_flutter 2.17 -file:///Users/macbookpro/Desktop/Flutter%20Projects%20/GSFV8/ -file:///Users/macbookpro/Desktop/Flutter%20Projects%20/GSFV8/lib/ +file:///C:/Flutter%20Project/GSF/ +file:///C:/Flutter%20Project/GSF/lib/ sky_engine 2.12 -file:///Users/macbookpro/flutteroldversion/flutter/bin/cache/pkg/sky_engine/ -file:///Users/macbookpro/flutteroldversion/flutter/bin/cache/pkg/sky_engine/lib/ +file:///C:/Flutter_SDK/flutter/bin/cache/pkg/sky_engine/ +file:///C:/Flutter_SDK/flutter/bin/cache/pkg/sky_engine/lib/ flutter 2.17 -file:///Users/macbookpro/flutteroldversion/flutter/packages/flutter/ -file:///Users/macbookpro/flutteroldversion/flutter/packages/flutter/lib/ +file:///C:/Flutter_SDK/flutter/packages/flutter/ +file:///C:/Flutter_SDK/flutter/packages/flutter/lib/ flutter_test 2.17 -file:///Users/macbookpro/flutteroldversion/flutter/packages/flutter_test/ -file:///Users/macbookpro/flutteroldversion/flutter/packages/flutter_test/lib/ +file:///C:/Flutter_SDK/flutter/packages/flutter_test/ +file:///C:/Flutter_SDK/flutter/packages/flutter_test/lib/ +_fe_analyzer_shared +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/_fe_analyzer_shared-31.0.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/_fe_analyzer_shared-31.0.0/lib/ +analyzer +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-2.8.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/analyzer-2.8.0/lib/ +args +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.4.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.4.0/lib/ +async +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.10.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.10.0/lib/ +boolean_selector +2.17 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/boolean_selector-2.1.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/boolean_selector-2.1.1/lib/ +build +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build-2.0.3/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build-2.0.3/lib/ +build_config +2.11 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_config-0.4.7/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_config-0.4.7/lib/ +build_daemon +2.11 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_daemon-2.1.10/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_daemon-2.1.10/lib/ +build_resolvers +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_resolvers-2.0.6/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_resolvers-2.0.6/lib/ +build_runner +2.11 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner-1.12.2/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner-1.12.2/lib/ +build_runner_core +2.11 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner_core-6.1.12/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/build_runner_core-6.1.12/lib/ +built_collection +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/built_collection-5.1.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/built_collection-5.1.1/lib/ +built_value +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/built_value-8.4.3/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/built_value-8.4.3/lib/ +change_app_package_name +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/change_app_package_name-1.1.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/change_app_package_name-1.1.0/lib/ +characters +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/characters-1.2.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/characters-1.2.1/lib/ +checked_yaml +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/checked_yaml-2.0.2/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/checked_yaml-2.0.2/lib/ +cli_util +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/cli_util-0.3.5/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/cli_util-0.3.5/lib/ +clock +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/clock-1.1.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/clock-1.1.1/lib/ +code_builder +2.7 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/code_builder-3.7.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/code_builder-3.7.0/lib/ +collection +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/collection-1.17.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/collection-1.17.0/lib/ +convert +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/convert-3.1.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/convert-3.1.1/lib/ +crypto +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/crypto-3.0.2/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/crypto-3.0.2/lib/ +dart_style +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/dart_style-2.2.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/dart_style-2.2.1/lib/ +fake_async +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/fake_async-1.3.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/fake_async-1.3.1/lib/ +file +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/file-6.1.4/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/file-6.1.4/lib/ +fixnum +2.19 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/fixnum-1.1.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/fixnum-1.1.0/lib/ +flutter_lints +2.17 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_lints-2.0.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_lints-2.0.1/lib/ +glob +2.15 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/glob-2.1.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/glob-2.1.1/lib/ +graphs +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/graphs-1.0.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/graphs-1.0.0/lib/ +http_multi_server +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/http_multi_server-3.2.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/http_multi_server-3.2.1/lib/ +http_parser +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2/lib/ +io +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/io-1.0.4/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/io-1.0.4/lib/ +js +2.16 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/js-0.6.5/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/js-0.6.5/lib/ +json_annotation +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/json_annotation-4.6.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/json_annotation-4.6.0/lib/ +json_serializable +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.3.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/json_serializable-6.3.1/lib/ +lints +2.17 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/lints-2.0.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/lints-2.0.1/lib/ +logging +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/logging-1.1.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/logging-1.1.1/lib/ +matcher +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/matcher-0.12.13/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/matcher-0.12.13/lib/ +material_color_utilities +2.13 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/material_color_utilities-0.2.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/material_color_utilities-0.2.0/lib/ +meta +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/meta-1.8.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/meta-1.8.0/lib/ +mime +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/mime-1.0.4/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/mime-1.0.4/lib/ +package_config +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/package_config-2.1.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/package_config-2.1.0/lib/ +path +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.8.2/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.8.2/lib/ +pedantic +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pedantic-1.11.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pedantic-1.11.1/lib/ +plugin_platform_interface +2.17 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/plugin_platform_interface-2.1.4/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/plugin_platform_interface-2.1.4/lib/ +pool +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pool-1.5.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pool-1.5.1/lib/ +pub_semver +2.17 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pub_semver-2.1.3/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pub_semver-2.1.3/lib/ +pubspec_parse +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pubspec_parse-1.2.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/pubspec_parse-1.2.1/lib/ +shelf +2.17 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/shelf-1.4.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/shelf-1.4.0/lib/ +shelf_web_socket +2.17 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/shelf_web_socket-1.0.3/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/shelf_web_socket-1.0.3/lib/ +source_gen +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/source_gen-1.0.5/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/source_gen-1.0.5/lib/ +source_helper +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/source_helper-1.3.2/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/source_helper-1.3.2/lib/ +source_span +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/source_span-1.9.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/source_span-1.9.1/lib/ +stack_trace +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/stack_trace-1.11.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/stack_trace-1.11.0/lib/ +stream_channel +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/stream_channel-2.1.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/stream_channel-2.1.1/lib/ +stream_transform +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/stream_transform-2.1.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/stream_transform-2.1.0/lib/ +string_scanner +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/string_scanner-1.2.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/string_scanner-1.2.0/lib/ +term_glyph +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/term_glyph-1.2.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/term_glyph-1.2.1/lib/ +test_api +2.18 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.4.16/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.4.16/lib/ +timing +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/timing-1.0.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/timing-1.0.1/lib/ +typed_data +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.3.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.3.1/lib/ +vector_math +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/vector_math-2.1.4/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/vector_math-2.1.4/lib/ +watcher +2.14 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/watcher-1.0.2/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/watcher-1.0.2/lib/ +web_socket_channel +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/web_socket_channel-2.3.0/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/web_socket_channel-2.3.0/lib/ +yaml +2.12 +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/yaml-3.1.1/ +file:///C:/Users/WDI-/AppData/Local/Pub/Cache/hosted/pub.dev/yaml-3.1.1/lib/ 2 diff --git a/gsf/lib/modals/blog_model.dart b/gsf/lib/modals/blog_model.dart new file mode 100644 index 0000000..c61cccb --- /dev/null +++ b/gsf/lib/modals/blog_model.dart @@ -0,0 +1,160 @@ +class BlogModel { + bool? success; + String? message; + Result? result; + + BlogModel({this.success, this.message, this.result}); + + BlogModel.fromJson(Map json) { + success = json['success']; + message = json['message']; + result = + json['result'] != null ? new Result.fromJson(json['result']) : null; + } + + Map toJson() { + final Map data = new Map(); + data['success'] = this.success; + data['message'] = this.message; + if (this.result != null) { + data['result'] = this.result!.toJson(); + } + return data; + } +} + +class Result { + List? category; + + Result({this.category}); + + Result.fromJson(Map json) { + if (json['category'] != null) { + category = []; + json['category'].forEach((v) { + category!.add(new Category.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + if (this.category != null) { + data['category'] = this.category!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class Category { + int? id; + String? categoryName; + String? isActive; + Null? deletedAt; + String? createdAt; + String? updatedAt; + List? articles; + + Category( + {this.id, + this.categoryName, + this.isActive, + this.deletedAt, + this.createdAt, + this.updatedAt, + this.articles}); + + Category.fromJson(Map json) { + id = json['id']; + categoryName = json['category_name']; + isActive = json['is_active']; + deletedAt = json['deleted_at']; + createdAt = json['created_at']; + updatedAt = json['updated_at']; + if (json['articles'] != null) { + articles = []; + json['articles'].forEach((v) { + articles!.add(new Articles.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['category_name'] = this.categoryName; + data['is_active'] = this.isActive; + data['deleted_at'] = this.deletedAt; + data['created_at'] = this.createdAt; + data['updated_at'] = this.updatedAt; + if (this.articles != null) { + data['articles'] = this.articles!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class Articles { + int? id; + int? categoryId; + String? articleName; + String? shortText; + String? description; + String? imageUpload; + String? videoUrl; + String? tags; + String? thumbnailPath; + String? isActive; + Null? deletedAt; + String? createdAt; + String? updatedAt; + + Articles( + {this.id, + this.categoryId, + this.articleName, + this.shortText, + this.description, + this.imageUpload, + this.videoUrl, + this.tags, + this.thumbnailPath, + this.isActive, + this.deletedAt, + this.createdAt, + this.updatedAt}); + + Articles.fromJson(Map json) { + id = json['id']; + categoryId = json['category_id']; + articleName = json['article_name']; + shortText = json['short_text']; + description = json['description']; + imageUpload = json['image_upload']; + videoUrl = json['video_url']; + tags = json['tags']; + thumbnailPath = json['thumbnail_path']; + isActive = json['is_active']; + deletedAt = json['deleted_at']; + createdAt = json['created_at']; + updatedAt = json['updated_at']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['category_id'] = this.categoryId; + data['article_name'] = this.articleName; + data['short_text'] = this.shortText; + data['description'] = this.description; + data['image_upload'] = this.imageUpload; + data['video_url'] = this.videoUrl; + data['tags'] = this.tags; + data['thumbnail_path'] = this.thumbnailPath; + data['is_active'] = this.isActive; + data['deleted_at'] = this.deletedAt; + data['created_at'] = this.createdAt; + data['updated_at'] = this.updatedAt; + return data; + } +} diff --git a/gsf/lib/modals/feedbackGetModel.dart b/gsf/lib/modals/feedbackGetModel.dart new file mode 100644 index 0000000..85b1502 --- /dev/null +++ b/gsf/lib/modals/feedbackGetModel.dart @@ -0,0 +1,73 @@ +class GetFeedbackModel { + bool? success; + String? message; + List? result; + + GetFeedbackModel({this.success, this.message, this.result}); + + GetFeedbackModel.fromJson(Map json) { + success = json['success']; + message = json['message']; + if (json['result'] != null) { + result = []; + json['result'].forEach((v) { + result!.add(new Result.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['success'] = this.success; + data['message'] = this.message; + if (this.result != null) { + data['result'] = this.result!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class Result { + int? id; + int? userId; + String? message; + int? reaction; + String? isActive; + Null? deletedAt; + String? createdAt; + String? updatedAt; + + Result( + {this.id, + this.userId, + this.message, + this.reaction, + this.isActive, + this.deletedAt, + this.createdAt, + this.updatedAt}); + + Result.fromJson(Map json) { + id = json['id']; + userId = json['user_id']; + message = json['message']; + reaction = json['reaction']; + isActive = json['is_active']; + deletedAt = json['deleted_at']; + createdAt = json['created_at']; + updatedAt = json['updated_at']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['user_id'] = this.userId; + data['message'] = this.message; + data['reaction'] = this.reaction; + data['is_active'] = this.isActive; + data['deleted_at'] = this.deletedAt; + data['created_at'] = this.createdAt; + data['updated_at'] = this.updatedAt; + return data; + } +} diff --git a/gsf/lib/modals/search_blogModel.dart b/gsf/lib/modals/search_blogModel.dart new file mode 100644 index 0000000..0917603 --- /dev/null +++ b/gsf/lib/modals/search_blogModel.dart @@ -0,0 +1,93 @@ +class SearchModel { + bool? success; + String? message; + List? result; + + SearchModel({this.success, this.message, this.result}); + + SearchModel.fromJson(Map json) { + success = json['success']; + message = json['message']; + if (json['result'] != null) { + result = []; + json['result'].forEach((v) { + result!.add(new Result.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['success'] = this.success; + data['message'] = this.message; + if (this.result != null) { + data['result'] = this.result!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class Result { + int? id; + int? categoryId; + String? articleName; + String? shortText; + String? description; + String? imageUpload; + String? videoUrl; + String? tags; + String? thumbnailPath; + String? isActive; + Null? deletedAt; + String? createdAt; + String? updatedAt; + + Result( + {this.id, + this.categoryId, + this.articleName, + this.shortText, + this.description, + this.imageUpload, + this.videoUrl, + this.tags, + this.thumbnailPath, + this.isActive, + this.deletedAt, + this.createdAt, + this.updatedAt}); + + Result.fromJson(Map json) { + id = json['id']; + categoryId = json['category_id']; + articleName = json['article_name']; + shortText = json['short_text']; + description = json['description']; + imageUpload = json['image_upload']; + videoUrl = json['video_url']; + tags = json['tags']; + thumbnailPath = json['thumbnail_path']; + isActive = json['is_active']; + deletedAt = json['deleted_at']; + createdAt = json['created_at']; + updatedAt = json['updated_at']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['category_id'] = this.categoryId; + data['article_name'] = this.articleName; + data['short_text'] = this.shortText; + data['description'] = this.description; + data['image_upload'] = this.imageUpload; + data['video_url'] = this.videoUrl; + data['tags'] = this.tags; + data['thumbnail_path'] = this.thumbnailPath; + data['is_active'] = this.isActive; + data['deleted_at'] = this.deletedAt; + data['created_at'] = this.createdAt; + data['updated_at'] = this.updatedAt; + return data; + } +} diff --git a/gsf/lib/repository/response_data.dart b/gsf/lib/repository/response_data.dart index 4eed820..fc3e7ac 100644 --- a/gsf/lib/repository/response_data.dart +++ b/gsf/lib/repository/response_data.dart @@ -1,4 +1,4 @@ -enum ResponseStatus { success, failed, expired, error } +enum ResponseStatus { success, failed, expired, error, SUCCESS } class ResponseModel { final ResponseStatus responseStatus; diff --git a/gsf/lib/repository/services/blog_services.dart b/gsf/lib/repository/services/blog_services.dart new file mode 100644 index 0000000..ca555b2 --- /dev/null +++ b/gsf/lib/repository/services/blog_services.dart @@ -0,0 +1,79 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:get/get.dart'; +import 'package:gsp_app/repository/endpoints.dart'; +import 'package:http/http.dart' as http; +import 'package:rxdart/rxdart.dart'; + +import '../../api/base_manager.dart'; +import '../../api/network_api.dart'; +import '../../modals/blog_model.dart'; +import '../../modals/search_blogModel.dart'; + +SearchModel? searchArticle; +BlogModel? blogcategory; + +class BlogService { + // final String baseUrl = "https://gsf.wdipl.com/api"; + + Future> blogSearchAndFilter(updata, + {required StreamController streamController}) async { + final response = await NetworkApi() + .postApi(url: 'https://thegsf.co/api/search', data: updata); + + if (response.status == ResponseStatus.SUCCESS) { + if (response.data["Result"] == "No Data found") { + if (!streamController.isClosed) { + streamController.sink + .add(SearchModel(message: "", success: false, result: [])); + searchArticle = SearchModel(message: "", success: false, result: []); + } + return response; + } + searchArticle = SearchModel.fromJson(response.data); + if (!streamController.isClosed) streamController.sink.add(searchArticle!); + } + return response; + } + + Future> FetchCategory() async { + final response = + await NetworkApi().getApi('https://thegsf.co/api/getNewsArticle'); + + if (response.status == ResponseStatus.SUCCESS) { + blogcategory = BlogModel.fromJson(response.data); + } + return response; + } +} + + + +// class CategoryViewModel extends GetxController { +// var categories = [].obs; +// var searchModel = [].obs; + +// // var searchList = <>[].obs; +// @override +// void onInit() { +// super.onInit(); +// fetchCategories(); +// } + +// Future> fetchCategories() async { +// final response = await http.get( +// Uri.parse(Endpoints.getBlog), +// ); + +// print('response of faq ${response.body}'); +// final jsonData = jsonDecode(response.body); +// final List categoryList = jsonData['result']['category'] as List; +// categories.assignAll( +// categoryList.map((json) => Category.fromJson(json)).toList()); + +// return categoryList +// .map((json) => BlogModel.fromJson(json)) +// .toList(); +// } +// } diff --git a/gsf/lib/repository/services/feedbackServices.dart b/gsf/lib/repository/services/feedbackServices.dart new file mode 100644 index 0000000..b3fa4b3 --- /dev/null +++ b/gsf/lib/repository/services/feedbackServices.dart @@ -0,0 +1,35 @@ +import '../../api/ResponseManager.dart'; +import '../../api/network_api.dart'; +import '../../modals/feedbackGetModel.dart'; + +GetFeedbackModel? getFeedback; + +class FeedbackServices { + Future> feedbackApi(var data) async { + // SharedPreferences prefs = await SharedPreferences.getInstance(); + final response = await NetworkApi().postApi( + url: 'https://gsf.betadelivery.com/api/updateFeedback', data: data); + + if (response.data['success'] == true) { + return ResponseData( + response.data['message'], ResponseStatus.SUCCESS); + } else { + return ResponseData( + response.data['message'], ResponseStatus.FAILED); + } + } + + Future> getFeedbackApi() async { + final response = await NetworkApi() + .getApi('https://gsf.betadelivery.com/api/getFeedback'); + + if (response.data['success'] == true) { + getFeedback = GetFeedbackModel.fromJson(response.data); + return ResponseData( + response.data['message'], ResponseStatus.SUCCESS); + } else { + return ResponseData( + response.data['message'], ResponseStatus.FAILED); + } + } +} diff --git a/gsf/lib/repository/services/rate_usServices.dart b/gsf/lib/repository/services/rate_usServices.dart new file mode 100644 index 0000000..681279b --- /dev/null +++ b/gsf/lib/repository/services/rate_usServices.dart @@ -0,0 +1,17 @@ +import '../../api/ResponseManager.dart'; +import '../../api/network_api.dart'; + +class RateUsServices { + Future> postRateUs(updata) async { + final response = await NetworkApi().postApi( + url: 'https://gsf.betadelivery.com/api/updateRateUs', data: updata); + + if (response.data['success'] == true) { + return ResponseData( + response.data['message'], ResponseStatus.SUCCESS); + } else { + return ResponseData( + response.data['message'], ResponseStatus.FAILED); + } + } +} diff --git a/gsf/lib/views/pages/blog/blog_inner.dart b/gsf/lib/views/pages/blog/blog_inner.dart index a18ce65..cb65826 100644 --- a/gsf/lib/views/pages/blog/blog_inner.dart +++ b/gsf/lib/views/pages/blog/blog_inner.dart @@ -1,16 +1,45 @@ // ignore_for_file: prefer_const_literals_to_create_immutables import 'package:flutter/material.dart'; +import 'package:flutter_html/flutter_html.dart'; import 'package:get/get.dart'; +import 'package:gsp_app/repository/services/blog_services.dart'; +import 'package:intl/intl.dart'; +import '../../../modals/blog_model.dart'; +import '../../../modals/search_blogModel.dart'; import '../../components/appbar.dart'; import '../../theme.dart'; class BlogDetails extends StatelessWidget { - const BlogDetails({Key? key}) : super(key: key); + BlogDetails({ + required this.articleId, + required this.tages, + required this.imageUpload, + required this.description, + required this.formattedtime, + }); + + // SearchModel? searchArticle; + String? tages; + String? imageUpload; + int? articleId; + String? description; + String? formattedtime; @override Widget build(BuildContext context) { + // var updatedAtTime = articles.updatedAt; + // DateTime updatedAt = DateTime.parse(updatedAtTime!); + // Duration difference = DateTime.now().difference(updatedAt); + // String formattedDifference = DateFormat().add_Hm().format(updatedAt); + + // for (var i = 0; i < searchArticle!.result!.length; i++) { + // tages = searchArticle!.result![i].tags; + // imageUpload = searchArticle!.result![i].imageUpload; + // articleId = searchArticle!.result![i].id; + // } + return Scaffold( backgroundColor: ColorConstants.kBlack, appBar: PreferredSize( @@ -22,9 +51,9 @@ class BlogDetails extends StatelessWidget { Padding( padding: const EdgeInsets.symmetric(horizontal: 15.0), child: Row( - children: const [ + children: [ Text( - 'Philosophy', + tages!, style: TextStyle( fontSize: 18, color: ColorConstants.kWhite, @@ -33,7 +62,7 @@ class BlogDetails extends StatelessWidget { ), Spacer(), Text( - '2 days ago', + formattedtime!, style: TextStyle( fontSize: 18, color: ColorConstants.kWhite, @@ -44,111 +73,119 @@ class BlogDetails extends StatelessWidget { ), ), const SizedBox(height: 10), - Image.asset( - 'assets/image/blog/philosophyCard.jpg', + Image.network( + imageUpload!, + // 'assets/image/blog/philosophyCard.jpg', + // height: 400, width: Get.size.width, fit: BoxFit.fitWidth, ), const SizedBox(height: 30), - Expanded( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: ListView.builder( - shrinkWrap: true, - itemCount: 8, - itemBuilder: (context, index) { - if (index == 7) { - return Padding( - padding: const EdgeInsets.only(bottom: 20.0), - child: Row( - children: [ - InkWell( - onTap: () { - print('Previous'); - }, - child: Row( - children: [ - Icon( - Icons.keyboard_arrow_left_rounded, - size: 25, - color: ColorConstants.kPrimaryColor, - ), - SizedBox(width: 8), - Text( - 'Previous', - style: TextStyle( - fontSize: 16, - color: ColorConstants.kPrimaryColor), - ), - ], - ), - ), - Spacer(), - InkWell( - onTap: () { - print('Next'); - }, - child: Row( - children: [ - Text( - 'Next', - style: TextStyle( - fontSize: 16, - color: ColorConstants.kPrimaryColor), - ), - SizedBox(width: 8), - Icon( - Icons.keyboard_arrow_right_rounded, - size: 25, - color: ColorConstants.kPrimaryColor, - ), - ], - ), - ), - ], - ), - ); - } - return Padding( - padding: const EdgeInsets.only(bottom: 22.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - decoration: const BoxDecoration( - color: ColorConstants.kPrimaryColor, - shape: BoxShape.circle, - ), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - '${index + 1}', - style: const TextStyle( - fontSize: 16, - color: ColorConstants.kBlack, - fontFamily: 'SFPRO', - fontWeight: FontWeight.w800, - ), - ), - ), - ), - const SizedBox(width: 10), - Expanded( - child: Text( - 'The next time you find yourself continuously running things over in your mind, take note of how it affects your mood.', - style: TextStyle( - fontSize: 14, - color: Color(0xffD9D9D9), - ), - ), - ), - ], - ), - ); - }), - ), - ), + + Column( + children: [ + Html(data: description) + ], + ) + // Expanded( + // child: Padding( + // padding: const EdgeInsets.symmetric(horizontal: 20), + // child: ListView.builder( + // shrinkWrap: true, + // itemCount: 8, + // itemBuilder: (context, index) { + // if (index == 7) { + // return Padding( + // padding: const EdgeInsets.only(bottom: 20.0), + // child: Row( + // children: [ + // InkWell( + // onTap: () { + // print('Previous'); + // }, + // child: Row( + // children: [ + // Icon( + // Icons.keyboard_arrow_left_rounded, + // size: 25, + // color: ColorConstants.kPrimaryColor, + // ), + // SizedBox(width: 8), + // Text( + // 'Previous', + // style: TextStyle( + // fontSize: 16, + // color: ColorConstants.kPrimaryColor), + // ), + // ], + // ), + // ), + // Spacer(), + // InkWell( + // onTap: () { + // print('Next'); + // }, + // child: Row( + // children: [ + // Text( + // 'Next', + // style: TextStyle( + // fontSize: 16, + // color: ColorConstants.kPrimaryColor), + // ), + // SizedBox(width: 8), + // Icon( + // Icons.keyboard_arrow_right_rounded, + // size: 25, + // color: ColorConstants.kPrimaryColor, + // ), + // ], + // ), + // ), + // ], + // ), + // ); + // } + // return Padding( + // padding: const EdgeInsets.only(bottom: 22.0), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Container( + // decoration: const BoxDecoration( + // color: ColorConstants.kPrimaryColor, + // shape: BoxShape.circle, + // ), + // child: Padding( + // padding: const EdgeInsets.all(8.0), + // child: Text( + // '${index + 1}', + // style: const TextStyle( + // fontSize: 16, + // color: ColorConstants.kBlack, + // fontFamily: 'SFPRO', + // fontWeight: FontWeight.w800, + // ), + // ), + // ), + // ), + // const SizedBox(width: 10), + // Expanded( + // child: Text( + // 'The next time you find yourself continuously running things over in your mind, take note of how it affects your mood.', + // style: TextStyle( + // fontSize: 14, + // color: Color(0xffD9D9D9), + // ), + // ), + // ), + // ], + // ), + // ); + // }), + // ), + // ), ], ), ); diff --git a/gsf/lib/views/pages/blog/blog_main.dart b/gsf/lib/views/pages/blog/blog_main.dart index 274e0b7..d893e30 100644 --- a/gsf/lib/views/pages/blog/blog_main.dart +++ b/gsf/lib/views/pages/blog/blog_main.dart @@ -1,10 +1,16 @@ // ignore_for_file: prefer_const_constructors +import 'dart:async'; + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:gsp_app/modals/blog_model.dart'; +import 'package:gsp_app/repository/services/blog_services.dart'; import 'package:gsp_app/views/components/page_animation.dart'; +import 'package:intl/intl.dart'; +import '../../../modals/search_blogModel.dart'; import '../../components/appbar.dart'; import '../../theme.dart'; import 'blog_inner.dart'; @@ -16,278 +22,526 @@ class BlogMain extends StatefulWidget { State createState() => _BlogMainState(); } +List tabTitles = [ + 'All', + 'About Getsetfit', + 'Workout', + 'Functional Training' +]; + class _BlogMainState extends State with TickerProviderStateMixin { + // final CategoryViewModel categoryViewModel = Get.put(CategoryViewModel()); + + StreamController blogsController = StreamController(); + + + + @override Widget build(BuildContext context) { - TabController tabController = TabController(length: 4, vsync: this); return Scaffold( backgroundColor: ColorConstants.kBlack, appBar: PreferredSize( preferredSize: const Size.fromHeight(60), child: CustomAppBars(titleHead: 'Blog'), ), - body: Padding( - padding: const EdgeInsets.symmetric(horizontal: 15.0), - child: Column( - children: [ - SizedBox( - height: 35, - child: TabBar( - isScrollable: true, - labelPadding: - const EdgeInsets.symmetric(horizontal: 20, vertical: 0), - labelColor: ColorConstants.kBlack, - unselectedLabelColor: Colors.white, - labelStyle: const TextStyle( - color: ColorConstants.kBlack, - fontFamily: 'SFPRO', - fontSize: 16, - ), - unselectedLabelStyle: const TextStyle( - fontWeight: FontWeight.normal, - fontFamily: 'SFPRO', - color: ColorConstants.kWhite, - ), - indicator: BoxDecoration( - color: ColorConstants.kWhite, - borderRadius: BorderRadius.circular(50), - ), - controller: tabController, - tabs: const [ - Tab( - text: 'All', - ), - Tab( - text: 'About Getsetfit', - ), - Tab( - text: 'Workout', - ), - Tab( - text: 'Functional Training', - ), - ], - ), - ), - SizedBox(height: 15), - CupertinoSearchTextField( - decoration: BoxDecoration( - color: Color(0xff212121), - borderRadius: BorderRadius.circular(30), - ), - padding: EdgeInsetsDirectional.fromSTEB(10, 15, 10, 15), - // prefixInsets - prefixInsets: EdgeInsetsDirectional.fromSTEB(10, 10, 0, 10), - itemSize: 25, - style: TextStyle( - fontSize: 16, - color: ColorConstants.kWhite, - ), - ), - SizedBox(height: 30), - Expanded( - // height: Get.size.height - 230, - child: TabBarView( - controller: tabController, + body: FutureBuilder( + future: BlogService().FetchCategory(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return Center(child: CircularProgressIndicator()); + } else if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } else { + final tabController = blogcategory!.result!.category!.isNotEmpty + ? TabController( + length: blogcategory!.result!.category!.length, vsync: this) + : null; + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 15.0), + child: Column( children: [ - allWidgetTab(), - allWidgetTab(), - allWidgetTab(), - allWidgetTab(), + if (blogcategory!.result!.category!.isNotEmpty) ...[ + SizedBox( + height: 35, + child: TabBar( + isScrollable: true, + labelPadding: const EdgeInsets.symmetric( + horizontal: 20, vertical: 0), + labelColor: ColorConstants.kBlack, + unselectedLabelColor: Colors.white, + labelStyle: const TextStyle( + color: ColorConstants.kBlack, + fontFamily: 'SFPRO', + fontSize: 16, + ), + unselectedLabelStyle: const TextStyle( + fontWeight: FontWeight.normal, + fontFamily: 'SFPRO', + color: ColorConstants.kWhite, + ), + indicator: BoxDecoration( + color: ColorConstants.kWhite, + borderRadius: BorderRadius.circular(50), + ), + controller: tabController, + tabs: List.generate( + blogcategory!.result!.category!.length, + (index) => Tab( + text: blogcategory! + .result!.category![index].categoryName, + ))), + ), + SizedBox(height: 15), + Expanded( + child: TabBarView( + controller: tabController, + children: List.generate( + blogcategory!.result!.category!.length, + (index) => NewsBody( + categoryIndex: blogcategory! + .result!.category![index].id, + ))), + ) + ] ], ), - ), - ], - ), + ); + } + }, ), ); } - allWidgetTab() { +// Widget allWidgetTab(Category category) { +// return Column( +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// Text( +// 'Top News', +// style: TextStyle( +// fontSize: 22, +// color: Color(0xff858585), +// fontFamily: 'SFPRO', +// fontWeight: FontWeight.w700, +// ), +// ), +// SizedBox(height: 15), +// (category.articles != null && category.articles!.isNotEmpty) +// ? SizedBox( +// height: 280, +// child: ListView.builder( +// itemCount: category.articles!.length, +// scrollDirection: Axis.horizontal, +// itemBuilder: (context, index) { +// var updatedAtTime = category.articles![index].updatedAt; +// DateTime updatedAt = DateTime.parse(updatedAtTime!); +// Duration difference = +// DateTime.now().difference(updatedAt); +// String formattedDifference = +// DateFormat().add_Hm().format(updatedAt); + +// return philosophyCard( +// ArticleName: category.articles![index].shortText ?? '', +// shortText: category.articles![index].articleName ?? '', +// image_upload: +// category.articles![index].thumbnailPath ?? '', +// updatedAtTime: formattedDifference, +// articleid: category.articles![index], +// ); +// }), +// ) +// : Center(child: Text('No Articles found')), +// SizedBox(height: 10), +// Expanded( +// child: ListView.builder( +// itemCount: category.articles!.length, +// physics: ScrollPhysics(), +// shrinkWrap: true, +// itemBuilder: (context, index) => cardList( +// articleName: category.articles![index].articleName ?? '', +// thumbnailimg: category.articles![index].thumbnailPath ?? '', +// updatedTime: category.articles![index].updatedAt ?? '', +// articleid: category.articles![index], +// ), +// ), +// ) +// ], +// ); +// } +} + +class NewsBody extends StatefulWidget { + NewsBody({super.key, required this.categoryIndex}); + + int? categoryIndex; + @override + State createState() => _NewsBodyState(); +} + +class _NewsBodyState extends State { + TextEditingController searchController = TextEditingController(); + StreamController blogsController = StreamController(); + + @override + void initState() { + var updata = {"article_name": null, "category_id": widget.categoryIndex}; + BlogService() + .blogSearchAndFilter(updata, streamController: blogsController); + super.initState(); + } + + @override + void dispose() { + // TODO: implement dispose + blogsController.close(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { return Column( - crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - 'Top News', - style: TextStyle( - fontSize: 22, - color: Color(0xff858585), - fontFamily: 'SFPRO', - fontWeight: FontWeight.w700, - ), - ), - SizedBox(height: 15), - SizedBox( - height: 280, - child: ListView.builder( - itemCount: 2, - scrollDirection: Axis.horizontal, - itemBuilder: (context, index) => philosophyCard(), - ), - ), - SizedBox(height: 10), - Expanded( - child: ListView.builder( - itemCount: 10, - physics: ScrollPhysics(), - shrinkWrap: true, - itemBuilder: (context, index) => cardList(), - ), - ) + CupertinoSearchTextField( + controller: searchController, + decoration: BoxDecoration( + color: Color(0xff212121), + borderRadius: BorderRadius.circular(30), + ), + padding: EdgeInsetsDirectional.fromSTEB(10, 15, 10, 15), + prefixInsets: EdgeInsetsDirectional.fromSTEB(10, 10, 0, 10), + itemSize: 25, + style: TextStyle( + fontSize: 16, + color: ColorConstants.kWhite, + ), + onChanged: (value) { + BlogService().blogSearchAndFilter({ + "article_name": value, + "category_id": widget.categoryIndex, + }, streamController: blogsController); + }), + StreamBuilder( + stream: blogsController.stream, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + // Display shimmer effect while waiting for data + return Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: const [ + Center(child: CircularProgressIndicator()), + ], + ), + ); + } else if (snapshot.hasError) { + // Handle error state + return Center( + child: Text( + '${snapshot.error} occured', + style: TextStyle(fontSize: 18), + ), + ); + } else { + return (searchArticle?.result != null && + searchArticle!.result!.isNotEmpty) + ? Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 20), + Text( + 'Top News', + style: TextStyle( + fontSize: 22, + color: Color(0xff858585), + fontFamily: 'SFPRO', + fontWeight: FontWeight.w700, + ), + ), + SizedBox(height: 15), + SizedBox( + height: 280, + child: ListView.builder( + itemCount: searchArticle!.result!.length, + scrollDirection: Axis.horizontal, + itemBuilder: (context, index) { + var updatedAtTime = + searchArticle!.result![index].updatedAt; + DateTime updatedAt = + DateTime.parse(updatedAtTime!); + Duration difference = + DateTime.now().difference(updatedAt); + String formattedDifference = + DateFormat().add_Hm().format(updatedAt); + + return philosophyCard( + ArticleName: searchArticle! + .result![index].shortText ?? + '', + shortText: searchArticle! + .result![index].articleName ?? + '', + image_upload: searchArticle! + .result![index].thumbnailPath ?? + '', + updatedAtTime: formattedDifference, + categoryId: + searchArticle!.result![index].id ?? 0, + InnerimageUpload: searchArticle! + .result![index].imageUpload ?? + '', + Innertages: + searchArticle!.result![index].tags, + InnerDescription: searchArticle! + .result![index].description, + Innerformattedtime: formattedDifference, + + // articleid: widget.category.articles![index], + ); + }), + ), + SizedBox(height: 10), + Expanded( + child: ListView.builder( + itemCount: searchArticle?.result!.length, + physics: ScrollPhysics(), + shrinkWrap: true, + itemBuilder: (context, index) { + var updatedAtTime = searchArticle! + .result![index].updatedAt; + DateTime updatedAt = + DateTime.parse(updatedAtTime!); + Duration difference = + DateTime.now().difference(updatedAt); + String formattedDifference = DateFormat() + .add_Hm() + .format(updatedAt); + return cardList( + articleName: searchArticle! + .result![index].articleName ?? + '', + thumbnailimg: searchArticle! + .result![index].thumbnailPath ?? + '', + updatedTime: formattedDifference, + categoryId: + searchArticle!.result![index].id ?? + 0, + InnerimageUpload: searchArticle! + .result![index].imageUpload ?? + '', + Innertages: + searchArticle!.result![index].tags, + InnerDescription: searchArticle! + .result![index].description, + Innerformattedtime: formattedDifference, + // articleid: widget.category.articles![index], + ); + })) + ], + ), + ) + : Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Center(child: Text('No Articles found')), + ], + ), + ); + } + }), ], ); } +} - philosophyCard() { - return OpenContainerWrappers( - closeBuild: Padding( - padding: const EdgeInsets.only(right: 20.0), - child: SizedBox( - width: Get.size.width * 0.8, - child: Column( - children: [ - Container( - height: 190, - // width: Get.size.width * 0.8, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/image/blog/philosophyCard.jpg'), - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, - ), - borderRadius: BorderRadius.circular(20), +philosophyCard({ + required String shortText, + required String ArticleName, + required String image_upload, + required String updatedAtTime, + required int categoryId, + required InnerimageUpload, + required Innertages, + required InnerDescription, + required Innerformattedtime, +}) { + return OpenContainerWrappers( + closeBuild: Padding( + padding: const EdgeInsets.only(right: 20.0), + child: SizedBox( + width: Get.size.width * 0.8, + child: Column( + children: [ + Container( + height: 190, + // width: Get.size.width * 0.8, + decoration: BoxDecoration( + image: DecorationImage( + image: NetworkImage(image_upload), + fit: BoxFit.fitWidth, + alignment: Alignment.topCenter, ), - child: Padding( - padding: const EdgeInsets.all(10.0), - child: Align( - alignment: Alignment.topRight, - child: Container( - decoration: BoxDecoration( - color: ColorConstants.kBlack, - borderRadius: BorderRadius.circular(15), - ), - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 12.0, vertical: 7), - child: Text( - 'Philosophy', - style: TextStyle( - fontSize: 14, - color: Color(0xffD9D9D9), - fontFamily: 'SFPRO', - ), + borderRadius: BorderRadius.circular(20), + ), + child: Padding( + padding: const EdgeInsets.all(10.0), + child: Align( + alignment: Alignment.topRight, + child: Container( + decoration: BoxDecoration( + color: ColorConstants.kBlack, + borderRadius: BorderRadius.circular(15), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, vertical: 7), + child: Text( + 'Philosophy', + style: TextStyle( + fontSize: 14, + color: Color(0xffD9D9D9), + fontFamily: 'SFPRO', ), ), ), ), ), ), - SizedBox(height: 10), - Expanded( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20.0), - child: Column( - children: [ - Row( - children: const [ - Text( - 'Trending', - style: TextStyle( - fontSize: 14, - color: Color(0xff919191), - fontFamily: 'SFPRO', - ), + ), + SizedBox(height: 10), + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Column( + children: [ + Row( + children: [ + Text( + shortText, + style: TextStyle( + fontSize: 14, + color: Color(0xff919191), + fontFamily: 'SFPRO', ), - Spacer(), - Text( - '2 days ago', - style: TextStyle( - fontSize: 14, - color: Color(0xff919191), - fontFamily: 'SFPRO', - ), - ), - ], - ), - SizedBox(height: 10), - Text( - '8 Steps To Help You Stop Overthinking Everything', - style: TextStyle( - fontSize: 18, - color: ColorConstants.kWhite, - fontFamily: 'SFPRO', ), + Spacer(), + Text( + updatedAtTime, + style: TextStyle( + fontSize: 14, + color: Color(0xff919191), + fontFamily: 'SFPRO', + ), + ), + ], + ), + SizedBox(height: 10), + Text( + ArticleName, + style: TextStyle( + fontSize: 18, + color: ColorConstants.kWhite, + fontFamily: 'SFPRO', ), - ], - ), + ), + ], ), - ) + ), + ) + ], + ), + ), + ), + openBuild: BlogDetails( + articleId: categoryId, + imageUpload: InnerimageUpload, + tages: Innertages, + description: InnerDescription, + formattedtime: Innerformattedtime, + )); +} + +cardList({ + required String thumbnailimg, + required String articleName, + required String updatedTime, + required int categoryId, + required InnerimageUpload, + required Innertages, + required InnerDescription, + required Innerformattedtime, + // required Articles articleid, +}) { + return OpenContainerWrappers( + closeBuild: Container( + color: ColorConstants.kBlack, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 15), + child: InkWell( + // onTap: (() => Get.to(() => BlogDetails())), + child: Row( + children: [ + Expanded( + flex: 0, + child: Container( + width: 60, + height: 60, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + width: 1, + color: const Color(0xff707070), + ), + ), + child: Image.network(thumbnailimg, fit: BoxFit.fill), + + // Image.asset( + // 'assets/image/avatar.png', + // ), + ), + ), + const SizedBox(width: 10), + Expanded( + // flex: 2, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + articleName, + // 'What is the difference between fat loss and weight loss? What is it you want?', + style: TextStyle( + fontSize: 16, + color: Color(0xffD9D9D9), + fontFamily: 'SFPRO', + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + SizedBox(height: 8), + Text( + updatedTime, + // 'May 03, 2022 11:33 AM IST', + style: TextStyle( + fontSize: 14, + color: Color(0xff858585), + fontFamily: 'SFPRO'), + ) + ], + ), + ), ], ), ), ), - openBuild: BlogDetails()); - } - - cardList() { - return OpenContainerWrappers( - closeBuild: Container( - color: ColorConstants.kBlack, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 15), - child: InkWell( - // onTap: (() => Get.to(() => BlogDetails())), - child: Row( - children: [ - Expanded( - flex: 0, - child: Container( - width: 60, - height: 60, - decoration: BoxDecoration( - border: Border.all( - width: 1, - color: const Color(0xff707070), - ), - borderRadius: BorderRadius.circular(100), - ), - child: Image.asset( - 'assets/image/avatar.png', - ), - ), - ), - const SizedBox(width: 10), - Expanded( - // flex: 2, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: const [ - Text( - 'What is the difference between fat loss and weight loss? What is it you want?', - style: TextStyle( - fontSize: 16, - color: Color(0xffD9D9D9), - fontFamily: 'SFPRO', - ), - maxLines: 2, - overflow: TextOverflow.ellipsis, - ), - SizedBox(height: 8), - Text( - 'May 03, 2022 11:33 AM IST', - style: TextStyle( - fontSize: 14, - color: Color(0xff858585), - fontFamily: 'SFPRO'), - ) - ], - ), - ), - ], - ), - ), - ), - ), - openBuild: BlogDetails()); - } + ), + openBuild: BlogDetails( + articleId: categoryId, + imageUpload: InnerimageUpload, + tages: Innertages, + description: InnerDescription, + formattedtime: Innerformattedtime, + )); } diff --git a/gsf/lib/views/pages/feedback/feedback.dart b/gsf/lib/views/pages/feedback/feedback.dart index 6ace299..cfc14e7 100644 --- a/gsf/lib/views/pages/feedback/feedback.dart +++ b/gsf/lib/views/pages/feedback/feedback.dart @@ -1,19 +1,122 @@ +import 'dart:developer'; + +import 'package:another_flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; +import 'package:gsp_app/repository/services/feedbackServices.dart'; +import 'package:gsp_app/views/pages/blog/blog_main.dart'; +import 'package:gsp_app/views/pages/home/home.dart'; +import '../../../api/ResponseManager.dart'; import '../../components/appbar.dart'; import '../../theme.dart'; -class FeedBack extends StatelessWidget { +class FeedBack extends StatefulWidget { const FeedBack({Key? key}) : super(key: key); + @override + State createState() => _FeedBackState(); +} + +class _FeedBackState extends State { + String? message; + int? reaction; + + RxBool active = false.obs; + RxBool active1 = false.obs; + + @override + void initState() { + // TODO: implement initState + // _textarea.text = getFeedback!.message; + if (getFeedback!.result != null && getFeedback!.result!.isNotEmpty) { + int lastIndex = getFeedback!.result!.length - 1; + reaction = getFeedback!.result![lastIndex].reaction; + + if (reaction == 0) { + active.value = true; + active1.value = false; + } else if (reaction == 1) { + active.value = false; + active1.value = true; + } + } + + super.initState(); + } + @override Widget build(BuildContext context) { - RxBool active = false.obs; - RxBool active1 = false.obs; - RxBool feedActive = true.obs; + int lastIndex = getFeedback!.result!.length - 1; + for (int i = lastIndex; i <= lastIndex; i++) { + reaction = getFeedback!.result![i].reaction; + message = getFeedback!.result![i].message; + // Your code here + } + + // RxBool feedActive = true.obs; + GlobalKey _formkey = GlobalKey(); final TextEditingController _textarea = TextEditingController(); +// RxString getapidata = ''.obs; +// RxString getapidata2 = ''.obs; + _feedbackbutton() async { + if (!active.value && !active1.value) { + print("Please select a smile container before submitting."); + Flushbar( + backgroundColor: Colors.red, + message: 'select a feedback!', + duration: Duration(seconds: 3), + ).show(context); + return; + } + + var data = ''; + if (active.value == true) { + data = '0'; + } else if (active1.value == true) { + data = '1'; + } + final isValid = _formkey.currentState?.validate(); + if (isValid!) { + Map updata = { + "user_id": '', + "message": _textarea.text, + "reaction": data, + }; + + final resp = await FeedbackServices().feedbackApi(updata); + if (resp.status == ResponseStatus.SUCCESS) { + // btnController.reset(); + Get.to(() => Home()); + print('data---$data'); + Flushbar( + backgroundColor: Colors.green, + message: 'Your feedback is sent successfully!', + duration: Duration(seconds: 3), + ).show(context); + + // setState(() { + // // _formkey = GlobalKey(); + // }); + // _textarea.clear(); + } else if (resp.status == ResponseStatus.FAILED) { + if (resp.data["success"] == false) { + log("failed error msg is :- ${resp.data} "); + Get.snackbar("Error", resp.data["message"], + margin: EdgeInsets.all(8), + snackStyle: SnackStyle.FLOATING, + snackPosition: SnackPosition.BOTTOM); + } else { + Get.snackbar("Error", "connection failed", + margin: EdgeInsets.all(8), + snackStyle: SnackStyle.FLOATING, + snackPosition: SnackPosition.BOTTOM); + } + } + } + } + return Scaffold( backgroundColor: ColorConstants.kBlack, appBar: PreferredSize( @@ -23,169 +126,186 @@ class FeedBack extends StatelessWidget { body: SingleChildScrollView( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 20.0), - child: Column( - children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 30), - child: Row( - children: [ - Expanded( - flex: 1, - child: GestureDetector( - onTap: () { - active.value = !active.value; - active1.value = false; - }, - child: Obx( - () => active.value - ? SvgPicture.asset( - 'assets/image/feedback/sad_active.svg', - ) - : SvgPicture.asset( - 'assets/image/feedback/sad_unactive.svg', - ), - ), - ), - ), - Expanded( + child: Form( + key: _formkey, + child: Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: Row( + children: [ + Expanded( flex: 1, child: GestureDetector( onTap: () { - active1.value = !active1.value; - active.value = false; + // active.value =false; + active.value = !active.value; + active1.value = false; + print('activevaluebad---${active.value}'); }, - child: Obx( - () => active1.value - ? SvgPicture.asset( - 'assets/image/feedback/happy_active.svg', - ) - : SvgPicture.asset( - 'assets/image/feedback/happy_unactive.svg', - ), + child: Obx(() { + // var data = isActive == '1'; + return + // data == active.value + active.value + ? SvgPicture.asset( + 'assets/image/feedback/sad_active.svg', + ) + : SvgPicture.asset( + 'assets/image/feedback/sad_unactive.svg', + ); + }), + ), + ), + Expanded( + flex: 1, + child: GestureDetector( + onTap: () { + active1.value = !active1.value; + active.value = false; + print('active1valueGood---${active1.value}'); + }, + child: Obx(() { + // var data1 = isActive == '0'; + // print('data of good emoji$data1'); + return + // data1 == active1.value + active1.value + ? SvgPicture.asset( + 'assets/image/feedback/happy_active.svg', + ) + : SvgPicture.asset( + 'assets/image/feedback/happy_unactive.svg', + ); + }), + )), + ], + ), + ), + const SizedBox(height: 30), + TextFormField( + style: const TextStyle( + color: Color(0xffffffff), + fontFamily: 'Helvetica', + fontSize: 16, + fontWeight: FontWeight.w400, + ), + maxLines: 12, + decoration: InputDecoration( + fillColor: const Color(0xff212121), + hintText: getFeedback!.result!.isNotEmpty + ? message + : "Type your feedback...", + contentPadding: const EdgeInsets.only( + top: 20, + bottom: 20, + left: 20, + right: 25, + ), + hintStyle: TextStyle( + fontSize: 16, + color: const Color(0xffffffff).withOpacity(0.6), + fontFamily: 'Helvetica', + ), + filled: true, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + width: 1, + color: Colors.transparent, + ), + ), + errorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + width: 1, + color: Colors.transparent, + ), + ), + errorStyle: const TextStyle( + fontSize: 16.0, + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + width: 1, + color: Colors.transparent, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + width: 1, + color: Colors.transparent, + ), + ), + isDense: true, + ), + controller: _textarea, + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter your feedback'; + } + return null; + }, + onSaved: (name) {}, + ), + const SizedBox(height: 30), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + InkWell( + onTap: () {}, + child: Container( + width: Get.width * 0.3, + height: 50, + decoration: BoxDecoration( + color: const Color(0xff212121), + borderRadius: BorderRadius.circular(30), + ), + child: const Center( + child: Text( + 'Later', + style: TextStyle( + fontSize: 16, + color: Color(0xff6A6A6A), + fontWeight: FontWeight.w500, + fontFamily: 'Poppins', + ), ), - )), + ), + ), + ), + // const Spacer(), + InkWell( + onTap: () { + _feedbackbutton(); + }, + child: Container( + width: Get.width * 0.3, + height: 50, + decoration: BoxDecoration( + color: ColorConstants.kPrimaryColor, + borderRadius: BorderRadius.circular(30), + ), + child: const Center( + child: Text( + 'Submit', + style: TextStyle( + fontSize: 16, + color: Color(0xff000000), + fontWeight: FontWeight.w500, + fontFamily: 'Poppins', + ), + ), + ), + ), + ), ], ), - ), - const SizedBox(height: 30), - TextFormField( - style: const TextStyle( - color: Color(0xffffffff), - fontFamily: 'Helvetica', - fontSize: 16, - fontWeight: FontWeight.w400, - ), - maxLines: 12, - decoration: InputDecoration( - fillColor: const Color(0xff212121), - hintText: "Type your feedback...", - contentPadding: const EdgeInsets.only( - top: 20, - bottom: 20, - left: 20, - right: 25, - ), - hintStyle: TextStyle( - fontSize: 16, - color: const Color(0xffffffff).withOpacity(0.6), - fontFamily: 'Helvetica', - ), - filled: true, - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - width: 1, - color: Colors.transparent, - ), - ), - errorBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - width: 1, - color: Colors.transparent, - ), - ), - errorStyle: const TextStyle( - fontSize: 16.0, - ), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - width: 1, - color: Colors.transparent, - ), - ), - focusedBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - width: 1, - color: Colors.transparent, - ), - ), - isDense: true, - ), - controller: _textarea, - validator: (value) { - if (value == null || value.isEmpty) { - return 'Please enter your feedback'; - } - return null; - }, - onSaved: (name) {}, - ), - const SizedBox(height: 30), - Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - InkWell( - onTap: () {}, - child: Container( - width: Get.width * 0.3, - height: 50, - decoration: BoxDecoration( - color: const Color(0xff212121), - borderRadius: BorderRadius.circular(30), - ), - child: const Center( - child: Text( - 'Later', - style: TextStyle( - fontSize: 16, - color: Color(0xff6A6A6A), - fontWeight: FontWeight.w500, - fontFamily: 'Poppins', - ), - ), - ), - ), - ), - // const Spacer(), - InkWell( - onTap: () {}, - child: Container( - width: Get.width * 0.3, - height: 50, - decoration: BoxDecoration( - color: ColorConstants.kPrimaryColor, - borderRadius: BorderRadius.circular(30), - ), - child: const Center( - child: Text( - 'Submit', - style: TextStyle( - fontSize: 16, - color: Color(0xff000000), - fontWeight: FontWeight.w500, - fontFamily: 'Poppins', - ), - ), - ), - ), - ), - ], - ), - const SizedBox(height: 50), - ], + const SizedBox(height: 50), + ], + ), ), ), ), diff --git a/gsf/lib/views/pages/home/home.dart b/gsf/lib/views/pages/home/home.dart index 4d3fe39..3c87c64 100644 --- a/gsf/lib/views/pages/home/home.dart +++ b/gsf/lib/views/pages/home/home.dart @@ -14,6 +14,7 @@ import 'package:gsp_app/views/pages/splash.dart'; import 'package:workmanager/workmanager.dart'; // import 'package:flutter_background_service_android/flutter_background_service_android.dart'; +import '../../../repository/services/feedbackServices.dart'; import '/api/base_manager.dart' as cresponse; import 'package:animations/animations.dart'; @@ -280,15 +281,16 @@ class _HomeState extends State with SingleTickerProviderStateMixin { bool? showMoodOMeterAfterAppTour; var bannerMoodOMeterFutureGroup = FutureGroup(); + @override void initState() { bannerMoodOMeterFutureGroup.add(MoodOMeterService().getMoodOMeter()); bannerMoodOMeterFutureGroup.add(ManageBannerService().fetchManageBanner()); + bannerMoodOMeterFutureGroup.add(FeedbackServices().getFeedbackApi()); QuizeApis().showQuiz(); bannerMoodOMeterFutureGroup.close(); - // print('CURRENT POSITION OF USER ${appDataController.selfPosition.value}'); - + // print('feeadback api hit --- $feedbackGetGrp'); _animationController = AnimationController( duration: const Duration(milliseconds: 600), vsync: this, @@ -653,7 +655,7 @@ class _HomeState extends State with SingleTickerProviderStateMixin { body: showMoodOMeterAfterAppTour ?? false ? HomePageSkeleton() - : FutureBuilder( + : FutureBuilder( future: bannerMoodOMeterFutureGroup .future, //MoodOMeterService().getMoodOMeter(), builder: (context, snapshot) { @@ -1130,6 +1132,7 @@ class _BannerContentState extends State { int _current = 0; late List bannerContent; var shortClipNLikesFutureGrp = FutureGroup(); + final box = GetStorage(); RxBool showPodcast = true.obs; List list = [ diff --git a/gsf/lib/views/pages/home/home_page.dart b/gsf/lib/views/pages/home/home_page.dart index ad3e1fb..e962df3 100644 --- a/gsf/lib/views/pages/home/home_page.dart +++ b/gsf/lib/views/pages/home/home_page.dart @@ -8,6 +8,7 @@ import 'package:get_storage/get_storage.dart'; import 'package:gsp_app/modals/manage_banner_model.dart'; import 'package:gsp_app/repository/response_data.dart'; import 'package:gsp_app/repository/services/cj/manage_banner_service.dart'; +import 'package:gsp_app/repository/services/feedbackServices.dart'; import 'package:gsp_app/view_model/app_data_controller.dart'; import 'package:gsp_app/views/pages/bioMaker/add_scale.dart'; import 'package:gsp_app/views/pages/signIn/sign_in.dart'; @@ -41,6 +42,7 @@ class _HomePageState extends State { void initState() { listenDynamicLinks(); callingBannerApiForHomeScreen(); + super.initState(); } @@ -94,6 +96,15 @@ class _HomePageState extends State { }); } + // void callingFeedbackApi() { + // FeedbackServices().getFeedbackApi().then((resData) { + // if (resData == ResponseStatus.SUCCESS) { + // //MANAGE BANNER SUCCESS + // getFeedback = resData.data; + // } + // }); + // } + void callingBannerApiForHomeScreen() { print("calling custom Banner api"); ManageBannerService().fetchManageBanner().then((resModel) { diff --git a/gsf/lib/views/pages/settings/ratings.dart b/gsf/lib/views/pages/settings/ratings.dart index 6b90f23..d07a624 100644 --- a/gsf/lib/views/pages/settings/ratings.dart +++ b/gsf/lib/views/pages/settings/ratings.dart @@ -1,6 +1,12 @@ +import 'dart:developer'; + +import 'package:another_flushbar/flushbar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:get/get.dart'; +import '../../../api/ResponseManager.dart'; +import '../../../repository/services/rate_usServices.dart'; import '../../components/appbar.dart'; import '../../components/btn.dart'; import '../../theme.dart'; @@ -12,10 +18,54 @@ class Ratings extends StatefulWidget { State createState() => _RatingsState(); } +var _rating = 0; + class _RatingsState extends State { - var _rating = 0; @override Widget build(BuildContext context) { + _RateUsbutton() async { + if (_rating == 0) { + Flushbar( + backgroundColor: Colors.red, + message: 'Rate your experience!', + duration: Duration(seconds: 3), + ).show(context); + return; + } + Map updata = { + "rate_us": _rating.toString(), + }; + + final resp = await RateUsServices().postRateUs(updata); + if (resp.status == ResponseStatus.SUCCESS) { + // btnController.reset(); + // Get.to(() => BlogMain()); + Flushbar( + backgroundColor: Colors.green, + message: 'Your feedback is sent successfully!', + duration: Duration(seconds: 3), + ).show(context); + + setState(() { + _rating = 0; + }); + // _textarea.clear(); + } else if (resp.status == ResponseStatus.FAILED) { + if (resp.data["success"] == false) { + log("failed error msg is :- ${resp.data} "); + Get.snackbar("Error", resp.data["message"], + margin: EdgeInsets.all(8), + snackStyle: SnackStyle.FLOATING, + snackPosition: SnackPosition.BOTTOM); + } else { + Get.snackbar("Error", "connection failed", + margin: EdgeInsets.all(8), + snackStyle: SnackStyle.FLOATING, + snackPosition: SnackPosition.BOTTOM); + } + } + } + return Scaffold( backgroundColor: ColorConstants.kBlack, appBar: PreferredSize( @@ -59,6 +109,7 @@ class _RatingsState extends State { onPressed: () { setState(() { _rating = index + 1; + print('rating------$_rating'); }); }, icon: index < _rating @@ -79,7 +130,11 @@ class _RatingsState extends State { const SizedBox(height: 20), Padding( padding: const EdgeInsets.symmetric(horizontal: 20.0), - child: FullWdtBtn(btnText: 'Submit', onTap: () {}), + child: FullWdtBtn( + btnText: 'Submit', + onTap: () { + _RateUsbutton(); + }), ), const Spacer( flex: 2, diff --git a/gsf/lib/views/pages/settings/setting_main.dart b/gsf/lib/views/pages/settings/setting_main.dart index 9e27330..bb968c4 100644 --- a/gsf/lib/views/pages/settings/setting_main.dart +++ b/gsf/lib/views/pages/settings/setting_main.dart @@ -50,24 +50,24 @@ class _SettingsState extends State { Get.to(() => const Accounts()); }, ), - // const SizedBox(height: 10), - // accountsTab( - // 'Rate Us', - // () { - // Get.to( - // () => const Ratings(), - // ); - // }, - // ), - // const SizedBox(height: 10), - // accountsTab( - // 'Feedback', - // () { - // Get.to( - // () => const FeedBack(), - // ); - // }, - // ), + const SizedBox(height: 10), + accountsTab( + 'Rate Us', + () { + Get.to( + () => const Ratings(), + ); + }, + ), + const SizedBox(height: 10), + accountsTab( + 'Feedback', + () { + Get.to( + () => const FeedBack(), + ); + }, + ), const SizedBox(height: 10), Row( children: [ diff --git a/gsf/lib/views/pages/sidebar.dart b/gsf/lib/views/pages/sidebar.dart index 33baa60..2a3e02a 100644 --- a/gsf/lib/views/pages/sidebar.dart +++ b/gsf/lib/views/pages/sidebar.dart @@ -21,6 +21,7 @@ import '../../view_model/home_controller.dart'; import '../../repository/services/complete_profile_service.dart'; import '../../repository/services/edit_profile_service.dart'; import '../theme.dart'; +import 'blog/blog_main.dart'; import 'contact_us.dart'; import 'faq/about_gsf.dart'; import 'faq/about_gsf_accordian.dart'; @@ -192,14 +193,15 @@ class _AppDrawerState extends State { ), false), const SizedBox(height: 15), - // menuWidget( - // 'news_articles', - // 'News & Articles', - // () => Get.to( - // () => const BlogMain(), - // ), - // ), - // const SizedBox(height: 15), + menuWidget( + 'news_articles', + 'News & Articles', + () => Get.to( + () => const BlogMain(), + ), + false + ), + const SizedBox(height: 15), // menuWidget( // 'instagram', // 'GSF Instagram Handle', diff --git a/gsf/pubspec.yaml b/gsf/pubspec.yaml index 6322123..7066fe1 100644 --- a/gsf/pubspec.yaml +++ b/gsf/pubspec.yaml @@ -3,7 +3,7 @@ description: A new Flutter project. # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev +publish_to: "none" # Remove this line if you wish to publish to pub.dev # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 @@ -30,7 +30,6 @@ dependencies: flutter: sdk: flutter - # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.2 @@ -53,12 +52,12 @@ dependencies: fl_chart: ^0.55.2 vimeo_video_player: get_storage: ^2.0.3 - animations: ^2.0.2 + animations: ^2.0.2 lottie: just_audio: ^0.9.30 audio_video_progress_bar: rxdart: ^0.27.7 - dropdown_button2: + dropdown_button2: connectivity_plus: ^4.0.2 local_auth: ^2.1.3 shared_preferences: ^2.0.16 @@ -104,7 +103,7 @@ dependencies: flutter_custom_tabs: ^1.0.4 pedometer: ^4.0.1 syncfusion_flutter_charts: ^20.2.36 - syncfusion_flutter_pdfviewer: any + syncfusion_flutter_pdfviewer: any flutter_cache_manager: ^3.3.1 animated_horizontal_calendar: ^0.0.3 firebase_crashlytics: any @@ -118,14 +117,12 @@ dependencies: flutter_bloc: ^8.1.2 video_player: ^2.6.1 flutter_isolate: ^2.0.2 - injectable: ^1.4.1 - + injectable: ^1.4.1 # flutter_launcher_icons: ^0.12.0 # dependency_overrides: # win32: '4.0.0' # Use a compatible version - dev_dependencies: flutter_test: sdk: flutter @@ -155,7 +152,6 @@ flutter_icons: # The following section is specific to Flutter. flutter: - # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. @@ -163,31 +159,31 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - - assets/image/ - - assets/image/profile/ - - assets/image/feedback_img/ - - assets/image/menuicon/ - - assets/image/sidebarIcons/ - - assets/image/profileIcons/ - - assets/image/podcast/ - - assets/image/faq/ - - assets/image/feedback/ - - assets/image/blog/ - - assets/image/setting/ - - assets/image/courses/ - - assets/audio/ - - assets/image/quiz_imgs/ - - assets/image/mood_icons/active/ - - assets/image/mood_icons/inactive/ - - assets/image/badges/ - - assets/image/arrows/ - - assets/image/filter_leaderboard/ - - assets/image/filter_leaderboard/filters/ - - assets/image/filter_leaderboard/gender/ - - assets/image/filter_leaderboard/date_range/ - - assets/image/filter_leaderboard/group_level/ - - assets/image/overview_guide/ - - assets/lottie/ + - assets/image/ + - assets/image/profile/ + - assets/image/feedback_img/ + - assets/image/menuicon/ + - assets/image/sidebarIcons/ + - assets/image/profileIcons/ + - assets/image/podcast/ + - assets/image/faq/ + - assets/image/feedback/ + - assets/image/blog/ + - assets/image/setting/ + - assets/image/courses/ + - assets/audio/ + - assets/image/quiz_imgs/ + - assets/image/mood_icons/active/ + - assets/image/mood_icons/inactive/ + - assets/image/badges/ + - assets/image/arrows/ + - assets/image/filter_leaderboard/ + - assets/image/filter_leaderboard/filters/ + - assets/image/filter_leaderboard/gender/ + - assets/image/filter_leaderboard/date_range/ + - assets/image/filter_leaderboard/group_level/ + - assets/image/overview_guide/ + - assets/lottie/ # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware. @@ -219,8 +215,8 @@ flutter: weight: 700 - asset: assets/fonts/Poppins-ExtraBold.ttf weight: 800 - # - asset: fonts/Schyler-Italic.ttf - # style: italic + # - asset: fonts/Schyler-Italic.ttf + # style: italic - family: SFPRO fonts: - asset: assets/fonts/FontsFree-Net-SFProText-Light-1.ttf