├── .flutter-plugins
├── .flutter-plugins-dependencies
├── .gitignore
├── .idea
└── flutter_pub_dev.iml
├── LICENSE
├── README.md
├── android
├── .gitignore
├── .idea
│ ├── .gitignore
│ ├── caches
│ │ └── build_file_checksums.ser
│ ├── compiler.xml
│ ├── gradle.xml
│ ├── jarRepositories.xml
│ ├── kotlinc.xml
│ ├── libraries
│ │ ├── Dart_SDK.xml
│ │ ├── Gradle___Users_edvaldo_Projects_extra_work_flutter_pub_dev_build_app_intermediates_flutter_debug_libs_jar.xml
│ │ ├── Gradle__androidx_activity_activity_1_0_0_aar.xml
│ │ ├── Gradle__androidx_annotation_annotation_1_2_0.xml
│ │ ├── Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml
│ │ ├── Gradle__androidx_arch_core_core_common_2_1_0.xml
│ │ ├── Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml
│ │ ├── Gradle__androidx_collection_collection_1_1_0.xml
│ │ ├── Gradle__androidx_core_core_1_6_0_aar.xml
│ │ ├── Gradle__androidx_customview_customview_1_0_0_aar.xml
│ │ ├── Gradle__androidx_fragment_fragment_1_1_0_aar.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_common_2_2_0.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_common_java8_2_2_0.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_runtime_2_2_0_aar.xml
│ │ ├── Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml
│ │ ├── Gradle__androidx_loader_loader_1_0_0_aar.xml
│ │ ├── Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml
│ │ ├── Gradle__androidx_test_core_1_0_0_aar.xml
│ │ ├── Gradle__androidx_test_espresso_espresso_core_3_2_0_aar.xml
│ │ ├── Gradle__androidx_test_espresso_espresso_idling_resource_3_2_0_aar.xml
│ │ ├── Gradle__androidx_test_monitor_1_2_0_aar.xml
│ │ ├── Gradle__androidx_test_rules_1_2_0_aar.xml
│ │ ├── Gradle__androidx_test_runner_1_2_0_aar.xml
│ │ ├── Gradle__androidx_tracing_tracing_1_0_0_aar.xml
│ │ ├── Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml
│ │ ├── Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml
│ │ ├── Gradle__androidx_window_window_1_0_0_beta04_aar.xml
│ │ ├── Gradle__androidx_window_window_java_1_0_0_beta04_aar.xml
│ │ ├── Gradle__backport_util_concurrent_backport_util_concurrent_3_1.xml
│ │ ├── Gradle__classworlds_classworlds_1_1_alpha_2.xml
│ │ ├── Gradle__com_almworks_sqlite4java_sqlite4java_0_282.xml
│ │ ├── Gradle__com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework_2_1.xml
│ │ ├── Gradle__com_google_auto_auto_common_0_8.xml
│ │ ├── Gradle__com_google_auto_service_auto_service_1_0_rc4.xml
│ │ ├── Gradle__com_google_code_findbugs_jsr305_3_0_2.xml
│ │ ├── Gradle__com_google_errorprone_error_prone_annotations_2_2_0.xml
│ │ ├── Gradle__com_google_errorprone_error_prone_annotations_2_3_2.xml
│ │ ├── Gradle__com_google_guava_failureaccess_1_0_1.xml
│ │ ├── Gradle__com_google_guava_guava_27_0_1_jre.xml
│ │ ├── Gradle__com_google_guava_guava_28_1_android.xml
│ │ ├── Gradle__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml
│ │ ├── Gradle__com_google_j2objc_j2objc_annotations_1_1.xml
│ │ ├── Gradle__com_google_j2objc_j2objc_annotations_1_3.xml
│ │ ├── Gradle__com_google_protobuf_protobuf_java_2_6_1.xml
│ │ ├── Gradle__com_ibm_icu_icu4j_53_1.xml
│ │ ├── Gradle__com_squareup_javawriter_2_1_1.xml
│ │ ├── Gradle__io_flutter_arm64_v8a_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml
│ │ ├── Gradle__io_flutter_armeabi_v7a_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml
│ │ ├── Gradle__io_flutter_flutter_embedding_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml
│ │ ├── Gradle__io_flutter_x86_64_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml
│ │ ├── Gradle__io_flutter_x86_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml
│ │ ├── Gradle__javax_annotation_javax_annotation_api_1_3_2.xml
│ │ ├── Gradle__javax_inject_javax_inject_1.xml
│ │ ├── Gradle__junit_junit_4_12.xml
│ │ ├── Gradle__nekohtml_nekohtml_1_9_6_2.xml
│ │ ├── Gradle__nekohtml_xercesMinimal_1_9_6_2.xml
│ │ ├── Gradle__net_bytebuddy_byte_buddy_1_10_20.xml
│ │ ├── Gradle__net_bytebuddy_byte_buddy_agent_1_10_20.xml
│ │ ├── Gradle__net_sf_kxml_kxml2_2_3_0.xml
│ │ ├── Gradle__org_apache_ant_ant_1_8_0.xml
│ │ ├── Gradle__org_apache_ant_ant_launcher_1_8_0.xml
│ │ ├── Gradle__org_apache_maven_maven_ant_tasks_2_1_3.xml
│ │ ├── Gradle__org_apache_maven_maven_artifact_2_2_1.xml
│ │ ├── Gradle__org_apache_maven_maven_artifact_manager_2_2_1.xml
│ │ ├── Gradle__org_apache_maven_maven_error_diagnostics_2_2_1.xml
│ │ ├── Gradle__org_apache_maven_maven_model_2_2_1.xml
│ │ ├── Gradle__org_apache_maven_maven_plugin_registry_2_2_1.xml
│ │ ├── Gradle__org_apache_maven_maven_profile_2_2_1.xml
│ │ ├── Gradle__org_apache_maven_maven_project_2_2_1.xml
│ │ ├── Gradle__org_apache_maven_maven_repository_metadata_2_2_1.xml
│ │ ├── Gradle__org_apache_maven_maven_settings_2_2_1.xml
│ │ ├── Gradle__org_apache_maven_wagon_wagon_file_1_0_beta_6.xml
│ │ ├── Gradle__org_apache_maven_wagon_wagon_http_lightweight_1_0_beta_6.xml
│ │ ├── Gradle__org_apache_maven_wagon_wagon_http_shared_1_0_beta_6.xml
│ │ ├── Gradle__org_apache_maven_wagon_wagon_provider_api_1_0_beta_6.xml
│ │ ├── Gradle__org_bouncycastle_bcprov_jdk15on_1_52.xml
│ │ ├── Gradle__org_checkerframework_checker_compat_qual_2_5_5.xml
│ │ ├── Gradle__org_checkerframework_checker_qual_2_5_2.xml
│ │ ├── Gradle__org_codehaus_mojo_animal_sniffer_annotations_1_17.xml
│ │ ├── Gradle__org_codehaus_mojo_animal_sniffer_annotations_1_18.xml
│ │ ├── Gradle__org_codehaus_plexus_plexus_container_default_1_0_alpha_9_stable_1.xml
│ │ ├── Gradle__org_codehaus_plexus_plexus_interpolation_1_11.xml
│ │ ├── Gradle__org_codehaus_plexus_plexus_utils_1_5_15.xml
│ │ ├── Gradle__org_hamcrest_hamcrest_core_1_3.xml
│ │ ├── Gradle__org_hamcrest_hamcrest_integration_1_3.xml
│ │ ├── Gradle__org_hamcrest_hamcrest_library_1_3.xml
│ │ ├── Gradle__org_jetbrains_annotations_13_0.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_5_31.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_7_21.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_5_31.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_7_21.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_5_30.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_7_21.xml
│ │ ├── Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_5_30.xml
│ │ ├── Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_5_2.xml
│ │ ├── Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_5_2.xml
│ │ ├── Gradle__org_mockito_mockito_core_1_10_19.xml
│ │ ├── Gradle__org_mockito_mockito_core_3_9_0.xml
│ │ ├── Gradle__org_mockito_mockito_inline_3_9_0.xml
│ │ ├── Gradle__org_objenesis_objenesis_3_2.xml
│ │ ├── Gradle__org_ow2_asm_asm_7_0.xml
│ │ ├── Gradle__org_ow2_asm_asm_analysis_7_0.xml
│ │ ├── Gradle__org_ow2_asm_asm_commons_7_0.xml
│ │ ├── Gradle__org_ow2_asm_asm_tree_7_0.xml
│ │ ├── Gradle__org_ow2_asm_asm_util_7_0.xml
│ │ ├── Gradle__org_robolectric_annotations_4_3.xml
│ │ ├── Gradle__org_robolectric_junit_4_3.xml
│ │ ├── Gradle__org_robolectric_pluginapi_4_3.xml
│ │ ├── Gradle__org_robolectric_plugins_maven_dependency_resolver_4_3.xml
│ │ ├── Gradle__org_robolectric_resources_4_3.xml
│ │ ├── Gradle__org_robolectric_robolectric_4_3.xml
│ │ ├── Gradle__org_robolectric_sandbox_4_3.xml
│ │ ├── Gradle__org_robolectric_shadowapi_4_3.xml
│ │ ├── Gradle__org_robolectric_shadows_framework_4_3.xml
│ │ ├── Gradle__org_robolectric_utils_4_3.xml
│ │ └── Gradle__org_robolectric_utils_reflector_4_3.xml
│ ├── misc.xml
│ ├── modules.xml
│ ├── modules
│ │ ├── 92155287
│ │ │ └── url_launcher_web-2.0.9.android.url_launcher_web.iml
│ │ ├── 510311020
│ │ │ ├── android.share.androidTest.iml
│ │ │ ├── android.share.iml
│ │ │ ├── android.share.main.iml
│ │ │ └── android.share.unitTest.iml
│ │ ├── 939540491
│ │ │ └── shared_preferences-2.0.13.android.shared_preferences.iml
│ │ ├── 999865580
│ │ │ └── shared_preferences_windows-2.1.0.android.shared_preferences_windows.iml
│ │ ├── 1401572111
│ │ │ └── path_provider_linux-2.1.5.android.path_provider_linux.iml
│ │ ├── 1825594717
│ │ │ └── shared_preferences_linux-2.1.0.android.shared_preferences_linux.iml
│ │ ├── -1014497123
│ │ │ └── path_provider_windows-2.0.5.android.path_provider_windows.iml
│ │ ├── -1126996793
│ │ │ ├── io.flutter.plugins.urllauncher.android.url_launcher_android.androidTest~1.iml
│ │ │ ├── io.flutter.plugins.urllauncher.android.url_launcher_android.iml
│ │ │ ├── io.flutter.plugins.urllauncher.android.url_launcher_android.main~1.iml
│ │ │ └── io.flutter.plugins.urllauncher.android.url_launcher_android.unitTest~1.iml
│ │ ├── -1143769122
│ │ │ └── shared_preferences_macos-2.0.3.android.shared_preferences_macos.iml
│ │ ├── -1469823553
│ │ │ └── shared_preferences_web-2.0.3.android.shared_preferences_web.iml
│ │ ├── -1528300327
│ │ │ ├── io.flutter.plugins.sharedpreferences.android.shared_preferences_android.androidTest~1.iml
│ │ │ ├── io.flutter.plugins.sharedpreferences.android.shared_preferences_android.iml
│ │ │ ├── io.flutter.plugins.sharedpreferences.android.shared_preferences_android.main~1.iml
│ │ │ └── io.flutter.plugins.sharedpreferences.android.shared_preferences_android.unitTest~1.iml
│ │ ├── -2124054156
│ │ │ ├── android.integration_test.androidTest.iml
│ │ │ ├── android.integration_test.iml
│ │ │ ├── android.integration_test.main.iml
│ │ │ └── android.integration_test.unitTest.iml
│ │ ├── -2130271511
│ │ │ └── url_launcher_ios-6.0.15.android.url_launcher_ios.iml
│ │ ├── -294890834
│ │ │ └── url_launcher_macos-3.0.0.android.url_launcher_macos.iml
│ │ ├── -371776130
│ │ │ └── url_launcher_windows-3.0.0.android.url_launcher_windows.iml
│ │ ├── -428777967
│ │ │ └── url_launcher-6.0.20.android.url_launcher.iml
│ │ ├── -562675594
│ │ │ └── shared_preferences_ios-2.1.0.android.shared_preferences_ios.iml
│ │ ├── -950939025
│ │ │ └── url_launcher_linux-3.0.0.android.url_launcher_linux.iml
│ │ ├── android.iml
│ │ └── app
│ │ │ ├── android.app.androidTest.iml
│ │ │ ├── android.app.iml
│ │ │ ├── android.app.main.iml
│ │ │ └── android.app.unitTest.iml
│ └── vcs.xml
├── android.iml
├── app
│ ├── app.iml
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ ├── AndroidManifest.xml
│ │ └── debug.iml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── nunioz
│ │ │ │ └── app
│ │ │ │ └── pub_dev
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable
│ │ │ ├── launch_background.xml
│ │ │ └── pubicon.png
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ └── values
│ │ │ └── styles.xml
│ │ └── profile
│ │ ├── AndroidManifest.xml
│ │ └── profile.iml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── pub_dev_android.iml
├── res
│ └── values
│ │ └── strings_en.arb
└── settings.gradle
├── apple.png
├── assets
├── fonts
│ ├── DINNextRoundedLTPro-Bold.otf
│ └── DINNextRoundedLTPro-Regular.otf
├── icons
│ ├── bug.svg
│ ├── download.svg
│ ├── globe.svg
│ ├── info.svg
│ ├── repository.svg
│ ├── search.svg
│ ├── settings.svg
│ ├── share.svg
│ └── swip.svg
├── images
│ ├── dartlogo.png
│ └── pubicon.png
└── locale
│ ├── i18n_en.json
│ ├── i18n_pt.json
│ └── i18n_zh.json
├── dartlogo.png
├── flutter_pub_dev.iml
├── google-play.png
├── integration_test
├── app_test.dart
├── detail_package_test.dart
└── search_package_test.dart
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Podfile
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── Icon-App-20x20@1x.png
│ │ ├── Icon-App-20x20@2x-1.png
│ │ ├── Icon-App-20x20@2x.png
│ │ ├── Icon-App-20x20@3x.png
│ │ ├── Icon-App-29x29@1x-1.png
│ │ ├── Icon-App-29x29@1x.png
│ │ ├── Icon-App-29x29@2x-1.png
│ │ ├── Icon-App-29x29@2x.png
│ │ ├── Icon-App-29x29@3x.png
│ │ ├── Icon-App-40x40@1x.png
│ │ ├── Icon-App-40x40@2x-1.png
│ │ ├── Icon-App-40x40@2x.png
│ │ ├── Icon-App-40x40@3x.png
│ │ ├── Icon-App-60x60@2x.png
│ │ ├── Icon-App-60x60@3x.png
│ │ ├── Icon-App-76x76@1x.png
│ │ ├── Icon-App-76x76@2x.png
│ │ ├── Icon-App-83.5x83.5@2x.png
│ │ └── ItunesArtwork@2x.png
│ └── LaunchImage.imageset
│ │ ├── Contents.json
│ │ ├── LaunchImage.png
│ │ ├── LaunchImage@2x.png
│ │ ├── LaunchImage@3x.png
│ │ └── README.md
│ ├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
│ ├── Info.plist
│ ├── Runner-Bridging-Header.h
│ └── Runner.entitlements
├── lib
├── main.dart
├── router.dart
└── src
│ ├── app.dart
│ ├── application
│ ├── core
│ │ ├── base_view_model.dart
│ │ └── base_view_model.g.dart
│ ├── packages
│ │ ├── detail_package_view_model.dart
│ │ ├── detail_package_view_model.g.dart
│ │ ├── packages_view_model.dart
│ │ └── packages_view_model.g.dart
│ ├── search
│ │ ├── search_view_model.dart
│ │ └── search_view_model.g.dart
│ └── settings
│ │ ├── config_view_model.dart
│ │ └── config_view_model.g.dart
│ ├── domain
│ ├── core
│ │ ├── api_service.dart
│ │ ├── data
│ │ │ └── config_preference.dart
│ │ ├── i_advanced_service.dart
│ │ ├── navigation
│ │ │ └── navigation_service.dart
│ │ ├── request_failure.dart
│ │ └── request_failure.freezed.dart
│ ├── packages
│ │ ├── entities
│ │ │ ├── dependency.dart
│ │ │ ├── environment.dart
│ │ │ ├── metric.dart
│ │ │ ├── package.dart
│ │ │ ├── pubspec.dart
│ │ │ ├── score.dart
│ │ │ └── version.dart
│ │ ├── i_package_repository.dart
│ │ └── i_package_service.dart
│ └── search
│ │ ├── i_search_repository.dart
│ │ └── i_search_service.dart
│ ├── infrastructure
│ ├── core
│ │ ├── data
│ │ │ └── default_config_preference.dart
│ │ ├── default_advanced_service.dart
│ │ ├── mapper.dart
│ │ ├── navigation
│ │ │ └── default_navigation_service.dart
│ │ └── network_builder.dart
│ ├── packages
│ │ ├── base_package_repository.dart
│ │ └── base_package_service.dart
│ └── search
│ │ ├── base_search_repository.dart
│ │ └── base_search_service.dart
│ ├── injection
│ └── injection_config.dart
│ ├── l18n.dart
│ ├── presentation
│ ├── core
│ │ ├── base_widget.dart
│ │ ├── custom_progress.dart
│ │ ├── custom_refresh.dart
│ │ ├── custom_switch.dart
│ │ ├── dependency_item.dart
│ │ ├── failure_message_view.dart
│ │ ├── side_rounded.dart
│ │ ├── styles.dart
│ │ ├── svg_icon.dart
│ │ ├── tag.dart
│ │ ├── title_switch.dart
│ │ └── version_item.dart
│ ├── packages
│ │ ├── detail_package_screen.dart
│ │ ├── item_package.dart
│ │ └── packages_screen.dart
│ ├── search
│ │ ├── search_item.dart
│ │ └── search_screen.dart
│ ├── settings
│ │ ├── config_builder.dart
│ │ └── settings_screen.dart
│ └── splash_view_screen.dart
│ └── utils
│ ├── colors.dart
│ ├── constants.dart
│ ├── size.dart
│ ├── timed.dart
│ └── util.dart
├── pub_dev.iml
├── pubspec.lock
├── pubspec.yaml
├── screenshots
├── smartmockups_klcem8w7.png
├── smartmockups_klcen4ty.png
├── smartmockups_klceoqtt.png
└── smartmockups_klcesngj.png
├── stores.png
└── test
└── src
├── application
└── package
│ ├── state_detail_package_test.dart
│ └── state_search_package_test.dart
├── infrastructure
├── core
│ └── data
│ │ └── package_fake_data.dart
├── mocks.dart
├── mocks.mocks.dart
└── package
│ ├── get_list_of_package_test.dart
│ ├── get_package_detail_test.dart
│ └── search_package_test.dart
└── presentation
└── package
└── detail_package_page_test.dart
/.flutter-plugins:
--------------------------------------------------------------------------------
1 | # This is a generated file; do not edit or check into version control.
2 | integration_test=/Users/edvaldo/flutter/packages/integration_test/
3 | path_provider_linux=/Users/edvaldo/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.11/
4 | path_provider_windows=/Users/edvaldo/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.7/
5 | share=/Users/edvaldo/.pub-cache/hosted/pub.dev/share-2.0.4/
6 | shared_preferences=/Users/edvaldo/.pub-cache/hosted/pub.dev/shared_preferences-2.1.2/
7 | shared_preferences_android=/Users/edvaldo/.pub-cache/hosted/pub.dev/shared_preferences_android-2.1.4/
8 | shared_preferences_foundation=/Users/edvaldo/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.2.2/
9 | shared_preferences_linux=/Users/edvaldo/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.2.0/
10 | shared_preferences_web=/Users/edvaldo/.pub-cache/hosted/pub.dev/shared_preferences_web-2.1.0/
11 | shared_preferences_windows=/Users/edvaldo/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.2.0/
12 | url_launcher=/Users/edvaldo/.pub-cache/hosted/pub.dev/url_launcher-6.1.11/
13 | url_launcher_android=/Users/edvaldo/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.36/
14 | url_launcher_ios=/Users/edvaldo/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.4/
15 | url_launcher_linux=/Users/edvaldo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.5/
16 | url_launcher_macos=/Users/edvaldo/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.5/
17 | url_launcher_web=/Users/edvaldo/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.17/
18 | url_launcher_windows=/Users/edvaldo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.6/
19 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Project exclude paths
2 | /.dart_tool/
3 | /build/
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
--------------------------------------------------------------------------------
/android/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /workspace.xml
--------------------------------------------------------------------------------
/android/.idea/caches/build_file_checksums.ser:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/android/.idea/caches/build_file_checksums.ser
--------------------------------------------------------------------------------
/android/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/.idea/jarRepositories.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/android/.idea/kotlinc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle___Users_edvaldo_Projects_extra_work_flutter_pub_dev_build_app_intermediates_flutter_debug_libs_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_activity_activity_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_core_core_1_6_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_1_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_java8_2_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_test_core_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_test_monitor_1_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_test_rules_1_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_test_runner_1_2_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_tracing_tracing_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_window_window_1_0_0_beta04_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__androidx_window_window_java_1_0_0_beta04_aar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__backport_util_concurrent_backport_util_concurrent_3_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__classworlds_classworlds_1_1_alpha_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_almworks_sqlite4java_sqlite4java_0_282.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_auto_auto_common_0_8.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_auto_service_auto_service_1_0_rc4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_errorprone_error_prone_annotations_2_2_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_errorprone_error_prone_annotations_2_3_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_guava_failureaccess_1_0_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_guava_guava_27_0_1_jre.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_guava_guava_28_1_android.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_guava_listenablefuture_9999_0_empty_to_avoid_conflict_with_guava.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_j2objc_j2objc_annotations_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_j2objc_j2objc_annotations_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_google_protobuf_protobuf_java_2_6_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_ibm_icu_icu4j_53_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_flutter_arm64_v8a_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_flutter_armeabi_v7a_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_flutter_flutter_embedding_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_flutter_x86_64_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__io_flutter_x86_debug_1_0_0_45f6e009110df4f34ec2cf99f63cf73b71b7a420.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_3_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__junit_junit_4_12.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__nekohtml_nekohtml_1_9_6_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__nekohtml_xercesMinimal_1_9_6_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_1_10_20.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__net_bytebuddy_byte_buddy_agent_1_10_20.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_ant_ant_1_8_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_ant_ant_launcher_1_8_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_ant_tasks_2_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_artifact_2_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_artifact_manager_2_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_error_diagnostics_2_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_model_2_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_plugin_registry_2_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_profile_2_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_project_2_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_repository_metadata_2_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_maven_settings_2_2_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_wagon_wagon_file_1_0_beta_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_wagon_wagon_http_lightweight_1_0_beta_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_wagon_wagon_http_shared_1_0_beta_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_apache_maven_wagon_wagon_provider_api_1_0_beta_6.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_bouncycastle_bcprov_jdk15on_1_52.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_checkerframework_checker_compat_qual_2_5_5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_checkerframework_checker_qual_2_5_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_codehaus_mojo_animal_sniffer_annotations_1_17.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_codehaus_mojo_animal_sniffer_annotations_1_18.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_codehaus_plexus_plexus_container_default_1_0_alpha_9_stable_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_codehaus_plexus_plexus_interpolation_1_11.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_codehaus_plexus_plexus_utils_1_5_15.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_5_31.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_7_21.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_5_31.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_7_21.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_5_30.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_7_21.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_5_30.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_5_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_5_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_mockito_mockito_core_1_10_19.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_mockito_mockito_core_3_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_mockito_mockito_inline_3_9_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_objenesis_objenesis_3_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_7_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_analysis_7_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_commons_7_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_tree_7_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_ow2_asm_asm_util_7_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_annotations_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_junit_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_pluginapi_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_plugins_maven_dependency_resolver_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_resources_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_robolectric_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_sandbox_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_shadowapi_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_shadows_framework_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_utils_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/libraries/Gradle__org_robolectric_utils_reflector_4_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/android/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/android/.idea/modules/-1014497123/path_provider_windows-2.0.5.android.path_provider_windows.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/-1143769122/shared_preferences_macos-2.0.3.android.shared_preferences_macos.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/-1469823553/shared_preferences_web-2.0.3.android.shared_preferences_web.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/-2130271511/url_launcher_ios-6.0.15.android.url_launcher_ios.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/-294890834/url_launcher_macos-3.0.0.android.url_launcher_macos.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/-371776130/url_launcher_windows-3.0.0.android.url_launcher_windows.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/-428777967/url_launcher-6.0.20.android.url_launcher.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/-562675594/shared_preferences_ios-2.1.0.android.shared_preferences_ios.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/-950939025/url_launcher_linux-3.0.0.android.url_launcher_linux.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/1401572111/path_provider_linux-2.1.5.android.path_provider_linux.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/1825594717/shared_preferences_linux-2.1.0.android.shared_preferences_linux.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/92155287/url_launcher_web-2.0.9.android.url_launcher_web.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/939540491/shared_preferences-2.0.13.android.shared_preferences.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/999865580/shared_preferences_windows-2.1.0.android.shared_preferences_windows.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/android/.idea/modules/android.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/android/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/android.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/debug/debug.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/nunioz/app/pub_dev/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package nunioz.app.pub_dev
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/pubicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/android/app/src/main/res/drawable/pubicon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/profile/profile.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.7.21'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:7.1.2'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | mavenCentral()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | }
25 | subprojects {
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | tasks.register("clean", Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Feb 12 16:17:16 WAT 2021
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
7 |
--------------------------------------------------------------------------------
/android/pub_dev_android.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/android/res/values/strings_en.arb:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/apple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/apple.png
--------------------------------------------------------------------------------
/assets/fonts/DINNextRoundedLTPro-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/assets/fonts/DINNextRoundedLTPro-Bold.otf
--------------------------------------------------------------------------------
/assets/fonts/DINNextRoundedLTPro-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/assets/fonts/DINNextRoundedLTPro-Regular.otf
--------------------------------------------------------------------------------
/assets/icons/download.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/assets/icons/globe.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/assets/icons/info.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/assets/icons/repository.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/icons/search.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/assets/images/dartlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/assets/images/dartlogo.png
--------------------------------------------------------------------------------
/assets/images/pubicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/assets/images/pubicon.png
--------------------------------------------------------------------------------
/assets/locale/i18n_zh.json:
--------------------------------------------------------------------------------
1 | {
2 | "loading": "加载中",
3 | "try_again": "重试",
4 | "connection_failed": "连接失败",
5 | "no_internet_access": "无法访问网络",
6 | "server_failure": "出现临时错误,请重试",
7 | "app": "pub.dev",
8 | "no_results_found": "未找到结果",
9 | "error_readme": "该库未上传 README 文档",
10 | "update_view": "向下滑动以更新",
11 | "search_package": "搜索 Package",
12 | "search_invalidates": "搜索无效",
13 | "app_desc": "pub.dev 的 APP 前端",
14 | "git_desc": "源代码",
15 | "store_desc": "在谷歌商店中查看",
16 | "website": "网站",
17 | "versions": "版本",
18 | "about": "关于",
19 | "likes": "喜欢",
20 | "popularity": "人气",
21 | "points": "Pub points",
22 | "dependencies": "依赖",
23 | "dev_dependencies": "开发依赖",
24 | "search_desc": "搜索依赖",
25 | "language": "语言",
26 | "portuguese": "葡萄牙语",
27 | "english": "英语",
28 | "china": "中文",
29 | "dark_mode": "暗色模式",
30 | "settings": "设置",
31 | "environment": "依赖环境",
32 | "latest_version": "最新",
33 | "published": "发布",
34 | "time_type": "# * ago",
35 | "seconds": "Seconds",
36 | "second": "Second",
37 | "minutes": "Minutes",
38 | "minute": "Minute",
39 | "hours": "Hours",
40 | "hour": "Hour",
41 | "days": "Days",
42 | "day": "Day",
43 | "weeks": "Weeks",
44 | "week": "Week",
45 | "months": "Months",
46 | "month": "Month",
47 | "years": "Years",
48 | "year": "Year",
49 | "now": "Now",
50 | "null_safe": "Null-safe",
51 | "changelog": "Changelog",
52 | "publisher": "Publisher",
53 | "publisher_not_found": "Unverified Uploader"
54 | }
--------------------------------------------------------------------------------
/dartlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/dartlogo.png
--------------------------------------------------------------------------------
/flutter_pub_dev.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/google-play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/google-play.png
--------------------------------------------------------------------------------
/integration_test/detail_package_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_test/flutter_test.dart';
2 | import 'package:integration_test/integration_test.dart';
3 | import 'package:flutter_package/main.dart' as app;
4 | import 'dart:math';
5 | import 'package:flutter/material.dart';
6 |
7 | void main() {
8 | IntegrationTestWidgetsFlutterBinding.ensureInitialized();
9 |
10 | testWidgets('detail of package', (tester) async {
11 | app.main();
12 |
13 | await tester.pumpAndSettle(Duration(seconds: 2));
14 |
15 | var index = Random().nextInt(50) + 1;
16 |
17 | final listFinder = find.byType(Scrollable);
18 |
19 | var itemFinder = find.byKey(ValueKey('package_$index'));
20 |
21 | expect(itemFinder, findsOneWidget);
22 |
23 | await tester.pump();
24 | await tester.pumpAndSettle(const Duration(seconds: 1));
25 | await tester.pumpAndSettle();
26 |
27 | if (index >= 5) {
28 | await tester.scrollUntilVisible(itemFinder, 500.0,
29 | duration: Duration(milliseconds: 300),
30 | scrollable: listFinder,
31 | maxScrolls: 500);
32 | }
33 |
34 | await tester.pump();
35 | await tester.pumpAndSettle(const Duration(seconds: 1));
36 | await tester.pumpAndSettle();
37 |
38 | await tester.tap(itemFinder);
39 |
40 | await tester.pump();
41 | await tester.pumpAndSettle(const Duration(seconds: 2));
42 | await tester.pumpAndSettle();
43 |
44 | var backButton = find.byKey(ValueKey('BackButton'));
45 |
46 | await tester.pumpAndSettle(const Duration(seconds: 1));
47 |
48 | await tester.tap(backButton);
49 | });
50 | }
51 |
--------------------------------------------------------------------------------
/integration_test/search_package_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_test/flutter_test.dart';
2 | import 'package:integration_test/integration_test.dart';
3 | import 'package:flutter_package/main.dart' as app;
4 | import 'package:flutter/material.dart';
5 |
6 | void main() {
7 | IntegrationTestWidgetsFlutterBinding.ensureInitialized();
8 |
9 | testWidgets('search package', (tester) async {
10 | app.main();
11 |
12 | await tester.pumpAndSettle(Duration(seconds: 2));
13 |
14 | var button = find.byTooltip('search');
15 |
16 | await tester.tap(button);
17 |
18 | await tester.pumpAndSettle(Duration(milliseconds: 800));
19 |
20 | expect(find.byType(TextField), findsOneWidget);
21 |
22 | var editText = find.byType(TextField);
23 | await tester.enterText(editText, 'avatar_letter');
24 | await tester.testTextInput.receiveAction(TextInputAction.done);
25 |
26 | await tester.pump();
27 | await tester.pumpAndSettle(const Duration(seconds: 2));
28 | await tester.pumpAndSettle();
29 |
30 | var _find = await find.byWidgetPredicate((widget) =>
31 | widget.key != null && widget.key == ValueKey('search-result'));
32 | expect(_find, findsWidgets);
33 | });
34 | }
35 |
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 11.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment this line to define a global platform for your project
2 | platform :ios, '16.0'
3 |
4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true'
6 |
7 | project 'Runner', {
8 | 'Debug' => :debug,
9 | 'Profile' => :release,
10 | 'Release' => :release,
11 | }
12 |
13 | def flutter_root
14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
15 | unless File.exist?(generated_xcode_build_settings_path)
16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
17 | end
18 |
19 | File.foreach(generated_xcode_build_settings_path) do |line|
20 | matches = line.match(/FLUTTER_ROOT\=(.*)/)
21 | return matches[1].strip if matches
22 | end
23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
24 | end
25 |
26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
27 |
28 | flutter_ios_podfile_setup
29 |
30 | target 'Runner' do
31 | use_frameworks!
32 | use_modular_headers!
33 |
34 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
35 | end
36 |
37 | post_install do |installer|
38 | installer.pods_project.targets.each do |target|
39 | flutter_additional_ios_build_settings(target)
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x-1.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
--------------------------------------------------------------------------------
/ios/Runner/Runner.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_package/src/app.dart';
3 | import 'package:flutter_package/src/application/settings/config_view_model.dart';
4 | import 'package:flutter_package/src/infrastructure/core/network_builder.dart';
5 | import 'package:flutter_package/src/injection/injection_config.dart';
6 | import 'package:shared_preferences/shared_preferences.dart';
7 |
8 | Future main() async {
9 | WidgetsFlutterBinding.ensureInitialized();
10 |
11 | var shared = await SharedPreferences.getInstance();
12 |
13 | final network = NetworkBuilder();
14 |
15 | InjectorConfig.initialize(dio: network.build(), preferences: shared);
16 |
17 | await inject().initialize();
18 |
19 | runApp(App());
20 | }
21 |
22 |
23 |
--------------------------------------------------------------------------------
/lib/src/application/core/base_view_model.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'base_view_model.dart';
4 |
5 | // **************************************************************************
6 | // StoreGenerator
7 | // **************************************************************************
8 |
9 | // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
10 |
11 | mixin _$BaseViewModel on _BaseViewModel, Store {
12 | Computed? _$isBusyComputed;
13 |
14 | @override
15 | bool get isBusy => (_$isBusyComputed ??=
16 | Computed(() => super.isBusy, name: '_BaseViewModel.isBusy'))
17 | .value;
18 |
19 | late final _$_isBusyAtom =
20 | Atom(name: '_BaseViewModel._isBusy', context: context);
21 |
22 | @override
23 | bool get _isBusy {
24 | _$_isBusyAtom.reportRead();
25 | return super._isBusy;
26 | }
27 |
28 | @override
29 | set _isBusy(bool value) {
30 | _$_isBusyAtom.reportWrite(value, super._isBusy, () {
31 | super._isBusy = value;
32 | });
33 | }
34 |
35 | late final _$_BaseViewModelActionController =
36 | ActionController(name: '_BaseViewModel', context: context);
37 |
38 | @override
39 | void setBusy(bool state) {
40 | final _$actionInfo = _$_BaseViewModelActionController.startAction(
41 | name: '_BaseViewModel.setBusy');
42 | try {
43 | return super.setBusy(state);
44 | } finally {
45 | _$_BaseViewModelActionController.endAction(_$actionInfo);
46 | }
47 | }
48 |
49 | @override
50 | String toString() {
51 | return '''
52 | isBusy: ${isBusy}
53 | ''';
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/lib/src/domain/core/api_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart';
2 |
3 | abstract class Api {
4 | const Api(this.dio);
5 | final Dio dio;
6 | }
7 |
--------------------------------------------------------------------------------
/lib/src/domain/core/data/config_preference.dart:
--------------------------------------------------------------------------------
1 | import 'package:shared_preferences/shared_preferences.dart';
2 |
3 | abstract class ConfigDataPreference {
4 | final SharedPreferences preferences;
5 |
6 | const ConfigDataPreference(this.preferences);
7 |
8 | /// save preference the language
9 | void saveLanguageCode(String code);
10 |
11 | /// save preference the theme mode
12 | void enableDarkMode(bool value);
13 |
14 | /// clear preferences
15 | void clear();
16 |
17 | bool getIsActiveDarkMode();
18 |
19 | String getCurrentLanguageCode();
20 | }
21 |
--------------------------------------------------------------------------------
/lib/src/domain/core/i_advanced_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:flutter_package/src/domain/core/request_failure.dart';
3 |
4 | abstract class IAdvancedService {
5 | /// [readFile] Responsible for reading the project readme file
6 | /// This return [String] when the request is successful
7 | /// and [RequestFailure] when the request is not successful
8 | Future> readFile({required String gitPath,required String fileName});
9 | }
10 |
--------------------------------------------------------------------------------
/lib/src/domain/core/navigation/navigation_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | abstract class NavigationService {
4 | final GlobalKey navigator;
5 |
6 | GlobalKey get scaffoldState => GlobalKey();
7 |
8 | NavigationService(this.navigator);
9 |
10 | /// [navigateToPushNamed] Function responsible for calling
11 | /// a new application screen by route base
12 | Future navigateToPushNamed(String routeName, {Object? arguments});
13 |
14 | /// [replaceRouteName] Function responsible for replacing
15 | /// a application screen by route base
16 | Future navigateToPushNamedAndRemoveUntil(String routeName);
17 |
18 | /// [navigateToPop] Function responsible for closing the application screen
19 | Future navigateToPop({Object? object});
20 | }
21 |
--------------------------------------------------------------------------------
/lib/src/domain/core/request_failure.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 |
3 | part 'request_failure.freezed.dart';
4 |
5 | @freezed
6 | abstract class RequestFailure with _$RequestFailure {
7 | factory RequestFailure.networkError() = _NetworkFailure;
8 | factory RequestFailure.empty() = _Empty;
9 | factory RequestFailure.serverError() = _ServerError;
10 | }
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib/src/domain/packages/entities/dependency.dart:
--------------------------------------------------------------------------------
1 | class Dependency{
2 | String name;
3 | String version;
4 |
5 | Dependency({required this.name, required this.version});
6 | Map toMap() {
7 | return {
8 | 'name': this.name,
9 | 'version': this.version,
10 | };
11 | }
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/lib/src/domain/packages/entities/environment.dart:
--------------------------------------------------------------------------------
1 | class Environment {
2 | final String sdk;
3 | final String flutter;
4 |
5 | Environment({required this.sdk, required this.flutter});
6 |
7 | Map toMap() {
8 | return {
9 | 'sdk': this.sdk,
10 | 'flutter': this.flutter,
11 | };
12 | }
13 |
14 | static Environment get empty =>
15 | Environment(sdk: '>=2.12.0 <3.0.0', flutter: '');
16 | }
17 |
18 | extension EnvironmentEx on Environment {
19 | bool get hasData => (sdk.isNotEmpty);
20 | }
21 |
--------------------------------------------------------------------------------
/lib/src/domain/packages/entities/metric.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_package/src/domain/packages/entities/score.dart';
2 |
3 | class Metric {
4 | final List tags;
5 | final bool isNullSafe;
6 | final Score score;
7 |
8 | Metric({
9 | required this.tags,
10 | required this.isNullSafe,
11 | required this.score,
12 | });
13 |
14 | Map toMap() {
15 | return {
16 | 'platformList': this.tags,
17 | 'isNullSafe': this.isNullSafe,
18 | 'score': this.score.toMap(),
19 | };
20 | }
21 |
22 | static Metric get empty =>
23 | Metric(tags: [], isNullSafe: false, score: Score.empty);
24 | }
25 |
26 | extension MetricEx on Metric {
27 | bool get isNotEmpty => tags.isNotEmpty;
28 | }
29 |
--------------------------------------------------------------------------------
/lib/src/domain/packages/entities/package.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_package/src/domain/packages/entities/version.dart';
2 | import 'dependency.dart';
3 | import 'version.dart';
4 |
5 |
6 | class Package {
7 | final String name;
8 | final String package_url;
9 | final String url;
10 | final List versions;
11 | final Version latest;
12 |
13 | const Package(
14 | {required this.name,
15 | required this.package_url,
16 | required this.url,
17 | required this.latest,
18 | required this.versions});
19 |
20 | Map toMap() {
21 | return {
22 | 'name': this.name,
23 | 'package_url': this.package_url,
24 | 'url': this.url,
25 | 'versions': this.versions,
26 | 'latest': this.latest,
27 | };
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/lib/src/domain/packages/entities/pubspec.dart:
--------------------------------------------------------------------------------
1 | import 'dependency.dart';
2 | import 'environment.dart';
3 |
4 | class Pubspec {
5 | final String name;
6 | final String version;
7 | final String description;
8 | final String homepage;
9 | final String repository;
10 | final Environment environment;
11 | final List dependencies;
12 | final List dev_dependencies;
13 |
14 | Pubspec(
15 | {required this.name,
16 | required this.version,
17 | required this.description,
18 | required this.homepage,
19 | required this.repository,
20 | required this.environment,
21 | required this.dependencies,
22 | required this.dev_dependencies});
23 |
24 | Map toMap() {
25 | return {
26 | 'name': this.name,
27 | 'version': this.version,
28 | 'description': this.description,
29 | 'repository': this.repository,
30 | 'homepage': this.homepage,
31 | 'dependencies': this.dependencies,
32 | 'dev_dependencies': this.dev_dependencies,
33 | };
34 | }
35 |
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/lib/src/domain/packages/entities/score.dart:
--------------------------------------------------------------------------------
1 | class Score {
2 | final int grantedPoints;
3 | final int maxPoints;
4 | final int likeCount;
5 | final double popularityScore;
6 |
7 | const Score(
8 | {required this.maxPoints,
9 | required this.grantedPoints,
10 | required this.likeCount,
11 | required this.popularityScore});
12 |
13 | Map toMap() {
14 | // ignore: unnecessary_cast
15 | return {
16 | 'maxPoints': this.maxPoints,
17 | 'likeCount': this.likeCount,
18 | 'popularityScore': this.popularityScore,
19 | 'grantedPoints': this.grantedPoints,
20 | } as Map;
21 | }
22 |
23 | static Score get empty =>
24 | Score(maxPoints: 0, popularityScore: 0.0, likeCount: 0, grantedPoints: 0);
25 | }
26 |
27 | extension Scorex on Score {
28 | String getPopularity() {
29 | var result = (popularityScore * 100).roundToDouble().toStringAsFixed(1);
30 | return '$result%';
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/lib/src/domain/packages/entities/version.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_package/src/domain/packages/entities/pubspec.dart';
2 |
3 | class Version {
4 | final String version;
5 | final String archive_url;
6 | final String published;
7 | final Pubspec pubspec;
8 |
9 | Version(
10 | {required this.version,
11 | required this.archive_url,
12 | required this.pubspec,
13 | required this.published});
14 |
15 | Map toMap() {
16 | return {
17 | 'version': this.version,
18 | 'published': this.published,
19 | 'archive_url': this.archive_url,
20 | 'pubspec': this.pubspec,
21 | };
22 | }
23 | }
24 |
25 | extension VersionEx on Version{
26 | DateTime get date => DateTime.parse(published);
27 | }
--------------------------------------------------------------------------------
/lib/src/domain/packages/i_package_repository.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:dio/dio.dart';
3 | import 'package:flutter_package/src/domain/packages/entities/metric.dart';
4 | import 'package:flutter_package/src/domain/packages/entities/package.dart';
5 | import 'package:flutter_package/src/domain/core/request_failure.dart';
6 |
7 | import '../core/api_service.dart';
8 |
9 | abstract class IPackageRepository extends Api {
10 | IPackageRepository(Dio dio) : super(dio);
11 |
12 | final String path = '/packages';
13 |
14 | /// [getPackages] method responsible for listing the packages
15 | /// This returns a list of packets [List] when the request is successful
16 | /// and [RequestFailure] when the request is not successful
17 | Future>> getPackages(
18 | {required int page});
19 |
20 | /// [getPublisher] get publisher of package [packageName]
21 | /// This return String when the request is successful
22 | /// and [RequestFailure] when the request is not successful
23 | Future> getPublisher(
24 | {required String packageName});
25 |
26 | /// [getPackageName] This method searches for a package by name
27 | /// This return [Package] when the request is successful
28 | /// and [RequestFailure] when the request is not successful
29 | Future> getPackageName(
30 | {required String packageName});
31 |
32 | /// [getMetricPackage] This method gets the metrics of a package
33 | /// This return [Metric] when the request is successful
34 | /// and [RequestFailure] when the request is not successful
35 | Future> getMetricPackage(
36 | {required String package});
37 | }
38 |
39 |
40 |
--------------------------------------------------------------------------------
/lib/src/domain/packages/i_package_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:flutter_package/src/domain/packages/entities/package.dart';
3 | import 'package:flutter_package/src/domain/core/request_failure.dart';
4 | import 'entities/metric.dart';
5 | import 'i_package_repository.dart';
6 |
7 | abstract class IPackageService {
8 | IPackageService(this.repository);
9 |
10 | final IPackageRepository repository;
11 |
12 | /// [getPackages] method responsible for listing the packages
13 | /// This returns a list of packets [List] when the request is successful
14 | /// and [RequestFailure] when the request is not successful
15 | Future>> getPackages(
16 | {required int page});
17 |
18 | /// [getPublisher] get publisher of package [packageName]
19 | /// This return String when the request is successful
20 | /// and [RequestFailure] when the request is not successful
21 | Future> getPublisher(
22 | {required String packageName});
23 |
24 | /// [getPackageName] This method searches for a package by name
25 | /// This return [Package] when the request is successful
26 | /// and [RequestFailure] when the request is not successful
27 | Future> getPackageName(
28 | {required String packageName});
29 |
30 | /// [getMetricPackage] This method gets the metrics of a package
31 | /// This return [Metric] when the request is successful
32 | /// and [RequestFailure] when the request is not successful
33 | Future> getMetricPackage(
34 | {required String package});
35 | }
36 |
--------------------------------------------------------------------------------
/lib/src/domain/search/i_search_repository.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:dio/dio.dart';
3 | import 'package:flutter_package/src/domain/core/request_failure.dart';
4 | import '../core/api_service.dart';
5 |
6 | abstract class ISearchRepository extends Api {
7 | ISearchRepository(Dio dio) : super(dio);
8 |
9 | final String path = '/search';
10 |
11 | /// [searchPackage] Method responsible for searching packages
12 | /// This returns list of package names when the request is successful
13 | /// and [RequestFailure] when the request is not successful
14 | Future>> searchPackage(
15 | {required int page, required String query});
16 | }
17 |
--------------------------------------------------------------------------------
/lib/src/domain/search/i_search_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:flutter_package/src/domain/core/request_failure.dart';
3 |
4 | import 'i_search_repository.dart';
5 |
6 | abstract class ISearchService {
7 | ISearchService(this.repository);
8 |
9 | final ISearchRepository repository;
10 |
11 | /// [searchPackage] Method responsible for searching packages
12 | /// This returns list of package names when the request is successful
13 | /// and [RequestFailure] when the request is not successful
14 | Future>> searchPackage(
15 | {required int page, required String query});
16 | }
17 |
18 |
19 |
--------------------------------------------------------------------------------
/lib/src/infrastructure/core/data/default_config_preference.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_package/src/domain/core/data/config_preference.dart';
2 | import 'package:shared_preferences/shared_preferences.dart';
3 |
4 | class DefaultConfigDataPreference extends ConfigDataPreference {
5 | static const _keyLanguage = '_key_language';
6 | static const _keyDarkMode = '_keyDarkMode';
7 |
8 | DefaultConfigDataPreference(SharedPreferences preferences)
9 | : super(preferences);
10 |
11 | @override
12 | void enableDarkMode(bool value) => preferences.setBool(_keyDarkMode, value);
13 |
14 | @override
15 | void saveLanguageCode(String code) =>
16 | preferences.setString(_keyLanguage, code.trim().toLowerCase());
17 |
18 | @override
19 | void clear() {
20 | preferences.remove(_keyLanguage);
21 | preferences.remove(_keyDarkMode);
22 | }
23 |
24 | @override
25 | bool getIsActiveDarkMode() => preferences.getBool(_keyDarkMode) ?? false;
26 |
27 | @override
28 | String getCurrentLanguageCode() =>
29 | preferences.getString(_keyLanguage) ?? "";
30 | }
31 |
--------------------------------------------------------------------------------
/lib/src/infrastructure/core/default_advanced_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:flutter_package/src/domain/core/i_advanced_service.dart';
3 | import 'package:flutter_package/src/domain/core/request_failure.dart';
4 | import 'package:flutter_package/src/infrastructure/core/network_builder.dart';
5 |
6 | class DefaultAdvancedService extends IAdvancedService {
7 | @override
8 | Future> readFile(
9 | {String? gitPath, String? fileName}) async {
10 | if (gitPath == null || gitPath.isEmpty)
11 | return Left(RequestFailure.serverError());
12 |
13 | gitPath = gitPath
14 | .replaceAll('https://github.com/', '')
15 | .replaceAll('https://', '')
16 | .replaceAll('tree/', '')
17 | .replaceAll('master/', '');
18 | var url = 'https://raw.githubusercontent.com/$gitPath/master/$fileName';
19 |
20 | var network = NetworkBuilder();
21 | var dio = network.build();
22 |
23 | var response = await dio
24 | .getUri(Uri.parse(url))
25 | .then((value) => (value.data))
26 | .catchError((onError) => null);
27 |
28 | var readme = (response != null &&
29 | response.toString().trim() != '404: Not Found' &&
30 | response.toString().trim() != '400: Invalid request');
31 |
32 | return (readme) ? Right(response) : Left(RequestFailure.serverError());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/lib/src/infrastructure/core/navigation/default_navigation_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_package/src/domain/core/navigation/navigation_service.dart';
3 |
4 | class DefaultNavigationService extends NavigationService {
5 | DefaultNavigationService(GlobalKey navigator)
6 | : super(navigator);
7 |
8 | @override
9 | Future navigateToPushNamed(String routeName,
10 | {Object? arguments}) async {
11 | return await navigator.currentState!
12 | .pushNamed(routeName, arguments: arguments);
13 | }
14 |
15 | @override
16 | Future navigateToPushNamedAndRemoveUntil(String routeName) async {
17 | return await navigator.currentState!
18 | .pushNamedAndRemoveUntil(routeName, (Route route) => false);
19 | }
20 |
21 | @override
22 | Future navigateToPop({Object? object}) async {
23 | return navigator.currentState!.pop(object);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/lib/src/infrastructure/core/network_builder.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart';
2 | import 'package:dio/io.dart';
3 |
4 | const String host = 'pub.dartlang.org';
5 | const String apiBaseUrl = 'https://$host/api';
6 |
7 | class NetworkBuilder {
8 | String _baseUrl = '';
9 |
10 | void setBaseUrl(String baseUrl) {
11 | ArgumentError.checkNotNull(baseUrl, 'baseUrl');
12 | _baseUrl = baseUrl;
13 | }
14 |
15 | Dio build() {
16 | final dio = Dio();
17 | dio.options.baseUrl = (_baseUrl.isEmpty) ? apiBaseUrl : _baseUrl;
18 | final defaultClient = DefaultHttpClientAdapter();
19 | defaultClient.onHttpClientCreate = (httpClient) {
20 | httpClient.badCertificateCallback = (_, host, __) => host == apiBaseUrl;
21 | };
22 | dio.httpClientAdapter = defaultClient;
23 | return dio;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/lib/src/infrastructure/packages/base_package_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:flutter_package/src/domain/packages/entities/metric.dart';
3 | import 'package:flutter_package/src/domain/packages/entities/package.dart';
4 | import 'package:flutter_package/src/domain/core/request_failure.dart';
5 | import 'package:flutter_package/src/domain/packages/i_package_repository.dart';
6 | import 'package:flutter_package/src/domain/packages/i_package_service.dart';
7 |
8 | class BasePackageService extends IPackageService {
9 | BasePackageService(IPackageRepository repository) : super(repository);
10 |
11 | @override
12 | Future> getPackageName(
13 | {required String packageName}) async =>
14 | await repository.getPackageName(packageName: packageName);
15 |
16 | @override
17 | Future>> getPackages(
18 | {required int page}) async =>
19 | await repository.getPackages(page: page);
20 |
21 | @override
22 | Future> getMetricPackage(
23 | {required String package}) async =>
24 | await repository.getMetricPackage(package: package);
25 |
26 | @override
27 | Future> getPublisher(
28 | {required String packageName}) async =>
29 | await repository.getPublisher(packageName: packageName);
30 | }
31 |
--------------------------------------------------------------------------------
/lib/src/infrastructure/search/base_search_service.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:flutter_package/src/domain/core/request_failure.dart';
3 | import 'package:flutter_package/src/domain/search/i_search_service.dart';
4 |
5 | import '../../domain/search/i_search_repository.dart';
6 |
7 | class BaseSearchService extends ISearchService {
8 | BaseSearchService(ISearchRepository repository) : super(repository);
9 |
10 | @override
11 | Future>> searchPackage(
12 | {required int page, required String query}) async =>
13 | await repository.searchPackage(page: page, query: query);
14 | }
15 |
--------------------------------------------------------------------------------
/lib/src/presentation/core/base_widget.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | abstract class BaseComponent extends StatelessWidget {
4 | final String? value;
5 |
6 | BaseComponent({Key? key, this.value}) : super(key: key);
7 | }
8 |
--------------------------------------------------------------------------------
/lib/src/presentation/core/custom_progress.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 |
3 | import 'package:flutter/cupertino.dart';
4 | import 'package:flutter/material.dart';
5 | import 'package:flutter_package/src/utils/colors.dart';
6 |
7 | class CustomProgress extends StatelessWidget {
8 | final Color? color;
9 |
10 | final double size;
11 |
12 | const CustomProgress({
13 | this.color,
14 | this.size = 20,
15 | });
16 |
17 | @override
18 | Widget build(BuildContext context) {
19 | Color _color = (color != null) ? color! : kPrimaryColor;
20 |
21 | var brightness = Theme.of(context).brightness;
22 |
23 | return Container(
24 | child: (Platform.isIOS)
25 | ? MediaQuery(
26 | data: MediaQueryData(
27 | platformBrightness: brightness,
28 | ),
29 | child: CupertinoActivityIndicator())
30 | : CircularProgressIndicator(
31 | strokeWidth: 2.5,
32 | valueColor: AlwaysStoppedAnimation(_color),
33 | ),
34 | width: size,
35 | height: size,
36 | );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/lib/src/presentation/core/custom_refresh.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_package/src/presentation/core/styles.dart';
3 | import 'package:pull_to_refresh/pull_to_refresh.dart';
4 | import 'base_widget.dart';
5 | import 'custom_progress.dart';
6 |
7 | class CustomRefresh extends BaseComponent {
8 | final bool enablePullDown;
9 | final bool enablePullUp;
10 | final RefreshController refresh;
11 | final VoidCallback? onRefresh;
12 | final VoidCallback? onLoading;
13 | final Widget child;
14 |
15 | CustomRefresh(
16 | {this.enablePullDown = true,
17 | this.enablePullUp = true,
18 | required this.refresh,
19 | this.onRefresh,
20 | this.onLoading,
21 | required this.child})
22 | : super(value: '');
23 |
24 | @override
25 | Widget build(BuildContext context) {
26 | return SmartRefresher(
27 | enablePullDown: enablePullDown,
28 | enablePullUp: enablePullUp,
29 | physics: ClampingScrollPhysics(),
30 | footer: CustomFooter(
31 | builder: (context, mode) {
32 | Widget body = empty;
33 | if (mode == LoadStatus.loading) {
34 | body = Container(
35 | child: CustomProgress(),
36 | width: 24,
37 | height: 24,
38 | );
39 | }
40 | return Container(
41 | height: 55.0,
42 | child: Center(child: body),
43 | );
44 | },
45 | ),
46 | controller: refresh,
47 | onRefresh: onRefresh,
48 | onLoading: onLoading,
49 | child: child,
50 | );
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/lib/src/presentation/core/side_rounded.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class SideRounded extends StatelessWidget {
4 | final Widget child;
5 | final double radious;
6 | final Color color;
7 |
8 | const SideRounded({
9 | Key? key,
10 | required this.child,
11 | this.color = Colors.black,
12 | this.radious = 29,
13 | }) : super(key: key);
14 |
15 | @override
16 | Widget build(BuildContext context) {
17 | return Container(
18 | alignment: Alignment.center,
19 | decoration: BoxDecoration(
20 | color: color,
21 | borderRadius: BorderRadius.only(
22 | topLeft: Radius.circular(radious),
23 | bottomRight: Radius.circular(8.0),
24 | ),
25 | ),
26 | child: child,
27 | );
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/lib/src/presentation/core/svg_icon.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter/src/widgets/framework.dart';
3 | import 'package:flutter_package/src/utils/colors.dart';
4 | import 'package:flutter_svg/svg.dart';
5 |
6 | import 'base_widget.dart';
7 |
8 | class CustomIcon extends BaseComponent {
9 | double? size;
10 | Color? color;
11 | final isColor;
12 |
13 | CustomIcon(
14 | {this.size, this.color, required String icon, this.isColor = false})
15 | : super(value: icon);
16 |
17 | @override
18 | Widget build(BuildContext context) {
19 | size = size ?? 24;
20 | color = (isColor) ? null : color ?? kIconColor;
21 | return SvgPicture.asset(
22 | 'assets/icons/${value}.svg',
23 | height: size,
24 | width: size,
25 | color: color,
26 | );
27 | }
28 | }
29 |
30 | class SvgImage extends BaseComponent {
31 | final double height;
32 | final double width;
33 |
34 | SvgImage({
35 | required this.height,
36 | required this.width,
37 | required String icon,
38 | }) : super(value: icon);
39 |
40 | @override
41 | Widget build(BuildContext context) {
42 | return SvgPicture.asset(
43 | 'assets/icons/${value}.svg',
44 | height: height,
45 | width: width,
46 | fit: BoxFit.cover,
47 | );
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/lib/src/presentation/core/tag.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_package/src/presentation/core/base_widget.dart';
4 | import 'package:flutter_package/src/utils/colors.dart';
5 | import 'package:flutter_package/src/presentation/core/styles.dart';
6 | import 'package:flutter_package/src/utils/size.dart';
7 |
8 | class Tag extends BaseComponent {
9 | Tag({required String value}) : super(value: value);
10 |
11 | @override
12 | Widget build(BuildContext context) {
13 | return Container(
14 | padding: EdgeInsets.all(4.0),
15 | constraints: BoxConstraints(minWidth: 40.0),
16 | decoration: decoration(
17 | color: kPrimaryColor, borderRadius: kBorder/2),
18 | child: Center(
19 | child: Text(
20 | value!,
21 | style: styleText(
22 | fontSize: 12.0,
23 | color: Colors.white,
24 | fontWeight: FontWeight.bold,
25 | ),
26 | maxLines: 1,
27 | textAlign: TextAlign.center,
28 | ),
29 | ),
30 | );
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/lib/src/presentation/core/title_switch.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_package/src/presentation/core/base_widget.dart';
3 | import 'package:flutter_package/src/utils/colors.dart';
4 |
5 | import 'custom_switch.dart';
6 |
7 | class TitleSwitch extends BaseComponent {
8 | final Function(bool)? onTap;
9 | final CustomSwitchController controller;
10 |
11 | TitleSwitch({
12 | Key? key,
13 | required String title,
14 | required this.controller,
15 | required this.onTap,
16 | }) : super(value: title);
17 |
18 | @override
19 | Widget build(BuildContext context) {
20 | return Container(
21 | child: Row(
22 | children: [
23 | Expanded(child: Text(value!)),
24 | CustomSwitch(
25 | controller: controller,
26 | width: 42.0,
27 | height: 28.0,
28 | activeColor: kPrimaryColor,
29 | onChange: onTap,
30 | )
31 | ],
32 | ),
33 | );
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/lib/src/presentation/core/version_item.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_package/src/domain/packages/entities/version.dart';
4 | import 'package:flutter_package/src/utils/colors.dart';
5 | import 'package:flutter_package/src/presentation/core/styles.dart';
6 | import 'package:flutter_package/src/utils/size.dart';
7 |
8 | class VersionItem extends StatelessWidget {
9 | final Version version;
10 | final bool selected;
11 | final Function() onTap;
12 |
13 | VersionItem(
14 | {required this.version, required this.onTap, required this.selected});
15 |
16 | @override
17 | Widget build(BuildContext context) {
18 | return Container(
19 | padding: EdgeInsets.zero,
20 | decoration: decoration(
21 | color: selected ? kPrimaryColor : kPlaceholderColor,
22 | borderRadius: kBorder),
23 | child: InkWell(
24 | onTap: onTap,
25 | child: Container(
26 | constraints: BoxConstraints(maxWidth: 100.0),
27 | child: Center(
28 | child: Text(
29 | version.version,
30 | style: styleText(
31 | fontSize: 12.0,
32 | color: selected ? Colors.white : kTitleTextColor,
33 | fontWeight: FontWeight.bold,
34 | ),
35 | maxLines: 1,
36 | textAlign: TextAlign.center,
37 | ),
38 | ),
39 | ),
40 | ));
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/lib/src/presentation/settings/config_builder.dart:
--------------------------------------------------------------------------------
1 |
2 | import 'package:flutter/cupertino.dart';
3 | import 'package:flutter/material.dart';
4 | import 'package:flutter/rendering.dart';
5 | import 'package:flutter_mobx/flutter_mobx.dart';
6 | import 'package:flutter_package/src/application/settings/config_view_model.dart';
7 | import 'package:flutter_package/src/injection/injection_config.dart';
8 |
9 | class ConfigBuilder extends StatefulWidget {
10 | final Widget Function(Locale,ThemeData) builder;
11 |
12 | ConfigBuilder({required this.builder});
13 |
14 | @override
15 | _ConfigBuilderState createState() => _ConfigBuilderState();
16 | }
17 |
18 | class _ConfigBuilderState extends State
19 | with SingleTickerProviderStateMixin {
20 | ConfigViewModel _model = inject();
21 |
22 | @override
23 | Widget build(BuildContext context) {
24 | return Observer(
25 | builder: (_) => widget.builder(_model.locale,_model.theme),
26 | );
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/lib/src/utils/colors.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | late Color kPrimaryColor;
4 |
5 | late Color kBackgroundColor;
6 |
7 | late Color kIconColor;
8 |
9 | late Color kPlaceholderColor;
10 |
11 | late Color kTitleTextColor;
12 |
13 | late Color kSubtitleTextColor;
14 |
15 | late Color kProgressColor;
16 |
--------------------------------------------------------------------------------
/lib/src/utils/constants.dart:
--------------------------------------------------------------------------------
1 | const VERSION_APP = '0.0.9';
2 | const GITHUB = 'https://github.com/EdvaldoMartins/flutter_pub_dev';
3 | const PUBDEV = 'https://pub.dev/packages';
4 |
5 | String get fontName => 'Font';
6 |
7 | List get tagList => [
8 | "web",
9 | "windows",
10 | "linux",
11 | "macos",
12 | "android",
13 | "ios",
14 | "fuchsia",
15 | ];
16 |
--------------------------------------------------------------------------------
/lib/src/utils/size.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | const double _VerticalSpaceSmall = 10.0;
4 | const double _VerticalSpaceMedium = 20.0;
5 | const double _VerticalSpaceLarge = 60.0;
6 |
7 | const double _HorizontalSpaceSmall = 10.0;
8 | const double _HorizontalSpaceMedium = 20.0;
9 | const double HorizontalSpaceLarge = 60.0;
10 |
11 | const double kIconSize = 20.0;
12 |
13 | const double kTitleSize = 16.0;
14 |
15 | const double kSubtitleSize = 14.0;
16 |
17 | const double kBorder = 8.0;
18 |
19 | Widget verticalSpaceSmall() {
20 | return verticalSpace(_VerticalSpaceSmall);
21 | }
22 |
23 | Widget verticalSpaceMedium() {
24 | return verticalSpace(_VerticalSpaceMedium);
25 | }
26 |
27 | Widget verticalSpaceLarge() {
28 | return verticalSpace(_VerticalSpaceLarge);
29 | }
30 |
31 | Widget verticalSpace(double height) {
32 | return Container(height: height);
33 | }
34 |
35 | Widget horizontalSpaceSmall() {
36 | return horizontalSpace(_HorizontalSpaceSmall);
37 | }
38 |
39 | Widget horizontalSpaceMedium() {
40 | return horizontalSpace(_HorizontalSpaceMedium);
41 | }
42 |
43 | Widget horizontalSpaceLarge() {
44 | return horizontalSpace(HorizontalSpaceLarge);
45 | }
46 |
47 | Widget horizontalSpace(double width) {
48 | return Container(width: width);
49 | }
50 |
--------------------------------------------------------------------------------
/lib/src/utils/util.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 | import 'dart:ui';
3 | import 'package:flutter/material.dart';
4 | import 'package:flutter_package/src/domain/packages/entities/package.dart';
5 | import 'package:share/share.dart';
6 | import 'package:url_launcher/url_launcher.dart';
7 |
8 | import '../l18n.dart';
9 |
10 | class Util {
11 | /// [defaultLocale] get locale to device
12 | static Future defaultLocale() async {
13 | var value = Platform.localeName;
14 | value = (value.isEmpty) ? 'pt' : value;
15 | value = value.toLowerCase().contains('pt') ? 'pt' : 'en';
16 | return I18n.filterLocale(Locale(value));
17 | }
18 |
19 | /// [openLink] open an address on the web
20 | static openLink({required String url}) async {
21 | try {
22 | if (await canLaunch(url)) {
23 | await launch(
24 | url,
25 | forceSafariVC: false,
26 | forceWebView: false,
27 | );
28 | }
29 | } catch (ex) {}
30 | }
31 |
32 | /// [shareProject] share the package address
33 | static shareProject({required Package package}) {
34 | var url = package.latest.archive_url
35 | .replaceAll('/versions/${package.latest.version}.tar.gz', '');
36 | Share.share(url);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/pub_dev.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/screenshots/smartmockups_klcem8w7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/screenshots/smartmockups_klcem8w7.png
--------------------------------------------------------------------------------
/screenshots/smartmockups_klcen4ty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/screenshots/smartmockups_klcen4ty.png
--------------------------------------------------------------------------------
/screenshots/smartmockups_klceoqtt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/screenshots/smartmockups_klceoqtt.png
--------------------------------------------------------------------------------
/screenshots/smartmockups_klcesngj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/screenshots/smartmockups_klcesngj.png
--------------------------------------------------------------------------------
/stores.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/srnunio/flutter_pub_dev/7f85810dad1b3742e0ce7582bfed0d2c1d9b245a/stores.png
--------------------------------------------------------------------------------
/test/src/application/package/state_search_package_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:flutter_package/src/application/search/search_view_model.dart';
3 | import 'package:flutter_package/src/domain/core/request_failure.dart';
4 | import 'package:flutter_package/src/domain/search/i_search_service.dart';
5 | import 'package:flutter_package/src/infrastructure/search/base_search_service.dart';
6 | import 'package:flutter_test/flutter_test.dart';
7 | import 'package:mockito/mockito.dart';
8 |
9 | import '../../infrastructure/mocks.mocks.dart';
10 |
11 | void main() {
12 | late MockISearchRepository repository;
13 | late ISearchService service;
14 | late SearchViewModel viewModel;
15 |
16 | setUp(() {
17 | repository = MockISearchRepository();
18 | service = BaseSearchService(repository);
19 | viewModel = SearchViewModel(service);
20 | });
21 |
22 | test('change state when search is successfully', () async {
23 | var data = ['avatar_letter'];
24 | var query = 'avatar';
25 |
26 | when(repository.searchPackage(page: 1, query: query))
27 | .thenAnswer((_) async => Right(data));
28 |
29 | expect(viewModel.hasData, false);
30 |
31 | await viewModel.load(query: query);
32 |
33 | expect(viewModel.hasData, true);
34 | });
35 |
36 | test('state when search result is empty', () async {
37 | var query = 'avatar';
38 |
39 | when(repository.searchPackage(page: 1, query: query))
40 | .thenAnswer((_) async => Left(RequestFailure.empty()));
41 |
42 | expect(viewModel.hasData, false);
43 |
44 | await viewModel.load(query: query);
45 |
46 | expect(Left(RequestFailure.empty()), equals(Left(RequestFailure.empty())));
47 | });
48 | }
49 |
--------------------------------------------------------------------------------
/test/src/infrastructure/mocks.dart:
--------------------------------------------------------------------------------
1 | import 'package:dio/dio.dart';
2 | import 'package:flutter_package/src/domain/core/i_advanced_service.dart';
3 | import 'package:flutter_package/src/domain/packages/i_package_repository.dart';
4 | import 'package:flutter_package/src/domain/search/i_search_repository.dart';
5 | import 'package:mockito/annotations.dart';
6 |
7 | @GenerateMocks([IPackageRepository, ISearchRepository, IAdvancedService],
8 | customMocks: [MockSpec(as: #MockApi)])
9 | void main() {}
10 |
--------------------------------------------------------------------------------
/test/src/infrastructure/package/get_list_of_package_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:flutter_package/src/domain/core/request_failure.dart';
3 | import 'package:flutter_package/src/domain/packages/i_package_service.dart';
4 | import 'package:flutter_package/src/infrastructure/packages/base_package_service.dart';
5 | import 'package:flutter_test/flutter_test.dart';
6 | import 'package:mockito/mockito.dart';
7 |
8 | import '../core/data/package_fake_data.dart';
9 | import '../mocks.mocks.dart';
10 |
11 |
12 | void main() {
13 | late MockIPackageRepository repository;
14 | late IPackageService service;
15 |
16 | setUp(() {
17 | repository = MockIPackageRepository();
18 | service = BasePackageService(repository);
19 | });
20 |
21 | test('when get list of package is successfully', () async {
22 | var data = [defaultPackage];
23 | when(repository.getPackages(page: 0)).thenAnswer((_) async => Right(data));
24 | var result = await service.getPackages(page: 0);
25 | expect(result, Right(data));
26 | });
27 |
28 | test('when get list of package is empty', () async {
29 | when(repository.getPackages(page: 0))
30 | .thenAnswer((_) async => Left(RequestFailure.empty()));
31 |
32 | var result = await service.getPackages(page: 0);
33 |
34 | expect(result, equals(Left(RequestFailure.empty())));
35 | });
36 | }
37 |
--------------------------------------------------------------------------------
/test/src/infrastructure/package/search_package_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:dartz/dartz.dart';
2 | import 'package:flutter_package/src/domain/core/request_failure.dart';
3 | import 'package:flutter_package/src/domain/search/i_search_service.dart';
4 | import 'package:flutter_package/src/infrastructure/search/base_search_service.dart';
5 | import 'package:flutter_test/flutter_test.dart';
6 | import 'package:mockito/mockito.dart';
7 | import '../mocks.mocks.dart';
8 |
9 | void main() {
10 | late MockISearchRepository repository;
11 | late ISearchService service;
12 |
13 | setUp(() {
14 | repository = MockISearchRepository();
15 | service = BaseSearchService(repository);
16 | });
17 |
18 | test('when search is successfully', () async {
19 | var data = ['avatar_letter'];
20 | var query = 'avatar';
21 | when(repository.searchPackage(page: 0, query: query))
22 | .thenAnswer((_) async => Right(data));
23 |
24 | var result = await service.searchPackage(page: 0, query: query);
25 |
26 | expect(result, equals(Right(data)));
27 | });
28 |
29 | test('when search has empty result', () async {
30 | var query = 'avatar';
31 | when(repository.searchPackage(page: 0, query: query))
32 | .thenAnswer((_) async => Left(RequestFailure.empty()));
33 |
34 | var result = await service.searchPackage(page: 0, query: query);
35 |
36 | expect(result, equals(Left(RequestFailure.empty())));
37 | });
38 | }
39 |
--------------------------------------------------------------------------------