├── .fvm ├── flutter_sdk ├── fvm_config.json ├── release ├── version └── versions │ └── 3.16.7 ├── .fvmrc ├── .gitignore ├── .metadata ├── .vscode ├── launch.json └── settings.json ├── LICENSE ├── README.md ├── analysis_options.yaml ├── android ├── .gitignore ├── app │ ├── build.gradle │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── flutter_templet_project │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable-v21 │ │ │ ├── background.png │ │ │ └── launch_background.xml │ │ │ ├── drawable │ │ │ ├── background.png │ │ │ └── launch_background.xml │ │ │ ├── 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-night-v31 │ │ │ └── styles.xml │ │ │ ├── values-night │ │ │ └── styles.xml │ │ │ ├── values-v31 │ │ │ └── styles.xml │ │ │ └── values │ │ │ └── styles.xml │ │ └── profile │ │ └── AndroidManifest.xml ├── build.gradle ├── fastlane │ ├── .env │ ├── Fastfile │ ├── Pluginfile │ ├── README.md │ ├── actions │ │ ├── dingdingtalk_robot.rb │ │ ├── dingslack_robot.rb │ │ ├── git_last_log_dic.rb │ │ ├── markdown_desc.rb │ │ └── yaml_from_path.rb │ ├── metadata │ │ └── app_icon.jpg │ └── report.xml ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties └── settings.gradle ├── assets ├── avicii-waiting for love.mp3 ├── data │ ├── appInfo.json │ ├── car_models.json │ ├── china.json │ ├── contacts.json │ ├── kuan_rong.txt │ └── poetry.json ├── images │ ├── 2.0x │ │ ├── avatar.png │ │ ├── icon_appbar_back.png │ │ ├── icon_appbar_back_white.png │ │ ├── icon_delete.png │ │ ├── icon_home_delete.png │ │ ├── img_placeholder_empty.png │ │ ├── img_placeholder_empty_one.png │ │ ├── img_placeholder_offonline.png │ │ ├── img_placeholder_search.png │ │ ├── img_update.png │ │ └── img_upload_placeholder.png │ ├── 3.0x │ │ ├── avatar.png │ │ ├── icon_appbar_back.png │ │ ├── icon_appbar_back_white.png │ │ ├── icon_delete.png │ │ ├── icon_home_delete.png │ │ ├── img_placeholder_empty.png │ │ ├── img_placeholder_empty_one.png │ │ ├── img_placeholder_offonline.png │ │ ├── img_placeholder_search.png │ │ ├── img_update.png │ │ └── img_upload_placeholder.png │ ├── 404.png │ ├── QRCode.png │ ├── avatar.png │ ├── avatar_female.png │ ├── avatar_male.png │ ├── avatar_team.png │ ├── background_ocean.png │ ├── bg.png │ ├── bg_beach.jpg │ ├── bg_chat_bubble_from.png │ ├── bg_chat_bubble_to.png │ ├── bg_color.jpg │ ├── bg_glassmophism.png │ ├── bg_horizontal_scroll.png │ ├── bg_jiguang.png │ ├── bg_mine.png │ ├── bg_mk11.jpg │ ├── bg_mountain.png │ ├── bg_nfs.jpg │ ├── bg_ocean.jpg │ ├── bg_service.png │ ├── canvas_draw_arc.png │ ├── curve │ │ ├── curve_bounce_in.gif │ │ ├── curve_bounce_in_out.gif │ │ ├── curve_bounce_out.gif │ │ ├── curve_decelerate.gif │ │ ├── curve_ease.gif │ │ ├── curve_ease_in.gif │ │ ├── curve_ease_in_back.gif │ │ ├── curve_ease_in_circ.gif │ │ ├── curve_ease_in_cubic.gif │ │ ├── curve_ease_in_expo.gif │ │ ├── curve_ease_in_out.gif │ │ ├── curve_ease_in_out_back.gif │ │ ├── curve_ease_in_out_circ.gif │ │ ├── curve_ease_in_out_cubic.gif │ │ ├── curve_ease_in_out_expo.gif │ │ ├── curve_ease_in_out_quad.gif │ │ ├── curve_ease_in_out_quart.gif │ │ ├── curve_ease_in_out_quint.gif │ │ ├── curve_ease_in_out_sine.gif │ │ ├── curve_ease_in_quad.gif │ │ ├── curve_ease_in_quart.gif │ │ ├── curve_ease_in_quint.gif │ │ ├── curve_ease_in_sine.gif │ │ ├── curve_ease_out.gif │ │ ├── curve_ease_out_back.gif │ │ ├── curve_ease_out_circ.gif │ │ ├── curve_ease_out_cubic.gif │ │ ├── curve_ease_out_expo.gif │ │ ├── curve_ease_out_quad.gif │ │ ├── curve_ease_out_quart.gif │ │ ├── curve_ease_out_quint.gif │ │ ├── curve_ease_out_sine.gif │ │ ├── curve_elastic_in.gif │ │ ├── curve_elastic_in_out.gif │ │ ├── curve_elastic_out.gif │ │ ├── curve_fast_out_slow_in.gif │ │ ├── curve_flipped.gif │ │ ├── curve_interval.gif │ │ ├── curve_linear.gif │ │ ├── curve_sawtooth.gif │ │ ├── curve_slow_middle.gif │ │ └── curve_threshold.gif │ ├── dart3.png │ ├── dart3_one.jpeg │ ├── floating.png │ ├── flutter.jpg │ ├── flutter.webp │ ├── flutter_key.webp │ ├── flutter_logo.png │ ├── icon_account.png │ ├── icon_add_circle.png │ ├── icon_adverse_event.png │ ├── icon_again_shopping_cart.png │ ├── icon_appbar_back.png │ ├── icon_appbar_back_white.png │ ├── icon_apple_bg_grey.png │ ├── icon_arranged.png │ ├── icon_arrow_down.png │ ├── icon_arrow_left.png │ ├── icon_arrow_right.png │ ├── icon_arrow_up.png │ ├── icon_audio_visit_evaluate.png │ ├── icon_camera.png │ ├── icon_check_box_selected.png │ ├── icon_check_box_unselected.png │ ├── icon_check_circle_selected.png │ ├── icon_check_circle_selected_one.png │ ├── icon_check_circle_unselected.png │ ├── icon_check_circle_unselected_one.png │ ├── icon_chinese_medicine.png │ ├── icon_circle_half.png │ ├── icon_clear.png │ ├── icon_close_60.png │ ├── icon_copy.png │ ├── icon_corner.png │ ├── icon_dart3.png │ ├── icon_date_calender.png │ ├── icon_delete.png │ ├── icon_dowload.png │ ├── icon_edit.png │ ├── icon_emoji_circle.png │ ├── icon_expand_arrow_down.png │ ├── icon_expand_arrow_up.png │ ├── icon_eye_close.png │ ├── icon_eye_open.png │ ├── icon_file_excel.png │ ├── icon_file_pdf.png │ ├── icon_file_ppt.png │ ├── icon_file_unknow.png │ ├── icon_file_word.png │ ├── icon_filter.png │ ├── icon_heart.png │ ├── icon_heart_border.png │ ├── icon_heart_half.png │ ├── icon_hi.png │ ├── icon_home_delete.png │ ├── icon_inquiry_pay_selected.png │ ├── icon_inquiry_pay_unselected.png │ ├── icon_inquiry_rights_selected.png │ ├── icon_inquiry_rights_unselected.png │ ├── icon_jc.png │ ├── icon_json_file.png │ ├── icon_left_voice_1.png │ ├── icon_left_voice_2.png │ ├── icon_left_voice_3.png │ ├── icon_lock.png │ ├── icon_medical_appliance.png │ ├── icon_member_remove.png │ ├── icon_member_voice.png │ ├── icon_member_voice_disable.png │ ├── icon_move_down.png │ ├── icon_move_up.png │ ├── icon_ocr_bar.png │ ├── icon_pause.png │ ├── icon_play.png │ ├── icon_play_video.png │ ├── icon_postmark_approved.png │ ├── icon_postmark_cancellation.png │ ├── icon_postmark_finished.png │ ├── icon_postmark_invalid.png │ ├── icon_postmark_refused.png │ ├── icon_postmark_unused.png │ ├── icon_postmark_used.png │ ├── icon_postmark_wait_approve.png │ ├── icon_postmark_wait_notarize.png │ ├── icon_qr.png │ ├── icon_quote.png │ ├── icon_rec_cat.png │ ├── icon_reviewed.png │ ├── icon_revoke.png │ ├── icon_scan.png │ ├── icon_search.png │ ├── icon_segment_collect.png │ ├── icon_segment_emoji.png │ ├── icon_segmented_control_carer_gray.png │ ├── icon_segmented_control_carer_white.png │ ├── icon_segmented_control_doctor_gray.png │ ├── icon_segmented_control_doctor_white.png │ ├── icon_skipping.gif │ ├── icon_specimen_collection.png │ ├── icon_subject_diary.png │ ├── icon_switch.png │ ├── icon_time_long.png │ ├── icon_time_long_one.png │ ├── icon_trash.png │ ├── icon_trash_one.png │ ├── icon_upload.png │ ├── icon_upload_one.png │ ├── icon_user_add.png │ ├── icon_user_del.png │ ├── icon_video_visit_evaluate.png │ ├── icon_voice_circle.png │ ├── icon_wait_reply.png │ ├── icon_wechat.png │ ├── icon_wechat_bg_green.png │ ├── image_header_bg2.webp │ ├── img_404.png │ ├── img_flutter_3_10.png │ ├── img_flutter_3_10.webp │ ├── img_placeholder.png │ ├── img_placeholder_doctor.png │ ├── img_placeholder_empty.png │ ├── img_placeholder_empty_one.png │ ├── img_placeholder_offonline.png │ ├── img_placeholder_patient.png │ ├── img_placeholder_search.png │ ├── img_sound_overlay_bg_recording.png │ ├── img_sound_overlay_bottom.png │ ├── img_sound_overlay_bottom2.png │ ├── img_sound_overlay_bottom_cancel.png │ ├── img_sound_overlay_button.png │ ├── img_sound_overlay_button_cancel.png │ ├── img_sound_recording.gif │ ├── img_update.png │ ├── img_upload_placeholder.png │ ├── js_cover.png │ ├── logo_glassmophism.png │ ├── package_delivery_tracking.png │ ├── process_timeline.png │ ├── pub_dev_logo.png │ ├── rec_left_flot_btn.gif │ ├── sha_qiu.png │ ├── shan.png │ ├── soaring_logo.png │ ├── soaring_logo_two.png │ ├── timeline_status.png │ └── weiqi.png └── sample.mp3 ├── buildApk.sh ├── buildIos.sh ├── devtools_options.yaml ├── flutter_native_splash.yaml ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Podfile ├── Podfile.lock ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings ├── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.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 │ │ ├── Contents.json │ │ ├── LaunchBackground.imageset │ │ │ ├── Contents.json │ │ │ └── background.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 ├── build │ └── Pods.build │ │ └── Release-iphonesimulator │ │ ├── FMDB.build │ │ └── dgph │ │ ├── Flutter.build │ │ └── dgph │ │ ├── Pods-Runner.build │ │ └── dgph │ │ ├── Toast.build │ │ └── dgph │ │ ├── flutter_boost.build │ │ └── dgph │ │ ├── fluttertoast.build │ │ └── dgph │ │ ├── integration_test.build │ │ └── dgph │ │ ├── path_provider.build │ │ └── dgph │ │ ├── path_provider_ios.build │ │ └── dgph │ │ ├── permission_handler.build │ │ └── dgph │ │ ├── share.build │ │ └── dgph │ │ ├── sqflite.build │ │ └── dgph │ │ ├── url_launcher.build │ │ └── dgph │ │ ├── url_launcher_ios.build │ │ └── dgph │ │ └── webview_flutter_wkwebview.build │ │ └── dgph └── fastlane │ ├── .env │ ├── Appfile │ ├── Deliverfile │ ├── Fastfile │ ├── Pluginfile │ ├── README.md │ ├── actions │ ├── clear_cache_files.rb │ ├── dingdingtalk_robot.rb │ ├── dingslack_robot.rb │ ├── git_last_log_dic.rb │ ├── markdown_desc.rb │ ├── plist_from_path.rb │ ├── project_name.rb │ ├── update_build.rb │ └── yaml_from_path.rb │ ├── metadata │ └── app_icon.jpg │ └── report.xml ├── lib ├── APPThemeSettings.dart ├── Language │ └── Property.dart ├── LocationsDelegate.dart ├── basicWidget │ ├── CircleLayout.dart │ ├── CircleSectorProgressIndicator.dart │ ├── EnhanceTab │ │ ├── enhance_tab_bar.dart │ │ └── enhance_tab_bar_demo.dart │ ├── ExpandButtons │ │ ├── expand_icons.dart │ │ └── expand_layout.dart │ ├── FloatingActionButtonLocationOffset.dart │ ├── GradientBoundPainter.dart │ ├── NRequestBox │ │ ├── n_request_box.dart │ │ └── n_request_box_demo.dart │ ├── NTree │ │ ├── NTree.dart │ │ └── NTreeDemo.dart │ ├── PickerUtil.dart │ ├── PromptBuilder.dart │ ├── RectProgressClipper.dart │ ├── TextInputFormatter │ │ ├── block_text_input_formatter.dart │ │ ├── decimal_input_formatter.dart │ │ ├── fraction_digits_text_input_formatter.dart │ │ ├── insert_blank_text_input_formatter.dart │ │ └── int_clamp_text_input_formatter.dart │ ├── TicketUI.dart │ ├── ToastWidget.dart │ ├── WheelPainter.dart │ ├── after_layout_builder.dart │ ├── animated_group.dart │ ├── app_update_card.dart │ ├── app_upgrade_view.dart │ ├── asset_image_stretch.dart │ ├── chioce_list.dart │ ├── chioce_wrap.dart │ ├── custom_swiper.dart │ ├── custome_animated.dart │ ├── dashed_decoration.dart │ ├── drag_destination_view.dart │ ├── enhance │ │ ├── bottom_navigation_bar │ │ │ └── n_bottom_navigation_bar.dart │ │ ├── en_app_bar │ │ │ └── en_app_bar.dart │ │ ├── en_sliding_segmented_control │ │ │ ├── en_sliding_segmented_control.dart │ │ │ ├── n_sliding_segmented_control.dart │ │ │ └── n_sliding_segmented_page_view.dart │ │ ├── enhance_dialog_sheet │ │ │ ├── en_bottom_sheet.dart │ │ │ ├── en_dialog.dart │ │ │ ├── en_display_feature_sub_screen.dart │ │ │ └── en_routes.dart │ │ ├── enhance_expansion │ │ │ └── en_expansion_tile.dart │ │ └── enhance_stepper │ │ │ └── enhance_stepper.dart │ ├── error_custom_widget.dart │ ├── fade_builder.dart │ ├── form │ │ ├── ae_address_choose_item.dart │ │ ├── ae_card.dart │ │ ├── ae_choose_item.dart │ │ ├── ae_date_choose_item.dart │ │ ├── ae_horizal_choose_item.dart │ │ ├── ae_horizal_choose_mutil_item.dart │ │ ├── ae_input_item.dart │ │ ├── ae_judge_item.dart │ │ ├── ae_patient_card.dart │ │ ├── ae_questionnaire_card.dart │ │ ├── ae_section_header.dart │ │ ├── ae_single_choose_item.dart │ │ ├── ae_textfiled.dart │ │ ├── ae_time_choose_item.dart │ │ ├── ae_time_line.dart │ │ ├── ae_upload_document_item.dart │ │ └── ae_upload_image_item.dart │ ├── horizontal_cell.dart │ ├── hud │ │ ├── CirclePulseLoadingWidget.dart │ │ ├── ToastDialog.dart │ │ └── progresshud.dart │ ├── im_group_avatar.dart │ ├── im_reciple_bottom_sheet.dart │ ├── im_sound_record_bar.dart │ ├── im_sound_recording_page.dart │ ├── im_textfield_bar.dart │ ├── im_tip_bell_cell.dart │ ├── inner_shadow.dart │ ├── keep_alive_wrapper.dart │ ├── layout_log_print.dart │ ├── list_subtitle_cell.dart │ ├── marquee_widget.dart │ ├── merge_images_widget.dart │ ├── n_account_sheet.dart │ ├── n_account_sheet_new.dart │ ├── n_adaptive_text.dart │ ├── n_alert_dialog.dart │ ├── n_alignment_drawer.dart │ ├── n_app_bar.dart │ ├── n_app_bar_them_change.dart │ ├── n_autocomplete_options_view.dart │ ├── n_avatar_badge.dart │ ├── n_avatar_group.dart │ ├── n_badge.dart │ ├── n_blur_view.dart │ ├── n_box.dart │ ├── n_box_border.dart │ ├── n_button.dart │ ├── n_button_cancel.dart │ ├── n_button_confirm.dart │ ├── n_cancel_and_confirm_bar.dart │ ├── n_choic_bottom_bar.dart │ ├── n_choice_box.dart │ ├── n_choice_box_horizontal.dart │ ├── n_choice_box_one.dart │ ├── n_choice_expansion.dart │ ├── n_choice_expansion_of_model.dart │ ├── n_choice_filter_box.dart │ ├── n_chrome_segment.dart │ ├── n_collection_nav_widget.dart │ ├── n_collection_view.dart │ ├── n_context_menu.dart │ ├── n_context_menu_region.dart │ ├── n_convert_view.dart │ ├── n_cross_fade.dart │ ├── n_cross_notice.dart │ ├── n_cupertino_picker_list_view.dart │ ├── n_dash_decoration.dart │ ├── n_dash_line.dart │ ├── n_date_picker.dart │ ├── n_date_start_end.dart │ ├── n_drop_menu_filter_bar.dart │ ├── n_drop_menu_filter_section_bar.dart │ ├── n_ensure_visible.dart │ ├── n_expand_text.dart │ ├── n_expand_text_one.dart │ ├── n_expand_text_vertical.dart │ ├── n_expand_textfield.dart │ ├── n_expansion_fade.dart │ ├── n_expansion_menu.dart │ ├── n_fade_page_route.dart │ ├── n_fade_transition.dart │ ├── n_fade_transition_builder.dart │ ├── n_filter.dart │ ├── n_filter_button.dart │ ├── n_filter_drop_box.dart │ ├── n_filter_section.dart │ ├── n_flex_separated.dart │ ├── n_flexible_cell.dart │ ├── n_flexible_space_bar.dart │ ├── n_floating_button.dart │ ├── n_footer.dart │ ├── n_footer_button_bar.dart │ ├── n_four_corner.dart │ ├── n_future_builder.dart │ ├── n_grid_view.dart │ ├── n_horizontal_scroll_widget.dart │ ├── n_image_indicator.dart │ ├── n_image_loading.dart │ ├── n_image_preview.dart │ ├── n_indicator_point.dart │ ├── n_inner_shadow.dart │ ├── n_line_progress_indicator.dart │ ├── n_line_segment_view.dart │ ├── n_list_view_segment_control.dart │ ├── n_long_press_menu.dart │ ├── n_menu_anchor.dart │ ├── n_menu_anchor_for_image.dart │ ├── n_network_image.dart │ ├── n_network_online.dart │ ├── n_order_num_unit.dart │ ├── n_origin_sheet.dart │ ├── n_overlay.dart │ ├── n_page_view.dart │ ├── n_painter_arc.dart │ ├── n_pair.dart │ ├── n_pick_request_list_box.dart │ ├── n_pick_users_box.dart │ ├── n_picker_choice_view.dart │ ├── n_picker_list_view.dart │ ├── n_picker_tool_bar.dart │ ├── n_pinned_tab_bar_page.dart │ ├── n_placeholder.dart │ ├── n_point_indicator.dart │ ├── n_pop_view_box.dart │ ├── n_popup_route.dart │ ├── n_refresh_view.dart │ ├── n_resize.dart │ ├── n_resize_switch.dart │ ├── n_scan_photo.dart │ ├── n_search_bar.dart │ ├── n_section_box.dart │ ├── n_secure_keyboard_focus.dart │ ├── n_segment_control_emoj_view.dart │ ├── n_segment_control_emoji.dart │ ├── n_selected_cell.dart │ ├── n_shader_text.dart │ ├── n_single_ticker_stateful_builder.dart │ ├── n_size_transition.dart │ ├── n_skeleton_item.dart │ ├── n_skeleton_screen.dart │ ├── n_slidable_delete_cell.dart │ ├── n_slide_transition.dart │ ├── n_slide_transition_builder.dart │ ├── n_slider.dart │ ├── n_sliver_decorated_box.dart │ ├── n_sliver_persistent_header_delegate.dart │ ├── n_sliver_section.dart │ ├── n_sliver_section_list.dart │ ├── n_split_view.dart │ ├── n_swiper_gesture_detector.dart │ ├── n_tab_bar_colored_box.dart │ ├── n_tab_bar_indicator_fixed.dart │ ├── n_tab_bar_page.dart │ ├── n_tab_bar_page_custom.dart │ ├── n_tab_bar_view.dart │ ├── n_tab_page_view.dart │ ├── n_tag_box.dart │ ├── n_tag_box_new.dart │ ├── n_target_follower.dart │ ├── n_text.dart │ ├── n_text_button.dart │ ├── n_text_view.dart │ ├── n_textfield.dart │ ├── n_textfield_search.dart │ ├── n_textfield_unit.dart │ ├── n_third_login.dart │ ├── n_ticket_clipper.dart │ ├── n_ticket_divder.dart │ ├── n_ticket_divider_painter.dart │ ├── n_transition_builder.dart │ ├── n_tween_transition.dart │ ├── n_type_writer_text.dart │ ├── n_user_privacy.dart │ ├── n_webview_page.dart │ ├── neumorphism_button.dart │ ├── number_stepper.dart │ ├── page_indicator_widget.dart │ ├── picker_drug_box.dart │ ├── radial_button.dart │ ├── record_expand_text.dart │ ├── responsive_column.dart │ ├── scroll │ │ ├── NCustomScrollBehavior.dart │ │ ├── custom_page_controller.dart │ │ ├── custom_page_view_scroll_physics.dart │ │ └── custom_tab_controller.dart │ ├── search_results_list_view.dart │ ├── section_list_view.dart │ ├── skeleton_item.dart │ ├── sliver_decorate_box.dart │ ├── steper_connector.dart │ ├── theme │ │ ├── n_button_theme.dart │ │ └── n_search_theme.dart │ ├── triangle_decoration.dart │ ├── triangle_path.dart │ ├── tween_animated_widget.dart │ ├── upload │ │ ├── asset_upload_box.dart │ │ ├── asset_upload_box.md │ │ ├── asset_upload_box_demo.dart │ │ ├── asset_upload_button.dart │ │ ├── asset_upload_config.dart │ │ ├── asset_upload_model.dart │ │ ├── image_service.dart │ │ └── video_service.dart │ ├── upload_button.dart │ ├── upload_document │ │ ├── asset_upload_document_box.dart │ │ ├── asset_upload_document_box.md │ │ ├── asset_upload_document_button.dart │ │ └── asset_upload_document_model.dart │ ├── upload_file │ │ ├── n_file_upload_Item.dart │ │ ├── n_file_upload_box.dart │ │ ├── n_file_upload_handle.dart │ │ ├── n_file_upload_model.dart │ │ └── n_file_upload_pi.dart │ ├── voice_animation_image.dart │ ├── x_box_widget.dart │ ├── x_collection_nav_widget.dart │ └── x_horizontal_scroll_widget.dart ├── cache │ ├── asset_cache_service.dart │ ├── cache_controller.dart │ ├── cache_service.dart │ ├── file_browser_page.dart │ ├── file_manager.dart │ └── file_share.dart ├── enum │ ├── ActivityType.dart │ ├── DateFormatEnum.dart │ ├── DateTimeFormat.dart │ ├── FileType.dart │ ├── RegExpSourceEnum.dart │ ├── TIMMessageElemType.dart │ ├── TIMMessageStatus.dart │ ├── TIMSignalingActionType.dart │ ├── operate_type.dart │ └── path_provider_enum.dart ├── eventbus │ ├── ValueChangedEvent.dart │ └── event_bus_service.dart ├── extension │ ├── alignment_ext.dart │ ├── app_bar_ext.dart │ ├── bool_ext.dart │ ├── build_context_ext.dart │ ├── button_ext.dart │ ├── change_notifier_ext.dart │ ├── clipboard_ext.dart │ ├── color_ext.dart │ ├── date_time_ext.dart │ ├── ddlog.dart │ ├── decoration_ext.dart │ ├── dialog_ext.dart │ ├── divider_ext.dart │ ├── duration_ext.dart │ ├── edge_insets_ext.dart │ ├── editable_text_ext.dart │ ├── enum_ext.dart │ ├── file_ext.dart │ ├── flex_ext.dart │ ├── floating_action_button_location_ext.dart │ ├── function_ext.dart │ ├── future_ext.dart │ ├── generic_comparable_ext.dart │ ├── geometry_ext.dart │ ├── getx_ext.dart │ ├── image_ext.dart │ ├── list_ext.dart │ ├── list_nullable_ext.dart │ ├── map_ext.dart │ ├── media_query_ext.dart │ ├── navigator_ext.dart │ ├── num_ext.dart │ ├── number_format.dart │ ├── object_ext.dart │ ├── orientation_ext.dart │ ├── overlay_ext.dart │ ├── page_controller_ext.dart │ ├── platform_ext.dart │ ├── proxy_box_ext.dart │ ├── regexp_ext.dart │ ├── rich_text_ext.dart │ ├── route_ext.dart │ ├── scroll_controller_ext.dart │ ├── service_protocol_info_ext.dart │ ├── snack_bar_ext.dart │ ├── stack_ext.dart │ ├── string_ext.dart │ ├── system_channels_ext.dart │ ├── system_chrome_ext.dart │ ├── tab_ext.dart │ ├── text_painter_ext.dart │ ├── text_style_ext.dart │ ├── timer_ext.dart │ ├── type_util.dart │ └── widget_ext.dart ├── main.dart ├── mixin │ ├── BottomBouncingScrollPhysics.dart │ ├── MyScrollPhysics.dart │ ├── address_mixin.dart │ ├── app_lifecycle_state_mixin.dart │ ├── asset_picker_mixin.dart │ ├── asset_resource_mixin.dart │ ├── bottom_sheet_image_mixin.dart │ ├── bottom_sheet_mixin.dart │ ├── bottom_sheet_phrases_mixin.dart │ ├── compress_image_mixin.dart │ ├── create_file_mixin.dart │ ├── cupertino_alert_dialog_mixin.dart │ ├── debug_bottom_sheet_mixin.dart │ ├── dialog_mixin.dart │ ├── dialog_tag_select.dart │ ├── equal_identical_mixin.dart │ ├── expression_formula_mxin.dart │ ├── file_picker_mixin.dart │ ├── floating_button_mixin.dart │ ├── overlay_mixin.dart │ ├── photo_picker_mixin.dart │ ├── safe_set_state_mixin.dart │ ├── scroll_direction_mixin.dart │ ├── selectable_mixin.dart │ ├── sound_state_mixin.dart │ └── timings_mixin.dart ├── model │ ├── AppDetailRootModel.dart │ ├── NPerson.dart │ ├── RootModel.dart │ ├── app_update_model.dart │ ├── appstore_app_detail_root_model.dart │ ├── cell_model.dart │ ├── fake_data_model.dart │ ├── git_repo_model.dart │ ├── im_conversation_detail_model.dart │ ├── im_msg_list_root_model.dart │ ├── mock_data.dart │ ├── notice_model.dart │ ├── open_weather_model.dart │ ├── order_model.dart │ ├── repo_model.dart │ ├── repo_model.g.dart │ ├── repository.dart │ ├── section_detail_model.dart │ ├── selected_model.dart │ ├── status_detail_model.dart │ ├── student.dart │ ├── tag_detail_model.dart │ └── user_model.dart ├── network │ ├── RequestConfig.dart │ ├── RequestError.dart │ ├── RequestManager.dart │ ├── api │ │ ├── tag_clear_api.dart │ │ ├── tag_get_api.dart │ │ ├── tag_list_api.dart │ │ ├── tag_set_api.dart │ │ └── token_refersh_api.dart │ ├── base_request_api.dart │ ├── controller │ │ ├── tag_change_notifier.dart │ │ └── tag_gex_controller.dart │ ├── dio_ext.dart │ ├── dio_upload_service.dart │ ├── interceptors │ │ ├── exception_interceptor.dart │ │ ├── token_interceptor.dart │ │ └── validate_interceptor.dart │ ├── oss │ │ ├── oss_auth_api.dart │ │ ├── oss_auth_model.dart │ │ └── oss_util.dart │ └── proxy │ │ └── dio_proxy.dart ├── pages │ ├── IrregularClipperDemo.dart │ ├── app_not_found_page.dart │ ├── app_settings_page.dart │ ├── app_tab_bar_controller.dart │ ├── app_tab_page.dart │ ├── app_user_center_page.dart │ ├── demo │ │ ├── APIConvertPage.dart │ │ ├── APPForgetPwdPage.dart │ │ ├── AbsorbPointerDemo.dart │ │ ├── AfterLayoutDemo.dart │ │ ├── AlertDialogDemo.dart │ │ ├── AlertDialogTagSelectDemo.dart │ │ ├── AlertSheetDemo.dart │ │ ├── AlignmentDrawDemo.dart │ │ ├── AnimatedBuilderDemo.dart │ │ ├── AnimatedContainerDemo.dart │ │ ├── AnimatedDemo.dart │ │ ├── AnimatedGroupDemo.dart │ │ ├── AnimatedListDemo.dart │ │ ├── AnimatedListSample.dart │ │ ├── AnimatedSizeDemo.dart │ │ ├── AnimatedSizeDemoOne.dart │ │ ├── AnimatedStaggerDemo.dart │ │ ├── AnimatedSwitcherDemo.dart │ │ ├── AnimatedWidgetDemo.dart │ │ ├── ApiCreatePage.dart │ │ ├── ApiCreateTemplet.dart │ │ ├── AppBarDemo.dart │ │ ├── AppDrawerMenuPage.dart │ │ ├── AppLaunchPage.dart │ │ ├── AppLifecycleStateObserverDemo.dart │ │ ├── AppRouteAwareDemo.dart │ │ ├── AppRouteAwareDemoOne.dart │ │ ├── AppSandboxFileDirectory.dart │ │ ├── AppWebViewDemo.dart │ │ ├── AsyncDemo.dart │ │ ├── AudioPlayerPageDemo.dart │ │ ├── AutoLayoutDemo.dart │ │ ├── AutocompleteDemo.dart │ │ ├── AutofillGroupDemo.dart │ │ ├── BackdropFilterDemo.dart │ │ ├── BadgeDemo.dart │ │ ├── BannerDemo.dart │ │ ├── BatterLevelPage.dart │ │ ├── BlurViewDemo.dart │ │ ├── BorderDemo.dart │ │ ├── BottomAppBarDemo.dart │ │ ├── BottomSheetDemo.dart │ │ ├── BoxConstraintsDemo.dart │ │ ├── BoxDemo.dart │ │ ├── BuilderDemo.dart │ │ ├── ButtonStyleDemo.dart │ │ ├── CalendarDatePickerDemo.dart │ │ ├── CarouselSliderDemo.dart │ │ ├── ChemotherapyRegimenDrugCaculator.dart │ │ ├── ChipDemo.dart │ │ ├── CirclePainter.dart │ │ ├── ClipDemo.dart │ │ ├── ColoredBoxDemo.dart │ │ ├── ComponentMiddlePage.dart │ │ ├── CompositedTransformTargetDemo.dart │ │ ├── ContainerDemo.dart │ │ ├── ContextMenuActionDemo.dart │ │ ├── ContextMenuDemo.dart │ │ ├── ConvertFlle.dart │ │ ├── CupertinoFormDemo.dart │ │ ├── CupertinoTabScaffoldDemo.dart │ │ ├── CurvedNavigationBarDemo.dart │ │ ├── CustomMultiChildLayoutDemo.dart │ │ ├── CustomPainterPageDemo.dart │ │ ├── CustomScrollBarDemo.dart │ │ ├── CustomSingleChildLayoutDemo.dart │ │ ├── CustomSwipperDemo.dart │ │ ├── DashLineDemo.dart │ │ ├── DataTableDemo.dart │ │ ├── DateRangePickerDialogDemo.dart │ │ ├── DateTimeDemo.dart │ │ ├── DecoratedBoxTransitionDemo.dart │ │ ├── DecorationDemo.dart │ │ ├── DefaultTabControllerDemo.dart │ │ ├── DevelopToolList.dart │ │ ├── DialogChoiceChipDemo.dart │ │ ├── DirectoryTestDemo.dart │ │ ├── DismissibleDemo.dart │ │ ├── DisplayFeatureDemo.dart │ │ ├── DragAndDropDemo.dart │ │ ├── DraggableDemo.dart │ │ ├── DraggableScrollableSheetDemo.dart │ │ ├── DrawCanvasDemo.dart │ │ ├── DropBoxChoicDemo.dart │ │ ├── DropBoxChoicDemoNew.dart │ │ ├── DropBoxMutiRowChoicDemo.dart │ │ ├── DropdownMenuDemo.dart │ │ ├── EditableTextDemo.dart │ │ ├── EmojiPage.dart │ │ ├── ExpandIconDemo.dart │ │ ├── ExpandIconDemoNew.dart │ │ ├── ExpressionsCalulatorDemo.dart │ │ ├── FaceDetectionPage.dart │ │ ├── FilterDemo.dart │ │ ├── FilterDemoOne.dart │ │ ├── FittedBoxDemo.dart │ │ ├── FlexDemo.dart │ │ ├── FlexbleListViewPage.dart │ │ ├── FlexibleDemo.dart │ │ ├── FlexibleSpaceDemo.dart │ │ ├── FloatingActionButtonDemo.dart │ │ ├── FloatingButtonDemo.dart │ │ ├── FloatingButtonDemoOne.dart │ │ ├── FloatingButtonDemoThree.dart │ │ ├── FloatingButtonDemoTwo.dart │ │ ├── FlutterFFiTest.dart │ │ ├── FlutterPickerUtilDemo.dart │ │ ├── FlutterRingtonePlayerDemo.dart │ │ ├── FormDemo.dart │ │ ├── FractionallySizedBoxDemo.dart │ │ ├── FutureBuilderDemo.dart │ │ ├── GestureDetectorDemo.dart │ │ ├── GetxControllerDemo.dart │ │ ├── GetxRouteCreatePage.dart │ │ ├── GexControllerTagDemo.dart │ │ ├── GithubRepoDemo.dart │ │ ├── GlobalIsolateDemo.dart │ │ ├── GlowingOverscrollIndicatorDemo.dart │ │ ├── GradientDemo.dart │ │ ├── GradientOfRadialDemo.dart │ │ ├── GridPaperDemo.dart │ │ ├── GridViewDemo.dart │ │ ├── HapticFeedbackDemo.dart │ │ ├── HeroDemo.dart │ │ ├── HitTestBehaviorDemo.dart │ │ ├── HitTestDemo.dart │ │ ├── HomeNavDemo.dart │ │ ├── HorizontalCellDemo.dart │ │ ├── HudProgressDemo.dart │ │ ├── IconConvertPage.dart │ │ ├── IgnorePointerDemo.dart │ │ ├── ImChatPage.dart │ │ ├── ImConversationPage.dart │ │ ├── ImageBlendModeDemo.dart │ │ ├── ImageStretchDemo.dart │ │ ├── IndexedStackDemo.dart │ │ ├── IndicatorDemo.dart │ │ ├── InheritedWidgetDemo.dart │ │ ├── InputDatePickerFormFieldDemo.dart │ │ ├── InteractiveViewerDemo.dart │ │ ├── IntrinsicHeightDemo.dart │ │ ├── IteratorDemo.dart │ │ ├── JsonToModelPage.dart │ │ ├── KeyDemo.dart │ │ ├── LayoutBuilderDemo.dart │ │ ├── LeetCode.dart │ │ ├── ListBodyDemo.dart │ │ ├── ListDismissibleDemo.dart │ │ ├── ListTileDemo.dart │ │ ├── ListViewDemo.dart │ │ ├── ListViewOneDemo.dart │ │ ├── ListViewStyleDemo.dart │ │ ├── ListWheelScrollViewDemo.dart │ │ ├── ListenableDemo.dart │ │ ├── LocalImagePage.dart │ │ ├── LocalNotifationDemo.dart │ │ ├── LoginPage.dart │ │ ├── LoginPageOne.dart │ │ ├── LoginPageTwo.dart │ │ ├── LongCaptureWidgetDemo.dart │ │ ├── MarkdownBodyDemo.dart │ │ ├── MarqueeWidgetDemo.dart │ │ ├── MaterialBannerDemo.dart │ │ ├── MaterialDemo.dart │ │ ├── MediaQueryDemo.dart │ │ ├── MediaQueryDemoOne.dart │ │ ├── MediaQueryScreeenDemo.dart │ │ ├── MenuAnchorDemo.dart │ │ ├── MenuDemo.dart │ │ ├── MenuEntryDemo.dart │ │ ├── MergeableMaterialDemo.dart │ │ ├── ModalBarrierDemo.dart │ │ ├── MouseRegionDemo.dart │ │ ├── MyDrawer.dart │ │ ├── MyPopverDemo.dart │ │ ├── NAppBarColorChangerDemo.dart │ │ ├── NAvatarGroupDemo.dart │ │ ├── NBoxWidgetDemo.dart │ │ ├── NChoiceBoxOneDemo.dart │ │ ├── NChoiceExpansionDemo.dart │ │ ├── NExpandTextDemo.dart │ │ ├── NFooterButtonBarDemo.dart │ │ ├── NPageViewDemo.dart │ │ ├── NRefreshViewDemo.dart │ │ ├── NScanPhotoDemo.dart │ │ ├── NSectionHeaderDemo.dart │ │ ├── NSegmentVerticalDemo.dart │ │ ├── NSliverPersistentHeaderDemo.dart │ │ ├── NTabBarPageDemo.dart │ │ ├── NTabBarViewCustomDemo.dart │ │ ├── NTargetFollowerDemo.dart │ │ ├── NTransformViewDemo.dart │ │ ├── NTweenTransitionDemo.dart │ │ ├── NWebViewDemo.dart │ │ ├── NavigationBarDemo.dart │ │ ├── NavigationRailDemo.dart │ │ ├── NavigationToolbarDemo.dart │ │ ├── NestedNavigatorDemo.dart │ │ ├── NestedScrollViewDemo.dart │ │ ├── NestedScrollViewDemoFour.dart │ │ ├── NestedScrollViewDemoHome.dart │ │ ├── NestedScrollViewDemoOne.dart │ │ ├── NestedScrollViewDemoThree.dart │ │ ├── NestedScrollViewDemoTwo.dart │ │ ├── NetStateListenerDemo.dart │ │ ├── NetStateListenerDemoOne.dart │ │ ├── NeumorphismDemo.dart │ │ ├── NotificationListenerDemo.dart │ │ ├── NumberFormatDemo.dart │ │ ├── NumberStepperDemo.dart │ │ ├── OcrPhotoDemo.dart │ │ ├── OffstageDemo.dart │ │ ├── OverflowBarDemo.dart │ │ ├── OverflowDemo.dart │ │ ├── OverlayDemo.dart │ │ ├── OverlayDemoOne.dart │ │ ├── OverlayDemoTwo.dart │ │ ├── OverlayMixinDemo.dart │ │ ├── OverlayPortalDemo.dart │ │ ├── PageBuilderDemo.dart │ │ ├── PageLifecycleFuncTest.dart │ │ ├── PageLifecycleObserverDemo.dart │ │ ├── PageRouteAnimationDemo.dart │ │ ├── PageRouteDemo.dart │ │ ├── PageViewAndBarDemo.dart │ │ ├── PageViewDemo.dart │ │ ├── PageViewDemoOne.dart │ │ ├── PageViewDemoThree.dart │ │ ├── PageViewVerticalDemo.dart │ │ ├── PhysicalModelDemo.dart │ │ ├── PickerDemo.dart │ │ ├── PlatformDispatcherDemo.dart │ │ ├── PlatformMenuBarDemo.dart │ │ ├── PopScopeDemo.dart │ │ ├── PositionedDirectionalDemo.dart │ │ ├── PreferredSizeDemo.dart │ │ ├── ProgressClipperDemo.dart │ │ ├── ProgressHudDemo.dart │ │ ├── ProgressHudDemoNew.dart │ │ ├── PromptBuilderDemo.dart │ │ ├── QueueAlertDemo.dart │ │ ├── RatingBarDemo.dart │ │ ├── ReflectDemo.dart │ │ ├── RefreshIndicatorDemo.dart │ │ ├── RefreshIndicatorDemoOne.dart │ │ ├── RefreshListView.dart │ │ ├── RegExpDemo.dart │ │ ├── ReorderableListViewDemo.dart │ │ ├── RichTextDemo.dart │ │ ├── RiverPodPageCreate.dart │ │ ├── RotatedBoxDemo.dart │ │ ├── ScaffoldBottomSheet.dart │ │ ├── ScaffoldDemo.dart │ │ ├── ScanAnimationDemo.dart │ │ ├── ScrollControllerDemo.dart │ │ ├── ScrollbarDemo.dart │ │ ├── SearchDemo.dart │ │ ├── SegmentedButtonDemo.dart │ │ ├── SegmentedControlDemo.dart │ │ ├── SegmentedControlDemoOne.dart │ │ ├── SegmentedPageViewDemo.dart │ │ ├── SelectList.dart │ │ ├── SelectableTextDemo.dart │ │ ├── ShaderMaskDemo.dart │ │ ├── ShortcutsDemo.dart │ │ ├── ShortcutsDemoOne.dart │ │ ├── ShowSearchDemo.dart │ │ ├── SlidableDemo.dart │ │ ├── SliderDemo.dart │ │ ├── SliverMainAxisGroupDemo.dart │ │ ├── SliverMainAxisGroupDemoOne.dart │ │ ├── SnackBarDemo.dart │ │ ├── SnackBarDemoOne.dart │ │ ├── SplitViewDemo.dart │ │ ├── StackDemo.dart │ │ ├── StackDemoOne.dart │ │ ├── StackDemoTwo.dart │ │ ├── StatefulBuilderDemo.dart │ │ ├── StepperDemo.dart │ │ ├── StreamBuilderDemo.dart │ │ ├── StringTransformPage.dart │ │ ├── SwitchDemo.dart │ │ ├── TabBarViewDemo.dart │ │ ├── TableDemo.dart │ │ ├── TapRegionDemo.dart │ │ ├── TestFunction.dart │ │ ├── TextDemo.dart │ │ ├── TextFieldDemo.dart │ │ ├── TextFieldDemoOne.dart │ │ ├── TextFieldDemoTwo.dart │ │ ├── TextFieldLoginDemo.dart │ │ ├── TextFieldTabDemo.dart │ │ ├── TextFieldWidgetDemo.dart │ │ ├── TextPaintDemo.dart │ │ ├── TextViewDemo.dart │ │ ├── ThemeColorDemo.dart │ │ ├── TicketUiDemo.dart │ │ ├── TimePickerDemo.dart │ │ ├── ToggleableStateMixinDemo.dart │ │ ├── TooltipDemo.dart │ │ ├── TransformDemo.dart │ │ ├── TranslationTextPage.dart │ │ ├── TwoDimensionalGridViewDemo.dart │ │ ├── Uint8ListDemo.dart │ │ ├── UploadFileDemo.dart │ │ ├── UrlLauncherDemo.dart │ │ ├── ValueListenableBuilderDemo.dart │ │ ├── VideoPlayerDemo.dart │ │ ├── VisibilityDemo.dart │ │ ├── WeatherInfoPage.dart │ │ ├── WrapDemo.dart │ │ ├── YamlParsePage.dart │ │ ├── ae_report_page.dart │ │ ├── audio_visualizer_demo.dart │ │ ├── box_shadow_demo.dart │ │ ├── box_shadow_demo_one.dart │ │ ├── checkbox_menu_demo.dart │ │ ├── convert │ │ │ ├── ConvertProtocol.dart │ │ │ ├── CopyWithConvert.dart │ │ │ ├── PackageExportConvert.dart │ │ │ ├── SizeFilterConvert.dart │ │ │ ├── WidgetNameConvert.dart │ │ │ └── WidgetThemeConvert.dart │ │ ├── curve_painter.dart │ │ ├── data_type_demo.dart │ │ ├── drawImageNineDemo.dart │ │ ├── drug_dosage_cal_page.dart │ │ ├── email_sender_demo.dart │ │ ├── enumDemo.dart │ │ ├── file_upload_box_demo.dart │ │ ├── homeSrollDemo.dart │ │ ├── isolateDemo.dart │ │ ├── keyboard_attach_demo.dart │ │ ├── lerpDemo.dart │ │ ├── merge_images_demo.dart │ │ ├── merge_network_images_demo.dart │ │ ├── n_collection_nav_widget_demo.dart │ │ ├── n_horizontal_scroll_widget_demo.dart │ │ ├── navgation_bar_demo.dart │ │ ├── operator_demo.dart │ │ ├── patient_filter_box.dart │ │ ├── rp_template_qrcode_page.dart │ │ ├── secure_keyboard_demo.dart │ │ ├── smart_dialog_demo.dart │ │ ├── steper_connector_demo.dart │ │ ├── swiper_card_demo.dart │ │ ├── system_color_page.dart │ │ ├── system_curves_page.dart │ │ ├── system_icons_page.dart │ │ ├── tab_container_demo.dart │ │ ├── test_page.dart │ │ ├── test_page_one.dart │ │ ├── weather │ │ │ ├── models │ │ │ │ └── weather_type.dart │ │ │ ├── screens │ │ │ │ └── weather_home.dart │ │ │ └── widgets │ │ │ │ ├── weather_card.dart │ │ │ │ └── weather_effects │ │ │ │ ├── cloudy_effect.dart │ │ │ │ ├── foggy_effect.dart │ │ │ │ ├── rain_effect.dart │ │ │ │ ├── snow_effect.dart │ │ │ │ ├── sunny_effect.dart │ │ │ │ └── thunderstorm_effect.dart │ │ ├── webview_demo.dart │ │ ├── widget │ │ │ └── im_conversation_cell.dart │ │ └── will_pop_scope_demo.dart │ ├── first_page.dart │ ├── fourth_page.dart │ ├── medication_calculator.dart │ ├── neomorphism │ │ ├── neomorphism_cards_screen.dart │ │ ├── neomorphism_custom_switch.dart │ │ ├── neomorphism_home_page.dart │ │ └── neomorphism_login_screen.dart │ ├── second_page.dart │ ├── sliver_demo │ │ ├── NPinnedTabBarPageDemo.dart │ │ ├── PinnedHeaderSliverDemo.dart │ │ ├── SliverAnimatedListDemo.dart │ │ ├── SliverAppBarDemo.dart │ │ ├── SliverAppBarDemoOne.dart │ │ ├── SliverBaseDemo.dart │ │ ├── SliverFamilyDemo.dart │ │ ├── SliverFillRemainingDemo.dart │ │ ├── SliverFillViewportDemo.dart │ │ ├── SliverFloatingHeaderDemo.dart │ │ ├── SliverGridDemo.dart │ │ ├── SliverListDemo.dart │ │ ├── SliverListPopverDemo.dart │ │ ├── SliverPersistentHeaderDemo.dart │ │ ├── SliverPersistentHeaderDemoOne.dart │ │ ├── SliverPersistentHeaderDemoTwo.dart │ │ ├── SliverResizingHeaderDemo.dart │ │ ├── SliverTabBarDemo.dart │ │ ├── SliverTabbarDemoOne.dart │ │ ├── StaggeredGridViewDemo.dart │ │ └── listener_header_page.dart │ ├── tabBar_pageView_demo.dart │ ├── tabBar_reuse_page_demo.dart │ ├── tabBar_tabBarView_demo.dart │ └── third_page.dart ├── provider │ ├── ProxyProvider_demo.dart │ ├── color_filtered_provider.dart │ ├── event_bus_tool.dart │ ├── getx_state_demo.dart │ ├── getx_state_demo_new.dart │ ├── inherited_widget_demo.dart │ ├── notifier_demo.dart │ ├── order_provider.dart │ ├── provider_demo.dart │ ├── provider_demo_one.dart │ ├── provider_list_demo.dart │ ├── rxDart_provider_demo.dart │ └── state_manager_demo.dart ├── routes │ ├── APPRouter.dart │ ├── AppRouteObserver.dart │ ├── BaseRouteObserver.dart │ ├── InitialBinding.dart │ └── middleware │ │ └── AuthMiddleware.dart ├── service │ ├── app_lifecycle_service.dart │ ├── connectivity_service.dart │ ├── internet_connection_service.dart │ └── ocr_text_recognition_manager.dart ├── util │ ├── AppLifecycleObserver.dart │ ├── ChangeNotifierProviderDemo.dart │ ├── Codable.dart │ ├── Debounce.dart │ ├── R.dart │ ├── Singleton.dart │ ├── Throttle.dart │ ├── app_upgrade_util.dart │ ├── color_util.dart │ ├── data_provider.dart │ ├── device_info_plugin_ext.dart │ ├── easy_notifier.dart │ ├── encrypt_util.dart │ ├── fade_page_route.dart │ ├── get_util.dart │ ├── global_isolate.dart │ ├── icons_map.dart │ ├── localizations │ │ ├── AppCupertinoLocalizations.dart │ │ └── ZhCupertinoLocalizations.dart │ ├── permission_util.dart │ ├── tool_util.dart │ ├── tts_manager.dart │ └── yaml_ext.dart └── vendor │ ├── ExtendedImageDemo.dart │ ├── FlutterIsolateDemo.dart │ ├── SVGAImageDemo.dart │ ├── ScribbleDemo.dart │ ├── SlidableDemoOne.dart │ ├── VisibilityDetectorDemo.dart │ ├── amap_location │ ├── location_detail_model.dart │ ├── location_state_mixin.dart │ └── map_util.dart │ ├── app_webView_page.dart │ ├── apple_sigin_mixin.dart │ ├── audio_session │ └── audio_session_manager.dart │ ├── audioplayers │ ├── audio_play_page.dart │ ├── audio_player_bar.dart │ └── audio_player_manager.dart │ ├── azlistview │ ├── azlistview_demo.dart │ ├── common │ │ ├── index.dart │ │ ├── models.dart │ │ ├── res.dart │ │ └── utils.dart │ └── ui │ │ ├── car_models_page.dart │ │ ├── citylist_custom_header_page.dart │ │ ├── citylist_page.dart │ │ ├── contacts_list_page.dart │ │ ├── contacts_page.dart │ │ ├── github_language_page.dart │ │ ├── index.dart │ │ ├── large_data_page.dart │ │ └── page_scaffold.dart │ ├── color_converter_demo.dart │ ├── custom_timer_demo.dart │ ├── file_preview │ ├── file_preview_page.dart │ └── webview_file_preview_page.dart │ ├── flutter_pickers │ ├── address_picker_page.dart │ ├── date_picker_page.dart │ ├── flutter_picker_util.dart │ ├── flutter_pickers_demo.dart │ ├── multiple_link_picker_page.dart │ ├── multiple_picker_page.dart │ ├── single_picker_page.dart │ └── style_picker_page.dart │ ├── flutter_swiper_demo.dart │ ├── flutter_swiper_indicator_demo.dart │ ├── fluwx │ └── fluwx_util.dart │ ├── getx │ ├── getx_demo.dart │ └── order_controller.dart │ ├── isar │ ├── DBDialogMixin.dart │ ├── DBManager.dart │ ├── db_mixin.dart │ ├── model │ │ ├── db_order.dart │ │ ├── db_order.g.dart │ │ ├── db_student.dart │ │ ├── db_student.g.dart │ │ ├── db_todo.dart │ │ ├── db_todo.g.dart │ │ └── db_user.dart │ ├── page │ │ ├── OrderItem.dart │ │ ├── OrderListPage.dart │ │ ├── OrderListPageOne.dart │ │ ├── OrderListTabPage.dart │ │ ├── StudentCell.dart │ │ ├── StudentLisPage.dart │ │ ├── StudentLisPageOne.dart │ │ ├── StudentTabPage.dart │ │ ├── TodoItem.dart │ │ ├── TodoListPage.dart │ │ ├── TodoListPageOne.dart │ │ └── TodoListTabPage.dart │ └── provider │ │ ├── change_notifier │ │ └── db_generic_provider.dart │ │ ├── db_generic_mixin.dart │ │ └── gex_controller │ │ └── db_generic_controller.dart │ ├── jpush │ ├── jpush_info_page.dart │ └── jpush_util.dart │ ├── popover_demo.dart │ ├── qr │ ├── qr_code_scanner_demo.dart │ └── qr_flutter_demo.dart │ ├── scheme_sign_page.dart │ ├── soundAbount │ └── SoundPlayDemo.dart │ ├── table_calendar │ ├── basics_example.dart │ ├── complex_example.dart │ ├── events_example.dart │ ├── multi_example.dart │ ├── range_example.dart │ ├── table_calendar_utils.dart │ └── table_calender_main.dart │ ├── timeline │ ├── common │ │ ├── colors.dart │ │ └── font_const.dart │ ├── timeline.dart │ ├── timeline_demo.dart │ ├── timeline_element.dart │ ├── timeline_model.dart │ ├── timeline_painter.dart │ ├── timeline_step.dart │ └── triangle_painter.dart │ ├── timelines_demo │ ├── component_page.dart │ ├── generated_plugin_registrant.dart │ ├── logistics_time_line.dart │ ├── showcase │ │ ├── package_delivery_tracking.dart │ │ ├── process_timeline.dart │ │ └── timeline_status.dart │ ├── showcase_page.dart │ ├── theme_page.dart │ ├── timelines_demo.dart │ └── timelines_widgets.dart │ ├── toast_util.dart │ ├── vibration_service.dart │ ├── video_player │ ├── video_player_by_chewie_page.dart.dart │ └── video_player_controller.dart │ └── wechat_assets_picker_demo.dart ├── macos ├── .gitignore ├── .metadata ├── Flutter │ ├── Flutter-Debug.xcconfig │ ├── Flutter-Release.xcconfig │ └── GeneratedPluginRegistrant.swift ├── Podfile ├── Podfile.lock ├── README.md ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── app_icon_1024.png │ │ │ ├── app_icon_128.png │ │ │ ├── app_icon_16.png │ │ │ ├── app_icon_256.png │ │ │ ├── app_icon_32.png │ │ │ ├── app_icon_512.png │ │ │ └── app_icon_64.png │ ├── Base.lproj │ │ └── MainMenu.xib │ ├── Configs │ │ ├── AppInfo.xcconfig │ │ ├── Debug.xcconfig │ │ ├── Release.xcconfig │ │ └── Warnings.xcconfig │ ├── DebugProfile.entitlements │ ├── Info.plist │ ├── MainFlutterWindow.swift │ └── Release.entitlements ├── android │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── io │ │ │ │ │ └── flutter │ │ │ │ │ └── plugins │ │ │ │ │ └── GeneratedPluginRegistrant.java │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── macos │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable-v21 │ │ │ │ └── launch_background.xml │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── 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-night │ │ │ │ └── styles.xml │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── local.properties │ └── settings.gradle ├── build │ ├── ios │ │ └── Runner.build │ │ │ └── Release-iphoneos │ │ │ └── Runner.build │ │ │ └── dgph │ └── unit_test_assets │ │ ├── AssetManifest.json │ │ ├── FontManifest.json │ │ ├── NOTICES.Z │ │ ├── fonts │ │ └── MaterialIcons-Regular.otf │ │ └── packages │ │ └── cupertino_icons │ │ └── assets │ │ └── CupertinoIcons.ttf ├── ios │ ├── .gitignore │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ ├── Generated.xcconfig │ │ ├── Release.xcconfig │ │ └── flutter_export_environment.sh │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.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 │ │ └── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ └── README.md │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── GeneratedPluginRegistrant.h │ │ ├── GeneratedPluginRegistrant.m │ │ ├── Info.plist │ │ └── Runner-Bridging-Header.h ├── lib │ └── main.dart ├── macos │ ├── .gitignore │ ├── Flutter │ │ ├── Flutter-Debug.xcconfig │ │ ├── Flutter-Release.xcconfig │ │ └── GeneratedPluginRegistrant.swift │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── app_icon_1024.png │ │ │ ├── app_icon_128.png │ │ │ ├── app_icon_16.png │ │ │ ├── app_icon_256.png │ │ │ ├── app_icon_32.png │ │ │ ├── app_icon_512.png │ │ │ └── app_icon_64.png │ │ ├── Base.lproj │ │ └── MainMenu.xib │ │ ├── Configs │ │ ├── AppInfo.xcconfig │ │ ├── Debug.xcconfig │ │ ├── Release.xcconfig │ │ └── Warnings.xcconfig │ │ ├── DebugProfile.entitlements │ │ ├── Info.plist │ │ ├── MainFlutterWindow.swift │ │ └── Release.entitlements ├── pubspec.lock ├── pubspec.yaml ├── test │ └── widget_test.dart ├── web │ ├── favicon.png │ ├── icons │ │ ├── Icon-192.png │ │ └── Icon-512.png │ ├── index.html │ └── manifest.json └── windows │ ├── .gitignore │ ├── CMakeLists.txt │ ├── flutter │ ├── CMakeLists.txt │ ├── generated_plugin_registrant.cc │ ├── generated_plugin_registrant.h │ └── generated_plugins.cmake │ └── runner │ ├── CMakeLists.txt │ ├── Runner.rc │ ├── flutter_window.cpp │ ├── flutter_window.h │ ├── main.cpp │ ├── resource.h │ ├── resources │ └── app_icon.ico │ ├── run_loop.cpp │ ├── run_loop.h │ ├── runner.exe.manifest │ ├── utils.cpp │ ├── utils.h │ ├── win32_window.cpp │ └── win32_window.h ├── pubspec.lock ├── pubspec.yaml ├── screenshots ├── 7315个系统图标.png └── Screen Shot -2021-05-12 at 18.26.36.png ├── test └── widget_test.dart ├── web ├── favicon.png ├── icons │ ├── Icon-192.png │ ├── Icon-512.png │ ├── Icon-maskable-192.png │ └── Icon-maskable-512.png ├── index.html ├── manifest.json └── splash │ └── img │ └── light-background.png ├── weekly.sh └── windows ├── .gitignore ├── CMakeLists.txt ├── flutter ├── CMakeLists.txt ├── generated_plugin_registrant.cc ├── generated_plugin_registrant.h └── generated_plugins.cmake └── runner ├── CMakeLists.txt ├── Runner.rc ├── flutter_window.cpp ├── flutter_window.h ├── main.cpp ├── resource.h ├── resources └── app_icon.ico ├── runner.exe.manifest ├── utils.cpp ├── utils.h ├── win32_window.cpp └── win32_window.h /.fvm/flutter_sdk: -------------------------------------------------------------------------------- 1 | /Users/shang/fvm/versions/3.16.7 -------------------------------------------------------------------------------- /.fvm/fvm_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "flutterSdkVersion": "3.16.7" 3 | } -------------------------------------------------------------------------------- /.fvm/release: -------------------------------------------------------------------------------- 1 | 3.16.7 -------------------------------------------------------------------------------- /.fvm/version: -------------------------------------------------------------------------------- 1 | 3.16.7 -------------------------------------------------------------------------------- /.fvm/versions/3.16.7: -------------------------------------------------------------------------------- 1 | /Users/shang/fvm/versions/3.16.7 -------------------------------------------------------------------------------- /.fvmrc: -------------------------------------------------------------------------------- 1 | { 2 | "flutter": "3.16.7" 3 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | **/ios/Flutter/.last_build_id 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | /build/ 33 | 34 | # Web related 35 | lib/generated_plugin_registrant.dart 36 | 37 | # Symbolication related 38 | app.*.symbols 39 | 40 | # Obfuscation related 41 | app.*.map.json 42 | 43 | # Android Studio will place build artifacts here 44 | /android/app/debug 45 | /android/app/profile 46 | /android/app/release 47 | 48 | # FVM Version Cache 49 | .fvm/ -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 4cc385b4b84ac2f816d939a49ea1f328c4e0b48e 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // 使用 IntelliSense 了解相关属性。 3 | // 悬停以查看现有属性的描述。 4 | // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | 8 | { 9 | "name": "flutter_templet_project", 10 | "request": "launch", 11 | "type": "dart" 12 | }, 13 | { 14 | "name": "flutter_templet_project (profile mode)", 15 | "request": "launch", 16 | "type": "dart", 17 | "flutterMode": "profile" 18 | }, 19 | { 20 | "name": "flutter_templet_project (release mode)", 21 | "request": "launch", 22 | "type": "dart", 23 | "flutterMode": "release" 24 | }, 25 | { 26 | "name": "Flutter for web", 27 | "type": "dart", 28 | "request": "launch", 29 | "program": "lib/main.dart", 30 | "args": [ 31 | "-d", 32 | "chrome" 33 | ] 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "dart.flutterSdkPath": ".fvm/versions/3.16.7" 3 | } -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/flutter_templet_project/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.flutter_templet_project 2 | import android.os.Bundle 3 | import io.flutter.embedding.android.FlutterActivity 4 | class MainActivity: FlutterActivity() { 5 | } 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-v21/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/drawable-v21/background.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/drawable/background.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/fastlane/.env: -------------------------------------------------------------------------------- 1 | 2 | app_name = "App名称" 3 | 4 | 5 | # 各种链接 6 | APP_Slogan = "*" 7 | App_Icon_Link = "*" 8 | App_Store_Link = "itms-apps://apps.apple.com/cn/app/*?mt=8" 9 | 10 | 11 | Firim_Shortcut_Link = "http://d.firim.top/*" 12 | Pgyer_Shortcut_Link = "https://www.pgyer.com/*" 13 | 14 | Dingtalk_Url = "*" 15 | 16 | Slack_Url = "*" 17 | 18 | # APP元数据及截图存放路径 19 | App_Icon_Local = "./fastlane/metadata/app_icon.jpg" 20 | Metadata_Path = "./fastlane/metadata" 21 | Screenshots_Path = "./fastlane/screenshots" 22 | -------------------------------------------------------------------------------- /android/fastlane/Pluginfile: -------------------------------------------------------------------------------- 1 | # Autogenerated by fastlane 2 | # 3 | # Ensure this file is checked in to source control! 4 | 5 | gem 'fastlane-plugin-firim' 6 | gem 'fastlane-plugin-pgyer' 7 | gem 'fastlane-plugin-versioning_android' 8 | 9 | -------------------------------------------------------------------------------- /android/fastlane/metadata/app_icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/fastlane/metadata/app_icon.jpg -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx4608m 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Aug 15 15:06:24 CST 2022 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStorePath=wrapper/dists 5 | zipStoreBase=GRADLE_USER_HOME 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /assets/avicii-waiting for love.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/avicii-waiting for love.mp3 -------------------------------------------------------------------------------- /assets/data/poetry.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title":"曼德拉《漫漫人生路》", 4 | "description":"如果发出声音是危险的,那就保持沉默;\n如果自觉无力发光,那就别去照亮别人。\n但是——不要习惯了黑暗就为黑暗辩护;\n不要为自己的苟且而得意洋洋;\n不要嘲讽那些比自己更勇敢、更有热量的人们。\n我们可以卑微如尘土,不可扭曲如蛆虫。\n——曼德拉《漫漫人生路》" 5 | } 6 | ] -------------------------------------------------------------------------------- /assets/images/2.0x/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/avatar.png -------------------------------------------------------------------------------- /assets/images/2.0x/icon_appbar_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/icon_appbar_back.png -------------------------------------------------------------------------------- /assets/images/2.0x/icon_appbar_back_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/icon_appbar_back_white.png -------------------------------------------------------------------------------- /assets/images/2.0x/icon_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/icon_delete.png -------------------------------------------------------------------------------- /assets/images/2.0x/icon_home_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/icon_home_delete.png -------------------------------------------------------------------------------- /assets/images/2.0x/img_placeholder_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_placeholder_empty.png -------------------------------------------------------------------------------- /assets/images/2.0x/img_placeholder_empty_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_placeholder_empty_one.png -------------------------------------------------------------------------------- /assets/images/2.0x/img_placeholder_offonline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_placeholder_offonline.png -------------------------------------------------------------------------------- /assets/images/2.0x/img_placeholder_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_placeholder_search.png -------------------------------------------------------------------------------- /assets/images/2.0x/img_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_update.png -------------------------------------------------------------------------------- /assets/images/2.0x/img_upload_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_upload_placeholder.png -------------------------------------------------------------------------------- /assets/images/3.0x/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/avatar.png -------------------------------------------------------------------------------- /assets/images/3.0x/icon_appbar_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/icon_appbar_back.png -------------------------------------------------------------------------------- /assets/images/3.0x/icon_appbar_back_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/icon_appbar_back_white.png -------------------------------------------------------------------------------- /assets/images/3.0x/icon_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/icon_delete.png -------------------------------------------------------------------------------- /assets/images/3.0x/icon_home_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/icon_home_delete.png -------------------------------------------------------------------------------- /assets/images/3.0x/img_placeholder_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_placeholder_empty.png -------------------------------------------------------------------------------- /assets/images/3.0x/img_placeholder_empty_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_placeholder_empty_one.png -------------------------------------------------------------------------------- /assets/images/3.0x/img_placeholder_offonline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_placeholder_offonline.png -------------------------------------------------------------------------------- /assets/images/3.0x/img_placeholder_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_placeholder_search.png -------------------------------------------------------------------------------- /assets/images/3.0x/img_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_update.png -------------------------------------------------------------------------------- /assets/images/3.0x/img_upload_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_upload_placeholder.png -------------------------------------------------------------------------------- /assets/images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/404.png -------------------------------------------------------------------------------- /assets/images/QRCode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/QRCode.png -------------------------------------------------------------------------------- /assets/images/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/avatar.png -------------------------------------------------------------------------------- /assets/images/avatar_female.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/avatar_female.png -------------------------------------------------------------------------------- /assets/images/avatar_male.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/avatar_male.png -------------------------------------------------------------------------------- /assets/images/avatar_team.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/avatar_team.png -------------------------------------------------------------------------------- /assets/images/background_ocean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/background_ocean.png -------------------------------------------------------------------------------- /assets/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg.png -------------------------------------------------------------------------------- /assets/images/bg_beach.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_beach.jpg -------------------------------------------------------------------------------- /assets/images/bg_chat_bubble_from.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_chat_bubble_from.png -------------------------------------------------------------------------------- /assets/images/bg_chat_bubble_to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_chat_bubble_to.png -------------------------------------------------------------------------------- /assets/images/bg_color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_color.jpg -------------------------------------------------------------------------------- /assets/images/bg_glassmophism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_glassmophism.png -------------------------------------------------------------------------------- /assets/images/bg_horizontal_scroll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_horizontal_scroll.png -------------------------------------------------------------------------------- /assets/images/bg_jiguang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_jiguang.png -------------------------------------------------------------------------------- /assets/images/bg_mine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_mine.png -------------------------------------------------------------------------------- /assets/images/bg_mk11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_mk11.jpg -------------------------------------------------------------------------------- /assets/images/bg_mountain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_mountain.png -------------------------------------------------------------------------------- /assets/images/bg_nfs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_nfs.jpg -------------------------------------------------------------------------------- /assets/images/bg_ocean.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_ocean.jpg -------------------------------------------------------------------------------- /assets/images/bg_service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_service.png -------------------------------------------------------------------------------- /assets/images/canvas_draw_arc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/canvas_draw_arc.png -------------------------------------------------------------------------------- /assets/images/curve/curve_bounce_in.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_bounce_in.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_bounce_in_out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_bounce_in_out.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_bounce_out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_bounce_out.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_decelerate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_decelerate.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_back.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_circ.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_circ.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_cubic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_cubic.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_expo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_expo.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_out_back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_back.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_out_circ.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_circ.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_out_cubic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_cubic.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_out_expo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_expo.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_out_quad.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_quad.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_out_quart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_quart.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_out_quint.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_quint.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_out_sine.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_sine.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_quad.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_quad.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_quart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_quart.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_quint.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_quint.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_in_sine.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_sine.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_out_back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_back.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_out_circ.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_circ.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_out_cubic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_cubic.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_out_expo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_expo.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_out_quad.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_quad.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_out_quart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_quart.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_out_quint.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_quint.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_ease_out_sine.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_sine.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_elastic_in.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_elastic_in.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_elastic_in_out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_elastic_in_out.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_elastic_out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_elastic_out.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_fast_out_slow_in.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_fast_out_slow_in.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_flipped.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_flipped.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_interval.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_interval.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_linear.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_linear.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_sawtooth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_sawtooth.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_slow_middle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_slow_middle.gif -------------------------------------------------------------------------------- /assets/images/curve/curve_threshold.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_threshold.gif -------------------------------------------------------------------------------- /assets/images/dart3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/dart3.png -------------------------------------------------------------------------------- /assets/images/dart3_one.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/dart3_one.jpeg -------------------------------------------------------------------------------- /assets/images/floating.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/floating.png -------------------------------------------------------------------------------- /assets/images/flutter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/flutter.jpg -------------------------------------------------------------------------------- /assets/images/flutter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/flutter.webp -------------------------------------------------------------------------------- /assets/images/flutter_key.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/flutter_key.webp -------------------------------------------------------------------------------- /assets/images/flutter_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/flutter_logo.png -------------------------------------------------------------------------------- /assets/images/icon_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_account.png -------------------------------------------------------------------------------- /assets/images/icon_add_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_add_circle.png -------------------------------------------------------------------------------- /assets/images/icon_adverse_event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_adverse_event.png -------------------------------------------------------------------------------- /assets/images/icon_again_shopping_cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_again_shopping_cart.png -------------------------------------------------------------------------------- /assets/images/icon_appbar_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_appbar_back.png -------------------------------------------------------------------------------- /assets/images/icon_appbar_back_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_appbar_back_white.png -------------------------------------------------------------------------------- /assets/images/icon_apple_bg_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_apple_bg_grey.png -------------------------------------------------------------------------------- /assets/images/icon_arranged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arranged.png -------------------------------------------------------------------------------- /assets/images/icon_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arrow_down.png -------------------------------------------------------------------------------- /assets/images/icon_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arrow_left.png -------------------------------------------------------------------------------- /assets/images/icon_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arrow_right.png -------------------------------------------------------------------------------- /assets/images/icon_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arrow_up.png -------------------------------------------------------------------------------- /assets/images/icon_audio_visit_evaluate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_audio_visit_evaluate.png -------------------------------------------------------------------------------- /assets/images/icon_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_camera.png -------------------------------------------------------------------------------- /assets/images/icon_check_box_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_box_selected.png -------------------------------------------------------------------------------- /assets/images/icon_check_box_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_box_unselected.png -------------------------------------------------------------------------------- /assets/images/icon_check_circle_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_circle_selected.png -------------------------------------------------------------------------------- /assets/images/icon_check_circle_selected_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_circle_selected_one.png -------------------------------------------------------------------------------- /assets/images/icon_check_circle_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_circle_unselected.png -------------------------------------------------------------------------------- /assets/images/icon_check_circle_unselected_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_circle_unselected_one.png -------------------------------------------------------------------------------- /assets/images/icon_chinese_medicine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_chinese_medicine.png -------------------------------------------------------------------------------- /assets/images/icon_circle_half.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_circle_half.png -------------------------------------------------------------------------------- /assets/images/icon_clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_clear.png -------------------------------------------------------------------------------- /assets/images/icon_close_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_close_60.png -------------------------------------------------------------------------------- /assets/images/icon_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_copy.png -------------------------------------------------------------------------------- /assets/images/icon_corner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_corner.png -------------------------------------------------------------------------------- /assets/images/icon_dart3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_dart3.png -------------------------------------------------------------------------------- /assets/images/icon_date_calender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_date_calender.png -------------------------------------------------------------------------------- /assets/images/icon_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_delete.png -------------------------------------------------------------------------------- /assets/images/icon_dowload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_dowload.png -------------------------------------------------------------------------------- /assets/images/icon_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_edit.png -------------------------------------------------------------------------------- /assets/images/icon_emoji_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_emoji_circle.png -------------------------------------------------------------------------------- /assets/images/icon_expand_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_expand_arrow_down.png -------------------------------------------------------------------------------- /assets/images/icon_expand_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_expand_arrow_up.png -------------------------------------------------------------------------------- /assets/images/icon_eye_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_eye_close.png -------------------------------------------------------------------------------- /assets/images/icon_eye_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_eye_open.png -------------------------------------------------------------------------------- /assets/images/icon_file_excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_excel.png -------------------------------------------------------------------------------- /assets/images/icon_file_pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_pdf.png -------------------------------------------------------------------------------- /assets/images/icon_file_ppt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_ppt.png -------------------------------------------------------------------------------- /assets/images/icon_file_unknow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_unknow.png -------------------------------------------------------------------------------- /assets/images/icon_file_word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_word.png -------------------------------------------------------------------------------- /assets/images/icon_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_filter.png -------------------------------------------------------------------------------- /assets/images/icon_heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_heart.png -------------------------------------------------------------------------------- /assets/images/icon_heart_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_heart_border.png -------------------------------------------------------------------------------- /assets/images/icon_heart_half.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_heart_half.png -------------------------------------------------------------------------------- /assets/images/icon_hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_hi.png -------------------------------------------------------------------------------- /assets/images/icon_home_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_home_delete.png -------------------------------------------------------------------------------- /assets/images/icon_inquiry_pay_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_inquiry_pay_selected.png -------------------------------------------------------------------------------- /assets/images/icon_inquiry_pay_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_inquiry_pay_unselected.png -------------------------------------------------------------------------------- /assets/images/icon_inquiry_rights_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_inquiry_rights_selected.png -------------------------------------------------------------------------------- /assets/images/icon_inquiry_rights_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_inquiry_rights_unselected.png -------------------------------------------------------------------------------- /assets/images/icon_jc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_jc.png -------------------------------------------------------------------------------- /assets/images/icon_json_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_json_file.png -------------------------------------------------------------------------------- /assets/images/icon_left_voice_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_left_voice_1.png -------------------------------------------------------------------------------- /assets/images/icon_left_voice_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_left_voice_2.png -------------------------------------------------------------------------------- /assets/images/icon_left_voice_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_left_voice_3.png -------------------------------------------------------------------------------- /assets/images/icon_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_lock.png -------------------------------------------------------------------------------- /assets/images/icon_medical_appliance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_medical_appliance.png -------------------------------------------------------------------------------- /assets/images/icon_member_remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_member_remove.png -------------------------------------------------------------------------------- /assets/images/icon_member_voice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_member_voice.png -------------------------------------------------------------------------------- /assets/images/icon_member_voice_disable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_member_voice_disable.png -------------------------------------------------------------------------------- /assets/images/icon_move_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_move_down.png -------------------------------------------------------------------------------- /assets/images/icon_move_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_move_up.png -------------------------------------------------------------------------------- /assets/images/icon_ocr_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_ocr_bar.png -------------------------------------------------------------------------------- /assets/images/icon_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_pause.png -------------------------------------------------------------------------------- /assets/images/icon_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_play.png -------------------------------------------------------------------------------- /assets/images/icon_play_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_play_video.png -------------------------------------------------------------------------------- /assets/images/icon_postmark_approved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_approved.png -------------------------------------------------------------------------------- /assets/images/icon_postmark_cancellation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_cancellation.png -------------------------------------------------------------------------------- /assets/images/icon_postmark_finished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_finished.png -------------------------------------------------------------------------------- /assets/images/icon_postmark_invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_invalid.png -------------------------------------------------------------------------------- /assets/images/icon_postmark_refused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_refused.png -------------------------------------------------------------------------------- /assets/images/icon_postmark_unused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_unused.png -------------------------------------------------------------------------------- /assets/images/icon_postmark_used.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_used.png -------------------------------------------------------------------------------- /assets/images/icon_postmark_wait_approve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_wait_approve.png -------------------------------------------------------------------------------- /assets/images/icon_postmark_wait_notarize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_wait_notarize.png -------------------------------------------------------------------------------- /assets/images/icon_qr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_qr.png -------------------------------------------------------------------------------- /assets/images/icon_quote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_quote.png -------------------------------------------------------------------------------- /assets/images/icon_rec_cat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_rec_cat.png -------------------------------------------------------------------------------- /assets/images/icon_reviewed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_reviewed.png -------------------------------------------------------------------------------- /assets/images/icon_revoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_revoke.png -------------------------------------------------------------------------------- /assets/images/icon_scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_scan.png -------------------------------------------------------------------------------- /assets/images/icon_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_search.png -------------------------------------------------------------------------------- /assets/images/icon_segment_collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segment_collect.png -------------------------------------------------------------------------------- /assets/images/icon_segment_emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segment_emoji.png -------------------------------------------------------------------------------- /assets/images/icon_segmented_control_carer_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segmented_control_carer_gray.png -------------------------------------------------------------------------------- /assets/images/icon_segmented_control_carer_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segmented_control_carer_white.png -------------------------------------------------------------------------------- /assets/images/icon_segmented_control_doctor_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segmented_control_doctor_gray.png -------------------------------------------------------------------------------- /assets/images/icon_segmented_control_doctor_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segmented_control_doctor_white.png -------------------------------------------------------------------------------- /assets/images/icon_skipping.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_skipping.gif -------------------------------------------------------------------------------- /assets/images/icon_specimen_collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_specimen_collection.png -------------------------------------------------------------------------------- /assets/images/icon_subject_diary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_subject_diary.png -------------------------------------------------------------------------------- /assets/images/icon_switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_switch.png -------------------------------------------------------------------------------- /assets/images/icon_time_long.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_time_long.png -------------------------------------------------------------------------------- /assets/images/icon_time_long_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_time_long_one.png -------------------------------------------------------------------------------- /assets/images/icon_trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_trash.png -------------------------------------------------------------------------------- /assets/images/icon_trash_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_trash_one.png -------------------------------------------------------------------------------- /assets/images/icon_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_upload.png -------------------------------------------------------------------------------- /assets/images/icon_upload_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_upload_one.png -------------------------------------------------------------------------------- /assets/images/icon_user_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_user_add.png -------------------------------------------------------------------------------- /assets/images/icon_user_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_user_del.png -------------------------------------------------------------------------------- /assets/images/icon_video_visit_evaluate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_video_visit_evaluate.png -------------------------------------------------------------------------------- /assets/images/icon_voice_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_voice_circle.png -------------------------------------------------------------------------------- /assets/images/icon_wait_reply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_wait_reply.png -------------------------------------------------------------------------------- /assets/images/icon_wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_wechat.png -------------------------------------------------------------------------------- /assets/images/icon_wechat_bg_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_wechat_bg_green.png -------------------------------------------------------------------------------- /assets/images/image_header_bg2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/image_header_bg2.webp -------------------------------------------------------------------------------- /assets/images/img_404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_404.png -------------------------------------------------------------------------------- /assets/images/img_flutter_3_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_flutter_3_10.png -------------------------------------------------------------------------------- /assets/images/img_flutter_3_10.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_flutter_3_10.webp -------------------------------------------------------------------------------- /assets/images/img_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder.png -------------------------------------------------------------------------------- /assets/images/img_placeholder_doctor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_doctor.png -------------------------------------------------------------------------------- /assets/images/img_placeholder_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_empty.png -------------------------------------------------------------------------------- /assets/images/img_placeholder_empty_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_empty_one.png -------------------------------------------------------------------------------- /assets/images/img_placeholder_offonline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_offonline.png -------------------------------------------------------------------------------- /assets/images/img_placeholder_patient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_patient.png -------------------------------------------------------------------------------- /assets/images/img_placeholder_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_search.png -------------------------------------------------------------------------------- /assets/images/img_sound_overlay_bg_recording.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_bg_recording.png -------------------------------------------------------------------------------- /assets/images/img_sound_overlay_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_bottom.png -------------------------------------------------------------------------------- /assets/images/img_sound_overlay_bottom2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_bottom2.png -------------------------------------------------------------------------------- /assets/images/img_sound_overlay_bottom_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_bottom_cancel.png -------------------------------------------------------------------------------- /assets/images/img_sound_overlay_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_button.png -------------------------------------------------------------------------------- /assets/images/img_sound_overlay_button_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_button_cancel.png -------------------------------------------------------------------------------- /assets/images/img_sound_recording.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_recording.gif -------------------------------------------------------------------------------- /assets/images/img_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_update.png -------------------------------------------------------------------------------- /assets/images/img_upload_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_upload_placeholder.png -------------------------------------------------------------------------------- /assets/images/js_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/js_cover.png -------------------------------------------------------------------------------- /assets/images/logo_glassmophism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/logo_glassmophism.png -------------------------------------------------------------------------------- /assets/images/package_delivery_tracking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/package_delivery_tracking.png -------------------------------------------------------------------------------- /assets/images/process_timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/process_timeline.png -------------------------------------------------------------------------------- /assets/images/pub_dev_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/pub_dev_logo.png -------------------------------------------------------------------------------- /assets/images/rec_left_flot_btn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/rec_left_flot_btn.gif -------------------------------------------------------------------------------- /assets/images/sha_qiu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/sha_qiu.png -------------------------------------------------------------------------------- /assets/images/shan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/shan.png -------------------------------------------------------------------------------- /assets/images/soaring_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/soaring_logo.png -------------------------------------------------------------------------------- /assets/images/soaring_logo_two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/soaring_logo_two.png -------------------------------------------------------------------------------- /assets/images/timeline_status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/timeline_status.png -------------------------------------------------------------------------------- /assets/images/weiqi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/weiqi.png -------------------------------------------------------------------------------- /assets/sample.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/sample.mp3 -------------------------------------------------------------------------------- /buildIos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 获取输入环境名称 test(beta、pre) prod 4 | while true; do 5 | echo "请选择环境: 1:test 2:pre 0:prod"; read envName 6 | case $envName in 7 | 1) 8 | envName="test" 9 | break 10 | ;; 11 | 2) 12 | envName="pre" 13 | break 14 | ;; 15 | 0) 16 | envName="prod" 17 | break 18 | ;; 19 | *) 20 | echo "请输入有效的选项 (1 或 2 或 0)" 21 | ;; 22 | esac 23 | done 24 | 25 | # 构建 26 | flutter build ios --release --dart-define=app_env=${envName} 27 | 28 | # 输出路径 29 | echo $'\n在编辑器中打开文件目录 (Cmd + 单击)' 30 | echo $'\e[35m'"$(realpath "build/ios/iphoneos/")"$'\e[0m' 31 | 32 | exit 33 | -------------------------------------------------------------------------------- /devtools_options.yaml: -------------------------------------------------------------------------------- 1 | extensions: 2 | -------------------------------------------------------------------------------- /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 | en 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 | 12.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 3 | #include "Generated.xcconfig" 4 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 3 | #include "Generated.xcconfig" 4 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /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.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "background.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LaunchImage.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LaunchImage@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LaunchImage@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/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/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /ios/Runner/Runner.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/FMDB.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/Usersshangflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/Flutter.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/Pods-Runner.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/Toast.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/flutter_boost.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/fluttertoast.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/integration_test.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/path_provider.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/path_provider_ios.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/permission_handler.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/share.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/sqflite.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/Usersshangflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/url_launcher.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/url_launcher_ios.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/build/Pods.build/Release-iphonesimulator/webview_flutter_wkwebview.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectiosPods -------------------------------------------------------------------------------- /ios/fastlane/.env: -------------------------------------------------------------------------------- 1 | 2 | Apple_Id = "*" # Your Apple email address 3 | Team_Id = "*" # Developer Portal Team ID 4 | 5 | Itc_Team_Name = "*" 6 | Itc_Team_Id = "*" 7 | 8 | Scheme_Name = "Runner" 9 | App_bundleid = "com.*.*" 10 | App_mobileprovision_dev = "*_dev" 11 | App_mobileprovision_prod = "*_prod" 12 | 13 | 14 | # 各种链接 15 | APP_Slogan = "*" 16 | App_Icon_Link = "*" 17 | App_Store_Link = "itms-apps://apps.apple.com/cn/app/*?mt=8" 18 | 19 | 20 | Firim_Shortcut_Link = "http://d.firim.top/*" 21 | Pgyer_Shortcut_Link = "https://www.pgyer.com/*" 22 | 23 | Dingtalk_Url = "*" 24 | 25 | Slack_Url = "*" 26 | 27 | # APP元数据及截图存放路径 28 | App_Icon_Local = "./fastlane/metadata/app_icon.jpg" 29 | Metadata_Path = "./fastlane/metadata" 30 | Screenshots_Path = "./fastlane/screenshots" 31 | -------------------------------------------------------------------------------- /ios/fastlane/Appfile: -------------------------------------------------------------------------------- 1 | 2 | apple_id ENV["Apple_Id"] 3 | app_identifier ENV["App_bundleid"] 4 | 5 | itc_team_name ENV["Itc_Team_Name"] 6 | itc_team_id ENV["Itc_Team_Id"] 7 | 8 | team_id ENV["Team_Id"] 9 | -------------------------------------------------------------------------------- /ios/fastlane/Deliverfile: -------------------------------------------------------------------------------- 1 | ###################### More Options ###################### 2 | # If you want to have even more control, check out the documentation 3 | # https://github.com/fastlane/fastlane/blob/master/deliver/Deliverfile.md 4 | 5 | 6 | ###################### Automatically generated ###################### 7 | # Feel free to remove the following line if you use fastlane (which you should) 8 | 9 | # app_identifier "com.parkingwang.iop" # The bundle identifier of your app 10 | # username "shangbinbin@parkingwang.com" # your Apple ID user 11 | 12 | app_identifier ENV["App_bundleid"] 13 | username ENV["Apple_Id"] -------------------------------------------------------------------------------- /ios/fastlane/Pluginfile: -------------------------------------------------------------------------------- 1 | # Autogenerated by fastlane 2 | # 3 | # Ensure this file is checked in to source control! 4 | 5 | gem 'fastlane-plugin-firim' 6 | gem 'fastlane-plugin-pgyer' 7 | -------------------------------------------------------------------------------- /ios/fastlane/metadata/app_icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/fastlane/metadata/app_icon.jpg -------------------------------------------------------------------------------- /ios/fastlane/report.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 | -------------------------------------------------------------------------------- /lib/basicWidget/FloatingActionButtonLocationOffset.dart: -------------------------------------------------------------------------------- 1 | // 2 | // FloatingActionButtonLocationOffset.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2023/9/7 17:55. 6 | // Copyright © 2023/9/7 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/material.dart'; 10 | 11 | /// 基于 FloatingActionButtonLocation 进行偏移 12 | class FloatingActionButtonLocationOffset extends FloatingActionButtonLocation { 13 | FloatingActionButtonLocationOffset({ 14 | required this.location, 15 | this.offsetX = 0, 16 | this.offsetY = 0, 17 | }); 18 | 19 | FloatingActionButtonLocation location; 20 | 21 | double offsetX; 22 | 23 | double offsetY; 24 | 25 | @override 26 | Offset getOffset(ScaffoldPrelayoutGeometry scaffoldGeometry) { 27 | var offset = location.getOffset(scaffoldGeometry); 28 | return Offset(offset.dx + offsetX, offset.dy + offsetY); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/basicWidget/TextInputFormatter/block_text_input_formatter.dart: -------------------------------------------------------------------------------- 1 | // 2 | // block_text_input_formatter.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2023/12/13 21:50. 6 | // Copyright © 2023/12/13 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/services.dart'; 10 | 11 | class BlockTextInputFormatter extends TextInputFormatter { 12 | BlockTextInputFormatter({ 13 | required this.banBlock, 14 | }); 15 | 16 | /// 禁用回调 17 | final bool Function(TextEditingValue oldValue, TextEditingValue newValue) 18 | banBlock; 19 | 20 | @override 21 | TextEditingValue formatEditUpdate( 22 | TextEditingValue oldValue, TextEditingValue newValue) { 23 | // debugPrint("newValue.text: ${newValue.text}"); 24 | if (banBlock(oldValue, newValue)) { 25 | return oldValue; 26 | } 27 | return newValue; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/basicWidget/custome_animated.dart: -------------------------------------------------------------------------------- 1 | // 2 | // custome_animated.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 10/21/21 8:54 AM. 6 | // Copyright © 10/21/21 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/animation.dart'; 10 | import 'dart:math' as math; 11 | 12 | class ShakeCurve extends Curve { 13 | @override 14 | double transform(double t) { 15 | return math.sin(t * math.pi * 2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/basicWidget/error_custom_widget.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ErrorCustomWidget extends StatelessWidget { 4 | const ErrorCustomWidget({ 5 | Key? key, 6 | required this.details, 7 | }) : super(key: key); 8 | 9 | final FlutterErrorDetails details; 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | return Center( 14 | child: Text(details.toString()), 15 | // child: Container( 16 | // color: Colors.red.shade400, 17 | // child: Column( 18 | // mainAxisAlignment: MainAxisAlignment.center, 19 | // children: [ 20 | // Icon(Icons.error, size: 44,), 21 | // Text(details.toString(), 22 | // style: TextStyle(fontSize: 16.0, color: Colors.red), 23 | // ), 24 | // ], 25 | // ), 26 | // ), 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/basicWidget/fade_builder.dart: -------------------------------------------------------------------------------- 1 | // 2 | // FadeBuilder.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/6/17 16:12. 6 | // Copyright © 2024/6/17 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/material.dart'; 10 | 11 | /// 添加渐进动画 12 | class FadeBuilder extends StatelessWidget { 13 | const FadeBuilder({ 14 | super.key, 15 | required this.child, 16 | }); 17 | 18 | final Widget child; 19 | 20 | @override 21 | Widget build(BuildContext context) { 22 | return TweenAnimationBuilder( 23 | tween: Tween(begin: 0, end: 1), 24 | duration: const Duration(milliseconds: 150), 25 | builder: (_, double value, Widget? w) { 26 | return Opacity( 27 | opacity: value, 28 | child: w, 29 | ); 30 | }, 31 | child: child, 32 | ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/basicWidget/n_painter_arc.dart: -------------------------------------------------------------------------------- 1 | import 'dart:math'; 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | class NPainterArc extends CustomPainter { 6 | NPainterArc({ 7 | this.color = Colors.black, 8 | this.percent = 1.0, 9 | }); 10 | 11 | final Color color; 12 | final double percent; 13 | 14 | @override 15 | bool hitTest(Offset position) => true; 16 | 17 | @override 18 | bool shouldRepaint(NPainterArc oldDelegate) { 19 | return oldDelegate.color != color; 20 | } 21 | 22 | @override 23 | void paint(Canvas canvas, Size size) { 24 | var paint = Paint() 25 | ..color = color 26 | ..style = PaintingStyle.fill; 27 | 28 | final radius = min(size.width, size.height); 29 | final rect = Rect.fromCircle( 30 | center: Offset(size.width / 2, size.height / 2), 31 | radius: radius / 2, 32 | ); 33 | 34 | canvas.drawArc(rect, 0.0, 2 * pi * percent, false, paint); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lib/basicWidget/scroll/NCustomScrollBehavior.dart: -------------------------------------------------------------------------------- 1 | // 2 | // NCustomScrollBehavior.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2025/2/13 09:45. 6 | // Copyright © 2025/2/13 shang. All rights reserved. 7 | // 8 | 9 | import 'dart:ui'; 10 | 11 | import 'package:flutter/material.dart'; 12 | 13 | class NCustomScrollBehavior extends MaterialScrollBehavior { 14 | @override 15 | Set get dragDevices => { 16 | PointerDeviceKind.touch, 17 | PointerDeviceKind.mouse, 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /lib/basicWidget/scroll/custom_page_controller.dart: -------------------------------------------------------------------------------- 1 | // 2 | // CustomPageController.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2025/2/5 16:31. 6 | // Copyright © 2025/2/5 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/material.dart'; 10 | 11 | /// 自定义 PageController 控制器 12 | class CustomPageController extends PageController { 13 | CustomPageController({ 14 | super.initialPage, 15 | super.onAttach, 16 | super.onDetach, 17 | this.duration, 18 | this.curve, 19 | }); 20 | 21 | /// 跳转页面 22 | Duration? duration; 23 | 24 | /// 跳转动画曲线 25 | Curve? curve; 26 | 27 | /// 跳转页面 28 | Future jumpPage(int page) { 29 | return super.animateToPage( 30 | page, 31 | duration: duration ?? Duration(milliseconds: 200), 32 | curve: curve ?? Curves.easeOut, 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /lib/basicWidget/scroll/custom_page_view_scroll_physics.dart: -------------------------------------------------------------------------------- 1 | // 2 | // CustomPageViewScrollPhysics.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2025/2/5 15:52. 6 | // Copyright © 2025/2/5 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/material.dart'; 10 | 11 | /// 自定义滚动行为 12 | class CustomPageViewScrollPhysics extends ScrollPhysics { 13 | const CustomPageViewScrollPhysics({ScrollPhysics? parent}) : super(parent: parent); 14 | 15 | @override 16 | CustomPageViewScrollPhysics applyTo(ScrollPhysics? ancestor) { 17 | return CustomPageViewScrollPhysics(parent: buildParent(ancestor)!); 18 | } 19 | 20 | @override 21 | SpringDescription get spring => const SpringDescription( 22 | mass: 50, 23 | stiffness: 100, 24 | damping: 0.8, 25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /lib/basicWidget/triangle_path.dart: -------------------------------------------------------------------------------- 1 | // 2 | // TrianglePath.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 12/15/21 6:47 PM. 6 | // Copyright © 12/15/21 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/cupertino.dart'; 10 | 11 | class TrianglePath extends CustomClipper { 12 | @override 13 | Path getClip(Size size) { 14 | var path = Path(); 15 | path.moveTo(size.width / 2, 0); 16 | path.lineTo(0, size.height); 17 | path.lineTo(size.width, size.height); 18 | return path; 19 | } 20 | 21 | @override 22 | bool shouldReclip(CustomClipper oldClipper) { 23 | return true; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/basicWidget/upload/asset_upload_config.dart: -------------------------------------------------------------------------------- 1 | class AssetUploadConfig { 2 | /// 完整的上传地址链接 3 | static String get uploadUrl => '.../oss/upload/stream'; 4 | } 5 | -------------------------------------------------------------------------------- /lib/basicWidget/upload_document/asset_upload_document_box.md: -------------------------------------------------------------------------------- 1 | 2 | # 文档上传选择器 - AssetUploadDocumentModel 3 | 4 | 5 | ## 使用 6 | 7 | ``` 8 | /// 初始化数据 9 | var selectedModels = []; 10 | /// 获取链接数组 11 | List urls = []; 12 | 13 | ...... 14 | 15 | Container( 16 | padding: EdgeInsets.symmetric(horizontal: 20), 17 | child: AssetUploadDocumentBox( 18 | items: selectedModels, 19 | // showFileSize: true, 20 | onChanged: (items){ 21 | selectedModels = items.where((e) => e.url?.startsWith("http") == true).toList(); 22 | urls = selected.map((e) => e.url ?? "").toList(); 23 | }, 24 | ), 25 | ), 26 | ``` 27 | 28 | 29 | 支持断网重连,删除;默认执行压缩; -------------------------------------------------------------------------------- /lib/basicWidget/upload_document/asset_upload_document_model.dart: -------------------------------------------------------------------------------- 1 | // 2 | // AssetUploadDocumentModel.dart 3 | // yl_health_app 4 | // 5 | // Created by shang on 2023/04/30 11:19. 6 | // Copyright © 2023/04/30 shang. All rights reserved. 7 | // 8 | 9 | import 'dart:io'; 10 | 11 | /// 文档选择器模型 12 | class AssetUploadDocumentModel { 13 | AssetUploadDocumentModel({ 14 | this.url, 15 | this.file, 16 | }); 17 | 18 | /// 上传之后的文件 url 19 | String? url; 20 | 21 | /// 文件 22 | File? file; 23 | 24 | Map toJson() { 25 | final data = Map(); 26 | data['url'] = url; 27 | data['file'] = file; 28 | return data; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/enum/DateFormatEnum.dart: -------------------------------------------------------------------------------- 1 | // 2 | // DateFormatEnum.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/7/9 17:28. 6 | // Copyright © 2024/7/9 shang. All rights reserved. 7 | // 8 | 9 | enum DateFormatEnum { 10 | /// yyyy-MM-dd HH:mm:ss 11 | normal("yyyyMMddHHmmss", 'yyyy-MM-dd HH:mm:ss'), 12 | 13 | /// yyyy-MM-dd 14 | yyyyMMdd("yyyyMMdd", 'yyyy-MM-dd'), 15 | 16 | /// yyyy-MM-dd 00:00:00 17 | yyyyMMdd000000("yyyyMMdd000000", 'yyyy-MM-dd 00:00:00'), 18 | 19 | /// yyyy-MM-dd 23:59:59 20 | yyyyMMdd235959("yyyyMMdd235959", 'yyyy-MM-dd 23:59:59'), 21 | 22 | /// MM-dd 23 | MMdd("MMdd", 'MM-dd'), 24 | 25 | /// HH:mm: 26 | HHmm("HHmm", 'HH:mm'), 27 | 28 | /// HH:mm:ss 29 | HHmmss("HHmmss", 'HH:mm:ss'); 30 | 31 | const DateFormatEnum(this.name, this.value); 32 | 33 | final String name; 34 | final String value; 35 | } 36 | -------------------------------------------------------------------------------- /lib/enum/DateTimeFormat.dart: -------------------------------------------------------------------------------- 1 | // 2 | // DateTimeFormat.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/3/24 15:12. 6 | // Copyright © 2024/3/24 shang. All rights reserved. 7 | // 8 | 9 | /// 日期格式枚举 10 | enum DateTimeFormat { 11 | yyyyMMddHHmmss("yyyy-MM-dd HH:mm:ss", "年月日时分秒"), 12 | yyyyMMdd("yyyy-MM-dd", "年月日"), 13 | yyyyMMdd000000("yyyy-MM-dd 00:00:00", "年月日 00:00:00"), 14 | yyyyMMdd235959("yyyy-MM-dd 23:59:59", "年月日 23:59:59"), 15 | HHmmss("HH:mm:ss", "时分秒"), 16 | HHmm("HH:mm", "时分"); 17 | 18 | const DateTimeFormat(this.value, this.desc); 19 | 20 | final String value; 21 | final String desc; 22 | } 23 | -------------------------------------------------------------------------------- /lib/enum/FileType.dart: -------------------------------------------------------------------------------- 1 | /// 文件类型 2 | enum IMFileType { 3 | unknow("icon_file_word.png"), 4 | docx("icon_file_word.png"), 5 | doc("icon_file_word.png"), 6 | xls("icon_file_excel.png.png"), 7 | xlsx("icon_file_excel.png"), 8 | ppt("icon_file_ppt.png"), 9 | pptx("icon_file_ppt.png"), 10 | pdf("icon_file_pdf.png"); 11 | 12 | const IMFileType(this.iconName); 13 | 14 | final String iconName; 15 | } 16 | -------------------------------------------------------------------------------- /lib/enum/TIMMessageStatus.dart: -------------------------------------------------------------------------------- 1 | /// 消息状态 2 | enum TIMMessageStatus { 3 | /// 未知 0 4 | unknow(""), 5 | 6 | /// 文本消息 1 7 | sending("消息发送中"), 8 | 9 | /// 自定义消息 2 10 | succ("消息发送成功"), 11 | 12 | /// 图片消息 3 13 | fail("消息发送失败"), 14 | 15 | /// 语音消息 4 16 | hasDeleted("消息被删除"), 17 | 18 | /// 视频消息 5 19 | localImported("导入到本地的消息"), 20 | 21 | /// 文件消息 6 22 | localRevoked("被撤回的消息"); 23 | 24 | const TIMMessageStatus(this.desc); 25 | 26 | final String desc; 27 | } 28 | -------------------------------------------------------------------------------- /lib/enum/TIMSignalingActionType.dart: -------------------------------------------------------------------------------- 1 | //https://comm.qq.com/im/doc/flutter/zh/SDKAPI/Enum/V2SignalingActionType.html 2 | 3 | /// tencent_cloud_chat_sdk 信令操作类型 4 | /// desc 为操作; 5 | /// index 为定义 int 类型; 6 | enum TIMSignalingActionType { 7 | /// 没有动作 0 8 | none(""), 9 | 10 | /// 邀请方发起邀请 1 11 | invite("邀请方发起邀请"), 12 | 13 | /// 邀请方取消邀请 2 14 | cancel("邀请方取消邀请"), 15 | 16 | /// 被邀请方接受邀请 3 17 | accept("被邀请方接受邀请"), 18 | 19 | /// 被邀请方拒绝邀请 4 20 | reject("被邀请方拒绝邀请"), 21 | 22 | /// 邀请超时 5 23 | timeout("邀请超时"); 24 | 25 | const TIMSignalingActionType(this.desc); 26 | 27 | /// 消息类型描述 28 | final String desc; 29 | } 30 | -------------------------------------------------------------------------------- /lib/enum/operate_type.dart: -------------------------------------------------------------------------------- 1 | // 2 | // OperateType.dart 3 | // yl_health_app 4 | // 5 | // Created by shang on 2023/11/9 15:41. 6 | // Copyright © 2023/11/9 shang. All rights reserved. 7 | // 8 | 9 | /// 基础操作 10 | enum OperateType { 11 | /// 创建/新增 12 | CREATE('新增'), 13 | 14 | /// 编辑/更新 15 | UPDATE('编辑'), 16 | 17 | /// 读取 18 | READ('读取'), 19 | 20 | /// 删除 21 | DELETE('删除'); 22 | 23 | const OperateType( 24 | this.desc, 25 | ); 26 | 27 | /// 当前枚举对应的 描述文字 28 | final String desc; 29 | } 30 | -------------------------------------------------------------------------------- /lib/eventbus/ValueChangedEvent.dart: -------------------------------------------------------------------------------- 1 | class ValueChangedEvent { 2 | ValueChangedEvent(this.data); 3 | 4 | T? data; 5 | } 6 | -------------------------------------------------------------------------------- /lib/extension/bool_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // BoolExt.dart 3 | // yl_ylgcp_app 4 | // 5 | // Created by shang on 2024/6/25 09:38. 6 | // Copyright © 2024/6/25 shang. All rights reserved. 7 | // 8 | 9 | import 'dart:math'; 10 | import 'package:flutter_templet_project/extension/num_ext.dart'; 11 | 12 | extension BoolExt on bool? { 13 | /// 转字符串 14 | String toValue({String trueValue = "Y", String falseValue = "N"}) { 15 | return this == true ? trueValue : falseValue; 16 | } 17 | 18 | /// 随机布尔值 19 | static bool random() { 20 | final result = Random().nextInt(2) == 1; 21 | return result; 22 | } 23 | } 24 | 25 | extension BoolStringExt on String? { 26 | /// 转字符串 27 | bool toBool({List trueValues = const ["y", "true", "yes"]}) { 28 | final val = this?.toLowerCase(); 29 | final result = trueValues.contains(val); 30 | return result; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/extension/change_notifier_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // ChangeNotifierExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 3/10/23 5:38 PM. 6 | // Copyright © 3/10/23 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/cupertino.dart'; 10 | 11 | extension ObjectVN on Object { 12 | /// 获取 13 | ValueNotifier get vn => ValueNotifier(this); 14 | } 15 | 16 | extension BoolVN on bool { 17 | /// 获取 18 | ValueNotifier get vn => ValueNotifier(this); 19 | } 20 | 21 | extension NumVN on num { 22 | /// 获取 23 | ValueNotifier get vn => ValueNotifier(this); 24 | } 25 | 26 | extension StringVN on String { 27 | /// 获取 28 | ValueNotifier get vn => ValueNotifier(this); 29 | } 30 | 31 | extension ValueNotifierListExt on ValueNotifier { 32 | /// 更新 33 | void update() { 34 | value = [...value]; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lib/extension/clipboard_ext.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart'; 2 | 3 | extension ClipboardExt on Clipboard { 4 | /// 复制内容 5 | static copy(String? text) { 6 | Clipboard.setData(ClipboardData(text: text ?? '')); 7 | } 8 | 9 | /// 获取内容 10 | static Future paste() async { 11 | var clipboardData = await Clipboard.getData(Clipboard.kTextPlain); 12 | return clipboardData?.text ?? ''; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lib/extension/dialog_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // dialog_ext.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 5/17/21 3:57 PM. 6 | // Copyright © 5/17/21 shang. All rights reserved. 7 | // 8 | 9 | // Platform.operatingSystem 10 | 11 | import 'dart:io'; 12 | import 'package:flutter/cupertino.dart'; 13 | import 'package:flutter/material.dart'; 14 | import 'package:flutter_templet_project/extension/widget_ext.dart'; 15 | 16 | extension AlertDialogExt on AlertDialog {} 17 | -------------------------------------------------------------------------------- /lib/extension/divider_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // DividerExtension.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 10/22/21 1:57 PM. 6 | // Copyright © 10/22/21 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/material.dart'; 10 | 11 | extension DividerExt on Divider {} 12 | -------------------------------------------------------------------------------- /lib/extension/floating_action_button_location_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // FloatingActionButtonLocationExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 1/19/23 1:14 PM. 6 | // Copyright © 1/19/23 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/material.dart'; 10 | 11 | extension FloatingActionButtonLocationExt on FloatingActionButtonLocation { 12 | /// 枚举集合 13 | static const allCases = [ 14 | FloatingActionButtonLocation.endFloat, 15 | FloatingActionButtonLocation.startTop, 16 | FloatingActionButtonLocation.centerTop, 17 | FloatingActionButtonLocation.endTop, 18 | FloatingActionButtonLocation.startFloat, 19 | FloatingActionButtonLocation.centerFloat, 20 | FloatingActionButtonLocation.startDocked, 21 | FloatingActionButtonLocation.centerDocked, 22 | FloatingActionButtonLocation.endDocked, 23 | ]; 24 | } 25 | -------------------------------------------------------------------------------- /lib/extension/getx_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // GetExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2025/3/5 15:55. 6 | // Copyright © 2025/3/5 shang. All rights reserved. 7 | // 8 | 9 | import 'package:get/get.dart'; 10 | 11 | extension InstExt on GetInterface { 12 | /// 返回一个实例,如果实例不存在,则创建一个实例 13 | S putNew(S dependency, {String? tag, bool permanent = false}) { 14 | if (GetInstance().isRegistered(tag: tag)) { 15 | return find(tag: tag); 16 | } 17 | 18 | return put(dependency, tag: tag, permanent: permanent); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/extension/list_nullable_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // ListNullableExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2023/8/29 20:18. 6 | // Copyright © 2023/8/29 shang. All rights reserved. 7 | // 8 | 9 | extension ListNullableExt on List { 10 | /// 重写属性 11 | E? get first { 12 | try { 13 | return this.first; 14 | } catch (exception) { 15 | return null; 16 | } 17 | } 18 | 19 | /// 重写属性 20 | E? get last { 21 | try { 22 | return this.last; 23 | } catch (exception) { 24 | return null; 25 | } 26 | } 27 | 28 | /// 查询元素索引,没有则返回为空 29 | int? indexOf(E element) { 30 | try { 31 | return this.indexOf(element); 32 | } catch (exception) { 33 | return null; 34 | } 35 | } 36 | 37 | /// 倒叙查询元素索引 38 | int? lastIndexOf(E element) { 39 | try { 40 | return this.lastIndexOf(element); 41 | } catch (exception) { 42 | return null; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /lib/extension/navigator_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // NavigatorExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2023/8/29 20:18. 6 | // Copyright © 2023/8/29 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/cupertino.dart'; 10 | import 'package:flutter/material.dart'; 11 | import 'package:flutter_templet_project/extension/ddlog.dart'; 12 | 13 | extension NavigatorExt on Navigator { 14 | // @optionalTypeArgs 15 | // static void popPage(BuildContext context, [ T? result ]) { 16 | // if (!Navigator.canPop(context)) { 17 | // DLog.d("已经是根页面了!"); 18 | // return; 19 | // } 20 | // Navigator.of(context).pop(result); 21 | // } 22 | } 23 | -------------------------------------------------------------------------------- /lib/extension/number_format.dart: -------------------------------------------------------------------------------- 1 | // 2 | // NumberFormat.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2023/8/29 20:18. 6 | // Copyright © 2023/8/29 shang. All rights reserved. 7 | // 8 | 9 | import 'package:intl/intl.dart'; 10 | 11 | extension NumberFormatExt on NumberFormat { 12 | /// 转为百分比描述 13 | // 返回千分位分隔的金额 14 | static String? amount(String? val, 15 | {String fmt = '0,000.00', String? locale}) { 16 | if (val == '' || val == null) { 17 | return null; 18 | } 19 | var num = double.tryParse(val); 20 | if (num == null) { 21 | return null; 22 | } 23 | 24 | if (num < 999) { 25 | return val; 26 | } 27 | 28 | var format = NumberFormat(fmt, locale); 29 | return format.format(num); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /lib/extension/page_controller_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // PageControllerExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2025/1/16 16:33. 6 | // Copyright © 2025/1/16 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/cupertino.dart'; 10 | 11 | extension PageControllerExt on PageController { 12 | /// 跳转到对应位子 13 | Future toPage( 14 | int page, { 15 | Duration duration = const Duration(milliseconds: 350), 16 | Curve curve = Curves.ease, 17 | }) async { 18 | if (!hasClients) { 19 | return; 20 | } 21 | if (duration == Duration.zero) { 22 | jumpToPage(page); 23 | } else { 24 | await animateToPage(page, duration: duration, curve: curve); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/extension/proxy_box_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // ProxyBoxExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2023/1/14 14:48. 6 | // Copyright © 2023/1/14 shang. All rights reserved. 7 | // 8 | 9 | import 'dart:io'; 10 | import 'dart:typed_data'; 11 | import 'dart:ui' as ui; 12 | import 'package:flutter/rendering.dart'; 13 | 14 | extension RenderRepaintBoundaryExt on RenderRepaintBoundary { 15 | /// 保存图片 16 | Future saveImageToFile({ 17 | required String path, 18 | ui.ImageByteFormat format = ui.ImageByteFormat.png, 19 | }) async { 20 | var image = await toImage(); 21 | var byteData = await image.toByteData(format: format); 22 | var pngBytes = byteData?.buffer.asUint8List(); 23 | if (pngBytes == null) { 24 | return null; 25 | } 26 | return File(path).writeAsBytes(pngBytes); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/extension/system_channels_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // SystemChannelsExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/12/18 16:24. 6 | // Copyright © 2024/12/18 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/services.dart'; 10 | 11 | extension SystemChannelsExt on SystemChannels { 12 | /// 键盘展示 13 | Future textInputShow() { 14 | return SystemChannels.textInput.invokeMethod('TextInput.show'); 15 | } 16 | 17 | /// 键盘隐藏 18 | Future textInputHide() { 19 | return SystemChannels.textInput.invokeMethod('TextInput.hide'); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/extension/system_chrome_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // SystemChromeExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/6/13 21:55. 6 | // Copyright © 2024/6/13 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/services.dart'; 10 | 11 | extension SystemChromeExt on SystemChrome { 12 | // 强制竖屏 13 | static Future setDeviceOrientationPortrait() { 14 | return SystemChrome.setPreferredOrientations([ 15 | DeviceOrientation.portraitUp, 16 | DeviceOrientation.portraitDown, 17 | ]); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/extension/text_painter_ext.dart: -------------------------------------------------------------------------------- 1 | // 2 | // TextPainterExt.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2023/8/29 20:19. 6 | // Copyright © 2023/8/29 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/cupertino.dart'; 10 | 11 | extension TextPainterExt on TextPainter { 12 | /// 获取布局后的文字属性 13 | static TextPainter getTextPainter({ 14 | required String text, 15 | TextStyle? textStyle, 16 | required int? maxLine, 17 | required double maxWidth, 18 | }) { 19 | var textSpan = TextSpan(text: text, style: textStyle); 20 | var textPainter = TextPainter( 21 | ///AUTO:华为手机如果不指定locale的时候,该方法算出来的文字高度是比系统计算偏小的。 22 | locale: WidgetsBinding.instance.window.locale, 23 | text: textSpan, 24 | maxLines: maxLine, 25 | textDirection: TextDirection.ltr, 26 | ); 27 | textPainter.layout(maxWidth: maxWidth); 28 | return textPainter; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/mixin/MyScrollPhysics.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | 3 | class MyScrollPhysics extends ScrollPhysics { 4 | /// Creates scroll physics that always lets the user scroll. 5 | const MyScrollPhysics({ScrollPhysics? parent}) : super(parent: parent); 6 | 7 | @override 8 | MyScrollPhysics applyTo(ScrollPhysics? ancestor) { 9 | return MyScrollPhysics(parent: buildParent(ancestor)); 10 | } 11 | 12 | @override 13 | bool shouldAcceptUserOffset(ScrollMetrics position) { 14 | if (position.outOfRange && position.pixels > position.maxScrollExtent) { 15 | return false; 16 | } 17 | return true; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/mixin/address_mixin.dart: -------------------------------------------------------------------------------- 1 | // 2 | // LocationMixin.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/9/1 11:40. 6 | // Copyright © 2024/9/1 shang. All rights reserved. 7 | // 8 | 9 | // 定义一个 mixin,提供地址属性和相关方法 10 | import 'package:flutter/cupertino.dart'; 11 | import 'package:flutter_templet_project/vendor/amap_location/location_detail_model.dart'; 12 | 13 | /// 为模型附加属性 14 | mixin AddressMixin { 15 | // 添加一个新属性 address 16 | LocationDetailModel? _address; 17 | 18 | LocationDetailModel? get address => _address; 19 | 20 | set address(LocationDetailModel? value) { 21 | _address = value; 22 | } 23 | 24 | // 打印地址信息的方法 25 | void printAddress() { 26 | if (_address != null) { 27 | debugPrint('$this Address: ${address?.toJson()}'); 28 | } else { 29 | debugPrint('$this Address is not set.'); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/mixin/equal_identical_mixin.dart: -------------------------------------------------------------------------------- 1 | // 2 | // EqualIdenticalMixin.dart 3 | // projects 4 | // 5 | // Created by shang on 2024/11/27 09:31. 6 | // Copyright © 2024/11/27 shang. All rights reserved. 7 | // 8 | 9 | 10 | /// 相等性判断(是否对象相同) 11 | mixin EqualIdenticalMixin { 12 | 13 | @override 14 | bool operator ==(Object other) { 15 | throw UnimplementedError("❌$this 未实现 == 运算符重载"); 16 | } 17 | 18 | @override 19 | int get hashCode => throw UnimplementedError("❌$this 未实现 hashCode"); 20 | } 21 | 22 | -------------------------------------------------------------------------------- /lib/mixin/safe_set_state_mixin.dart: -------------------------------------------------------------------------------- 1 | // 2 | // SafeSetStateMixin.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/2/22 14:26. 6 | // Copyright © 2024/2/22 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/material.dart'; 10 | 11 | /// 重写方法,避免页面退出之后方法 调用导致的问题 12 | mixin SafeSetStateMixin on State { 13 | /// 重写方法,避免页面退出之后调用导致的问题 14 | @override 15 | void setState(VoidCallback fn) { 16 | if (!mounted) { 17 | return; 18 | } 19 | super.setState(fn); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/mixin/selectable_mixin.dart: -------------------------------------------------------------------------------- 1 | // 2 | // SelectedMixin.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/4/3 17:55. 6 | // Copyright © 2024/4/3 shang. All rights reserved. 7 | // 8 | 9 | /// 带有选择属性的 Mixin 10 | mixin SelectableMixin { 11 | /// 唯一性id,做对比 12 | String get selectableId; 13 | 14 | /// 名称显示 15 | String get selectableName; 16 | 17 | /// 是否可用 18 | bool get enable => true; 19 | 20 | /// 是否已选择 21 | bool _isSelected = false; 22 | 23 | bool get isSelected => _isSelected; 24 | 25 | set isSelected(bool value) { 26 | _isSelected = value; 27 | } 28 | 29 | Map toJson() { 30 | throw UnimplementedError("❌$this 未实现 toJson"); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/mixin/timings_mixin.dart: -------------------------------------------------------------------------------- 1 | // 2 | // TimingsMixin.dart 3 | // yl_patient_app 4 | // 5 | // Created by shang on 2024/6/12 11:12. 6 | // Copyright © 2024/6/12 shang. All rights reserved. 7 | // 8 | 9 | import 'dart:async'; 10 | 11 | import 'package:flutter/cupertino.dart'; 12 | import 'package:flutter/scheduler.dart'; 13 | 14 | /// fps 15 | mixin TimingsMixin on State { 16 | @override 17 | void initState() { 18 | super.initState(); 19 | SchedulerBinding.instance.addTimingsCallback(onTimings); 20 | } 21 | 22 | @override 23 | void dispose() { 24 | SchedulerBinding.instance.removeTimingsCallback(onTimings); 25 | super.dispose(); 26 | } 27 | 28 | void onTimings(List timings) { 29 | throw UnimplementedError( 30 | "❌: $this 未实现 onTimings(List timings)"); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/model/selected_model.dart: -------------------------------------------------------------------------------- 1 | ///选择通用模型 2 | class SelectModel { 3 | SelectModel({ 4 | required this.id, 5 | required this.name, 6 | this.data, 7 | this.isSelected = false, 8 | }); 9 | 10 | String? id; 11 | 12 | String? name; 13 | 14 | bool? isSelected; 15 | 16 | /// 通用数据 17 | T? data; 18 | 19 | SelectModel.fromJson(Map? json) { 20 | if (json == null) { 21 | return; 22 | } 23 | id = json['id']; 24 | name = json['title']; 25 | isSelected = json['isSelected']; 26 | } 27 | 28 | Map toJson() { 29 | final data = Map(); 30 | data['id'] = id; 31 | data['title'] = name; 32 | data['isSelected'] = isSelected; 33 | return data; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /lib/model/student.dart: -------------------------------------------------------------------------------- 1 | class StudentClassroom { 2 | String? name; 3 | int? id; 4 | 5 | StudentClassroom({this.name, this.id}); 6 | } 7 | 8 | class StudentTeacher { 9 | String? name; 10 | int? age; 11 | 12 | StudentTeacher({ 13 | this.name, 14 | this.age, 15 | }); 16 | } 17 | 18 | class Student { 19 | //JsonName:score 20 | int? score; 21 | 22 | //JsonName:teachers 23 | List? teachers; 24 | 25 | //JsonName:name 26 | String? name; 27 | 28 | //JsonName:classroom 29 | StudentClassroom? classroom; 30 | 31 | //JsonName:id 32 | String? id; 33 | 34 | Student({ 35 | this.score, 36 | this.teachers, 37 | this.name, 38 | this.classroom, 39 | this.id, 40 | }); 41 | } 42 | -------------------------------------------------------------------------------- /lib/network/RequestError.dart: -------------------------------------------------------------------------------- 1 | // 2 | // RequestError.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2023/11/16 16:14. 6 | // Copyright © 2023/11/16 shang. All rights reserved. 7 | // 8 | 9 | /// 网络错误 10 | enum RequestError { 11 | unknown("未知错误"), 12 | jsonError("JSON解析错误"), 13 | paramsError("参数错误"), 14 | urlError("请求链接异常"), 15 | timeout("请求超时。"), 16 | networkError("网络错误,请稍后再试"), 17 | notNetwork("无法连接到网络"), 18 | serverError("服务器响应超时,请稍后再试"), 19 | cancel("取消网络请求"); 20 | 21 | const RequestError(this.desc); 22 | final String desc; 23 | } 24 | 25 | enum RequestStatusCode { 26 | code401("校验失败!"), 27 | code403("无权限访问!"), 28 | code404("404未找到!"), 29 | code500("服务器内部错误!"), 30 | code502("服务器内部错误!"); 31 | 32 | const RequestStatusCode(this.desc); 33 | final String desc; 34 | } 35 | -------------------------------------------------------------------------------- /lib/network/dio_ext.dart: -------------------------------------------------------------------------------- 1 | import 'dart:convert'; 2 | 3 | import 'package:dio/dio.dart'; 4 | 5 | extension ResponseExt on Response { 6 | /// 请求调试信息 7 | String toDescription() { 8 | var jsonStr = data; 9 | try { 10 | jsonStr = jsonEncode(data); 11 | } catch (e) { 12 | jsonStr = e.toString(); 13 | } 14 | 15 | return """---------------------------------- 16 | requestUrl: ${requestOptions.path}, 17 | method: ${requestOptions.method}, 18 | header: ${jsonEncode(requestOptions.headers)}, 19 | params: ${jsonEncode(requestOptions.data ?? requestOptions.queryParameters)}, 20 | jsonStr: 21 | $jsonStr 22 | """; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/network/oss/oss_auth_api.dart: -------------------------------------------------------------------------------- 1 | // 2 | // OssAuthApi.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/6/21 21:54. 6 | // Copyright © 2024/6/21 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter_templet_project/network/base_request_api.dart'; 10 | 11 | class OssAuthApi extends BaseRequestAPI { 12 | OssAuthApi(); 13 | 14 | @override 15 | String get requestURI { 16 | const url = '*/oss/auth/sts'; 17 | return url; 18 | } 19 | 20 | @override 21 | HttpMethod get requestType => HttpMethod.GET; 22 | } 23 | -------------------------------------------------------------------------------- /lib/pages/demo/APPForgetPwdPage.dart: -------------------------------------------------------------------------------- 1 | // 2 | // APPForgetPwdPage.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 6/3/21 10:48 AM. 6 | // Copyright © 6/3/21 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/cupertino.dart'; 10 | import 'package:flutter/material.dart'; 11 | 12 | class APPForgetPwdPage extends StatefulWidget { 13 | final String? title; 14 | 15 | const APPForgetPwdPage({Key? key, this.title}) : super(key: key); 16 | 17 | @override 18 | _APPForgetPwdPageState createState() => _APPForgetPwdPageState(); 19 | } 20 | 21 | class _APPForgetPwdPageState extends State { 22 | @override 23 | Widget build(BuildContext context) { 24 | dynamic arguments = ModalRoute.of(context)!.settings.arguments; 25 | 26 | return Scaffold( 27 | appBar: AppBar( 28 | title: Text(widget.title ?? "$widget"), 29 | ), 30 | body: Text(arguments.toString())); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/pages/demo/CirclePainter.dart: -------------------------------------------------------------------------------- 1 | // 2 | // CirclePainter.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 12/14/21 11:04 AM. 6 | // Copyright © 12/14/21 shang. All rights reserved. 7 | // 8 | 9 | import 'dart:math'; 10 | 11 | import 'package:flutter/material.dart'; 12 | 13 | class CirclePainter extends CustomPainter { 14 | CirclePainter({ 15 | this.color = Colors.black, 16 | }); 17 | 18 | final Color color; 19 | 20 | @override 21 | bool hitTest(Offset position) => true; 22 | 23 | @override 24 | bool shouldRepaint(CirclePainter oldDelegate) { 25 | return oldDelegate.color != color; 26 | } 27 | 28 | @override 29 | void paint(Canvas canvas, Size size) { 30 | var paint = Paint() 31 | ..color = color 32 | ..style = PaintingStyle.fill; 33 | 34 | final point = Offset(size.width * 0.5, size.height * 0.5); 35 | canvas.drawCircle(point, min(size.width, size.height) * 0.5, paint); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/pages/demo/RotatedBoxDemo.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class RotatedBoxDemo extends StatefulWidget { 4 | final String? title; 5 | 6 | const RotatedBoxDemo({Key? key, this.title}) : super(key: key); 7 | 8 | @override 9 | _RotatedBoxDemoState createState() => _RotatedBoxDemoState(); 10 | } 11 | 12 | class _RotatedBoxDemoState extends State { 13 | @override 14 | Widget build(BuildContext context) { 15 | dynamic arguments = ModalRoute.of(context)!.settings.arguments; 16 | 17 | return Scaffold( 18 | appBar: AppBar( 19 | title: Text(widget.title ?? "$widget"), 20 | ), 21 | body: RotatedBox( 22 | quarterTurns: 3, 23 | child: const Text('Hello World!'), 24 | ), 25 | ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/pages/demo/ToggleableStateMixinDemo.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class CustomCheckbox extends State 4 | with TickerProviderStateMixin, ToggleableStateMixin { 5 | @override 6 | Widget build(BuildContext context) { 7 | // TODO: implement build 8 | throw UnimplementedError(); 9 | } 10 | 11 | @override 12 | // TODO: implement onChanged 13 | ValueChanged? get onChanged => throw UnimplementedError(); 14 | 15 | @override 16 | // TODO: implement tristate 17 | bool get tristate => throw UnimplementedError(); 18 | 19 | @override 20 | // TODO: implement value 21 | bool? get value => throw UnimplementedError(); 22 | } 23 | -------------------------------------------------------------------------------- /lib/provider/color_filtered_provider.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ColorFilteredProvider with ChangeNotifier { 4 | Color color = Colors.transparent; //默认透明 5 | 6 | ///设置过滤后的颜色 7 | setColor(Color value) { 8 | color = value; 9 | notifyListeners(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/routes/InitialBinding.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_templet_project/pages/app_tab_bar_controller.dart'; 2 | import 'package:get/get.dart'; 3 | import 'package:get/get_instance/src/bindings_interface.dart'; 4 | 5 | class InitialBinding implements Bindings { 6 | @override 7 | void dependencies() { 8 | Get.put(AppTabBarController(), permanent: true); 9 | // Get.lazyPut(() => LoginController(LoginRepo()), fenix: true); 10 | // Get.lazyPut(() => HomeController(HomeRepo()), fenix: true); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/util/Codable.dart: -------------------------------------------------------------------------------- 1 | abstract class Codable { 2 | // factory Codable(Map? json) { 3 | // throw UnimplementedError(); 4 | // } 5 | 6 | // Codable.fromJson(Map? json) { 7 | // throw UnimplementedError(); 8 | // } 9 | 10 | factory Codable.fromJson(Map json) { 11 | throw UnimplementedError(); 12 | } 13 | 14 | Map toJson() { 15 | throw UnimplementedError(); 16 | } 17 | } 18 | 19 | class XYZModel implements Codable { 20 | XYZModel({ 21 | this.id, 22 | this.name, 23 | }); 24 | String? id; 25 | String? name; 26 | 27 | XYZModel.fromJson(Map? json) { 28 | if (json == null) { 29 | return; 30 | } 31 | 32 | id = json["id"]; 33 | name = json["name"]; 34 | } 35 | 36 | @override 37 | Map toJson() { 38 | // TODO: implement toJson 39 | throw UnimplementedError(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/util/Throttle.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/foundation.dart'; 2 | 3 | /// 事件节流 4 | class Throttle { 5 | Throttle({ 6 | this.delay = const Duration(milliseconds: 1000), 7 | }); 8 | 9 | final Duration delay; 10 | 11 | int? _lastActionTime; 12 | 13 | call(VoidCallback cb) { 14 | if (_lastActionTime == null) { 15 | cb(); 16 | _lastActionTime = DateTime.now().millisecondsSinceEpoch; 17 | } else { 18 | if (DateTime.now().millisecondsSinceEpoch - _lastActionTime! > 19 | delay.inMilliseconds) { 20 | cb(); 21 | _lastActionTime = DateTime.now().millisecondsSinceEpoch; 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/util/fade_page_route.dart: -------------------------------------------------------------------------------- 1 | // 2 | // CustomeMaterialPageRoute.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 2024/7/12 23:19. 6 | // Copyright © 2024/7/12 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/material.dart'; 10 | 11 | class FadePageRoute extends MaterialPageRoute { 12 | FadePageRoute({ 13 | required WidgetBuilder builder, 14 | RouteSettings? settings, 15 | }) : super(builder: builder, settings: settings); 16 | 17 | // final CupertinoPageTransitionsBuilder 18 | 19 | @override 20 | Widget buildTransitions(BuildContext context, Animation animation, 21 | Animation secondaryAnimation, Widget child) { 22 | return FadeTransition(opacity: animation, child: child); 23 | } 24 | 25 | @override 26 | Duration get transitionDuration => const Duration(milliseconds: 300); 27 | } 28 | -------------------------------------------------------------------------------- /lib/vendor/SVGAImageDemo.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:svgaplayer_flutter/svgaplayer_flutter.dart'; 3 | 4 | class SvgaImageDemo extends StatefulWidget { 5 | final String? title; 6 | 7 | const SvgaImageDemo({Key? key, this.title}) : super(key: key); 8 | 9 | @override 10 | _SvgaImageDemoState createState() => _SvgaImageDemoState(); 11 | } 12 | 13 | class _SvgaImageDemoState extends State { 14 | @override 15 | Widget build(BuildContext context) { 16 | dynamic arguments = ModalRoute.of(context)!.settings.arguments; 17 | 18 | return Scaffold( 19 | appBar: AppBar( 20 | title: Text(widget.title ?? "$widget"), 21 | ), 22 | body: buildBody(), 23 | ); 24 | } 25 | 26 | Widget buildBody() { 27 | return Container( 28 | child: SVGASimpleImage( 29 | resUrl: 30 | "https://github.com/yyued/SVGA-Samples/blob/master/angel.svga?raw=true"), 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /lib/vendor/azlistview/common/index.dart: -------------------------------------------------------------------------------- 1 | export 'models.dart'; 2 | export 'utils.dart'; 3 | export 'res.dart'; 4 | 5 | export 'dart:convert'; 6 | 7 | export 'package:common_utils/common_utils.dart'; 8 | 9 | export 'package:lpinyin/lpinyin.dart'; 10 | -------------------------------------------------------------------------------- /lib/vendor/azlistview/common/res.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Colours { 4 | static const Color gray_33 = Color(0xFF333333); 5 | static const Color gray_66 = Color(0xFF666666); 6 | static const Color gray_99 = Color(0xFF999999); 7 | } 8 | -------------------------------------------------------------------------------- /lib/vendor/azlistview/ui/index.dart: -------------------------------------------------------------------------------- 1 | export 'page_scaffold.dart'; 2 | export 'github_language_page.dart'; 3 | export 'contacts_page.dart'; 4 | export 'contacts_list_page.dart'; 5 | export 'citylist_page.dart'; 6 | export 'citylist_custom_header_page.dart'; 7 | export 'car_models_page.dart'; 8 | export 'large_data_page.dart'; 9 | -------------------------------------------------------------------------------- /lib/vendor/getx/order_controller.dart: -------------------------------------------------------------------------------- 1 | import 'dart:convert'; 2 | 3 | import 'package:flutter/material.dart'; 4 | import 'package:get/get.dart'; 5 | 6 | /// 订单逻辑类 7 | class OrderController extends GetxController { 8 | /// 重写方法,避免页面退出之后的 update 调用导致的问题 9 | @override 10 | void update([List? ids, bool condition = true]) { 11 | if (!Get.isRegistered()) { 12 | return; 13 | } 14 | super.update(); 15 | } 16 | 17 | /// 详情 18 | requestDetail() async { 19 | await Future.delayed(Duration(milliseconds: 1500)); 20 | update(); 21 | } 22 | 23 | /// 提交 24 | submit({ 25 | required Map map, 26 | }) async { 27 | await Future.delayed(Duration(milliseconds: 1500)); 28 | update(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/vendor/isar/db_mixin.dart: -------------------------------------------------------------------------------- 1 | // 2 | // DbMixin.dart 3 | // projects 4 | // 5 | // Created by shang on 2024/11/19 09:00. 6 | // Copyright © 2024/11/19 shang. All rights reserved. 7 | // 8 | 9 | import 'package:isar/isar.dart'; 10 | 11 | export 'package:isar/isar.dart'; 12 | 13 | /// 数据库混入: 含必需参数, 标为 @collection 的都必须遵循此混入 14 | mixin DbMixin { 15 | /// 数据库唯一 id 16 | Id get isarId => throw UnimplementedError("❌$this 未实现 isarId"); 17 | } 18 | -------------------------------------------------------------------------------- /lib/vendor/isar/model/db_user.dart: -------------------------------------------------------------------------------- 1 | class DBUser { 2 | late String name; 3 | late bool age; 4 | late bool isMale; 5 | } 6 | -------------------------------------------------------------------------------- /lib/vendor/timeline/common/font_const.dart: -------------------------------------------------------------------------------- 1 | class FontConst { 2 | /// fontWeight:w400 3 | static const String pingFangSC_Regular = 'PingFangSC-Regular'; 4 | 5 | /// fontWeight:w500 6 | static const String pingFangSC_Medium = 'PingFangSC-Medium'; 7 | 8 | /// fontWeight:w600 9 | static const String pingFangSC_Semibold = 'PingFangSC-Semibold'; 10 | 11 | static const String don58 = 'don58'; 12 | } 13 | -------------------------------------------------------------------------------- /lib/vendor/timeline/timeline_model.dart: -------------------------------------------------------------------------------- 1 | ///定义timeline list实体 2 | class TimelineModel { 3 | final String id; 4 | final String title; 5 | final String description; 6 | final String day; 7 | final String time; 8 | const TimelineModel({ 9 | required this.id, 10 | required this.title, 11 | required this.description, 12 | required this.day, 13 | required this.time, 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /lib/vendor/timeline/timeline_step.dart: -------------------------------------------------------------------------------- 1 | // 2 | // TimelineStep.dart 3 | // flutter_templet_project 4 | // 5 | // Created by shang on 12/13/21 5:14 PM. 6 | // Copyright © 12/13/21 shang. All rights reserved. 7 | // 8 | 9 | import 'package:flutter/material.dart'; 10 | 11 | class TimelineStep extends StatefulWidget { 12 | final String? title; 13 | 14 | const TimelineStep({Key? key, this.title}) : super(key: key); 15 | 16 | @override 17 | _TimelineStepState createState() => _TimelineStepState(); 18 | } 19 | 20 | class _TimelineStepState extends State { 21 | @override 22 | Widget build(BuildContext context) { 23 | dynamic arguments = ModalRoute.of(context)!.settings.arguments; 24 | 25 | return Scaffold( 26 | appBar: AppBar( 27 | title: Text(widget.title ?? "$widget"), 28 | ), 29 | body: Text(arguments.toString())); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /lib/vendor/timelines_demo/generated_plugin_registrant.dart: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // ignore_for_file: directives_ordering 6 | // ignore_for_file: lines_longer_than_80_chars 7 | 8 | import 'package:url_launcher_web/url_launcher_web.dart'; 9 | 10 | import 'package:flutter_web_plugins/flutter_web_plugins.dart'; 11 | 12 | // ignore: public_member_api_docs 13 | void registerPlugins(Registrar registrar) { 14 | UrlLauncherPlugin.registerWith(registrar); 15 | registrar.registerMessageHandler(); 16 | } 17 | -------------------------------------------------------------------------------- /macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/xcuserdata/ 7 | -------------------------------------------------------------------------------- /macos/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 1d9032c7e1d867f071f2277eb1673e8f9b0274e3 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 3 | #include "ephemeral/Flutter-Generated.xcconfig" 4 | -------------------------------------------------------------------------------- /macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 3 | #include "ephemeral/Flutter-Generated.xcconfig" 4 | -------------------------------------------------------------------------------- /macos/README.md: -------------------------------------------------------------------------------- 1 | # macos 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) 13 | 14 | For help getting started with Flutter, view our 15 | [online documentation](https://flutter.dev/docs), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | @NSApplicationMain 5 | class AppDelegate: FlutterAppDelegate { 6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 7 | return true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png -------------------------------------------------------------------------------- /macos/Runner/Configs/AppInfo.xcconfig: -------------------------------------------------------------------------------- 1 | // Application-level settings for the Runner target. 2 | // 3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the 4 | // future. If not, the values below would default to using the project name when this becomes a 5 | // 'flutter create' template. 6 | 7 | // The application's name. By default this is also the title of the Flutter window. 8 | PRODUCT_NAME = flutter_templet_project 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterTempletProject 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2021 com.example. All rights reserved. 15 | -------------------------------------------------------------------------------- /macos/Runner/Configs/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Debug.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/Runner/Configs/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Release.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/Runner/Configs/Warnings.xcconfig: -------------------------------------------------------------------------------- 1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings 2 | GCC_WARN_UNDECLARED_SELECTOR = YES 3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES 4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE 5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES 6 | CLANG_WARN_PRAGMA_PACK = YES 7 | CLANG_WARN_STRICT_PROTOTYPES = YES 8 | CLANG_WARN_COMMA = YES 9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES 10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES 11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES 12 | GCC_WARN_SHADOW = YES 13 | CLANG_WARN_UNREACHABLE_CODE = YES 14 | -------------------------------------------------------------------------------- /macos/Runner/MainFlutterWindow.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | class MainFlutterWindow: NSWindow { 5 | override func awakeFromNib() { 6 | let flutterViewController = FlutterViewController.init() 7 | let windowFrame = self.frame 8 | self.contentViewController = flutterViewController 9 | self.setFrame(windowFrame, display: true) 10 | 11 | RegisterGeneratedPlugins(registry: flutterViewController) 12 | 13 | super.awakeFromNib() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /macos/Runner/Release.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.assets.movies.read-only 8 | 9 | com.apple.security.assets.music.read-only 10 | 11 | com.apple.security.assets.pictures.read-only 12 | 13 | com.apple.security.files.downloads.read-write 14 | 15 | com.apple.security.files.user-selected.read-write 16 | 17 | com.apple.security.network.client 18 | 19 | com.apple.security.network.server 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /macos/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | -------------------------------------------------------------------------------- /macos/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /macos/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java: -------------------------------------------------------------------------------- 1 | package io.flutter.plugins; 2 | 3 | import androidx.annotation.Keep; 4 | import androidx.annotation.NonNull; 5 | import io.flutter.Log; 6 | 7 | import io.flutter.embedding.engine.FlutterEngine; 8 | 9 | /** 10 | * Generated file. Do not edit. 11 | * This file is generated by the Flutter tool based on the 12 | * plugins that support the Android platform. 13 | */ 14 | @Keep 15 | public final class GeneratedPluginRegistrant { 16 | private static final String TAG = "GeneratedPluginRegistrant"; 17 | public static void registerWith(@NonNull FlutterEngine flutterEngine) { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /macos/android/app/src/main/kotlin/com/example/macos/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.macos 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /macos/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /macos/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /macos/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /macos/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /macos/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /macos/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /macos/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /macos/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /macos/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.9.0' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:4.1.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 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 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /macos/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /macos/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /macos/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 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-6.7-all.zip 7 | -------------------------------------------------------------------------------- /macos/android/local.properties: -------------------------------------------------------------------------------- 1 | sdk.dir=/Users/shang/Library/Android/sdk 2 | flutter.sdk=/Users/shang/fvm/versions/3.19.6 -------------------------------------------------------------------------------- /macos/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /macos/build/ios/Runner.build/Release-iphoneos/Runner.build/dgph: -------------------------------------------------------------------------------- 1 | DGPH1.04 Aug 25 202119:34:47/UsersshangGitHubflutter_templet_projectmacosios -------------------------------------------------------------------------------- /macos/build/unit_test_assets/AssetManifest.json: -------------------------------------------------------------------------------- 1 | {"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]} -------------------------------------------------------------------------------- /macos/build/unit_test_assets/FontManifest.json: -------------------------------------------------------------------------------- 1 | [{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}] -------------------------------------------------------------------------------- /macos/build/unit_test_assets/NOTICES.Z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/build/unit_test_assets/NOTICES.Z -------------------------------------------------------------------------------- /macos/build/unit_test_assets/fonts/MaterialIcons-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/build/unit_test_assets/fonts/MaterialIcons-Regular.otf -------------------------------------------------------------------------------- /macos/build/unit_test_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/build/unit_test_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf -------------------------------------------------------------------------------- /macos/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 | -------------------------------------------------------------------------------- /macos/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 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 | 12.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /macos/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /macos/ios/Flutter/Generated.xcconfig: -------------------------------------------------------------------------------- 1 | // This is a generated file; do not edit or check into version control. 2 | FLUTTER_ROOT=/Users/shang/fvm/versions/3.19.6 3 | FLUTTER_APPLICATION_PATH=/Users/shang/GitHub/flutter_templet_project/macos 4 | COCOAPODS_PARALLEL_CODE_SIGN=true 5 | FLUTTER_TARGET=lib/main.dart 6 | FLUTTER_BUILD_DIR=build 7 | FLUTTER_BUILD_NAME=1.0.0 8 | FLUTTER_BUILD_NUMBER=1 9 | EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386 10 | EXCLUDED_ARCHS[sdk=iphoneos*]=armv7 11 | DART_OBFUSCATION=false 12 | TRACK_WIDGET_CREATION=false 13 | TREE_SHAKE_ICONS=true 14 | PACKAGE_CONFIG=/Users/shang/GitHub/flutter_templet_project/macos/.dart_tool/package_config.json 15 | -------------------------------------------------------------------------------- /macos/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /macos/ios/Flutter/flutter_export_environment.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # This is a generated file; do not edit or check into version control. 3 | export "FLUTTER_ROOT=/Users/shang/fvm/versions/3.19.6" 4 | export "FLUTTER_APPLICATION_PATH=/Users/shang/GitHub/flutter_templet_project/macos" 5 | export "COCOAPODS_PARALLEL_CODE_SIGN=true" 6 | export "FLUTTER_TARGET=lib/main.dart" 7 | export "FLUTTER_BUILD_DIR=build" 8 | export "FLUTTER_BUILD_NAME=1.0.0" 9 | export "FLUTTER_BUILD_NUMBER=1" 10 | export "DART_OBFUSCATION=false" 11 | export "TRACK_WIDGET_CREATION=false" 12 | export "TREE_SHAKE_ICONS=true" 13 | export "PACKAGE_CONFIG=/Users/shang/GitHub/flutter_templet_project/macos/.dart_tool/package_config.json" 14 | -------------------------------------------------------------------------------- /macos/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /macos/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /macos/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/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 | -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /macos/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 | -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /macos/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /macos/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. -------------------------------------------------------------------------------- /macos/ios/Runner/GeneratedPluginRegistrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GeneratedPluginRegistrant_h 8 | #define GeneratedPluginRegistrant_h 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface GeneratedPluginRegistrant : NSObject 15 | + (void)registerWithRegistry:(NSObject*)registry; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | #endif /* GeneratedPluginRegistrant_h */ 20 | -------------------------------------------------------------------------------- /macos/ios/Runner/GeneratedPluginRegistrant.m: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #import "GeneratedPluginRegistrant.h" 8 | 9 | @implementation GeneratedPluginRegistrant 10 | 11 | + (void)registerWithRegistry:(NSObject*)registry { 12 | } 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /macos/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /macos/macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/xcuserdata/ 7 | -------------------------------------------------------------------------------- /macos/macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ephemeral/Flutter-Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /macos/macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ephemeral/Flutter-Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /macos/macos/Flutter/GeneratedPluginRegistrant.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | import FlutterMacOS 6 | import Foundation 7 | 8 | 9 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { 10 | } 11 | -------------------------------------------------------------------------------- /macos/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/macos/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /macos/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/macos/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | @NSApplicationMain 5 | class AppDelegate: FlutterAppDelegate { 6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 7 | return true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png -------------------------------------------------------------------------------- /macos/macos/Runner/Configs/AppInfo.xcconfig: -------------------------------------------------------------------------------- 1 | // Application-level settings for the Runner target. 2 | // 3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the 4 | // future. If not, the values below would default to using the project name when this becomes a 5 | // 'flutter create' template. 6 | 7 | // The application's name. By default this is also the title of the Flutter window. 8 | PRODUCT_NAME = macos 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.macos 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2022 com.example. All rights reserved. 15 | -------------------------------------------------------------------------------- /macos/macos/Runner/Configs/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Debug.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/macos/Runner/Configs/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Release.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/macos/Runner/Configs/Warnings.xcconfig: -------------------------------------------------------------------------------- 1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings 2 | GCC_WARN_UNDECLARED_SELECTOR = YES 3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES 4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE 5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES 6 | CLANG_WARN_PRAGMA_PACK = YES 7 | CLANG_WARN_STRICT_PROTOTYPES = YES 8 | CLANG_WARN_COMMA = YES 9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES 10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES 11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES 12 | GCC_WARN_SHADOW = YES 13 | CLANG_WARN_UNREACHABLE_CODE = YES 14 | -------------------------------------------------------------------------------- /macos/macos/Runner/DebugProfile.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.cs.allow-jit 8 | 9 | com.apple.security.network.server 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /macos/macos/Runner/MainFlutterWindow.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | class MainFlutterWindow: NSWindow { 5 | override func awakeFromNib() { 6 | let flutterViewController = FlutterViewController.init() 7 | let windowFrame = self.frame 8 | self.contentViewController = flutterViewController 9 | self.setFrame(windowFrame, display: true) 10 | 11 | RegisterGeneratedPlugins(registry: flutterViewController) 12 | 13 | super.awakeFromNib() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /macos/macos/Runner/Release.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/web/favicon.png -------------------------------------------------------------------------------- /macos/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/web/icons/Icon-192.png -------------------------------------------------------------------------------- /macos/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/web/icons/Icon-512.png -------------------------------------------------------------------------------- /macos/web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "macos", 3 | "short_name": "macos", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "A new Flutter project.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /macos/windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /macos/windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void RegisterPlugins(flutter::PluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /macos/windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /macos/windows/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | ) 7 | 8 | list(APPEND FLUTTER_FFI_PLUGIN_LIST 9 | ) 10 | 11 | set(PLUGIN_BUNDLED_LIBRARIES) 12 | 13 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 14 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) 15 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 16 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 17 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 18 | endforeach(plugin) 19 | 20 | foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) 21 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) 22 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) 23 | endforeach(ffi_plugin) 24 | -------------------------------------------------------------------------------- /macos/windows/runner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.15) 2 | project(runner LANGUAGES CXX) 3 | 4 | add_executable(${BINARY_NAME} WIN32 5 | "flutter_window.cpp" 6 | "main.cpp" 7 | "run_loop.cpp" 8 | "utils.cpp" 9 | "win32_window.cpp" 10 | "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" 11 | "Runner.rc" 12 | "runner.exe.manifest" 13 | ) 14 | apply_standard_settings(${BINARY_NAME}) 15 | target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") 16 | target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) 17 | target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") 18 | add_dependencies(${BINARY_NAME} flutter_assemble) 19 | -------------------------------------------------------------------------------- /macos/windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /macos/windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/macos/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /macos/windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /macos/windows/runner/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_UTILS_H_ 2 | #define RUNNER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | // Creates a console for the process, and redirects stdout and stderr to 8 | // it for both the runner and the Flutter library. 9 | void CreateAndAttachConsole(); 10 | 11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string 12 | // encoded in UTF-8. Returns an empty std::string on failure. 13 | std::string Utf8FromUtf16(const wchar_t* utf16_string); 14 | 15 | // Gets the command line arguments passed in as a std::vector, 16 | // encoded in UTF-8. Returns an empty std::vector on failure. 17 | std::vector GetCommandLineArguments(); 18 | 19 | #endif // RUNNER_UTILS_H_ 20 | -------------------------------------------------------------------------------- /screenshots/7315个系统图标.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/screenshots/7315个系统图标.png -------------------------------------------------------------------------------- /screenshots/Screen Shot -2021-05-12 at 18.26.36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/screenshots/Screen Shot -2021-05-12 at 18.26.36.png -------------------------------------------------------------------------------- /web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/web/favicon.png -------------------------------------------------------------------------------- /web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/web/icons/Icon-192.png -------------------------------------------------------------------------------- /web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/web/icons/Icon-512.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /web/splash/img/light-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/web/splash/img/light-background.png -------------------------------------------------------------------------------- /weekly.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | # 获取当前脚本所在目录的路径 5 | script_dir=$(dirname "$(realpath "$0")") 6 | echo "脚本所在目录: $script_dir" 7 | 8 | # 获取当前脚本的绝对路径 9 | current_path=$(realpath "$0") 10 | echo "当前脚本路径: $current_path" 11 | 12 | git_author=$(git show -s --format='%ae') 13 | echo "git_author: $git_author" 14 | 15 | git_branch=$(git rev-parse --abbrev-ref HEAD) 16 | echo "git_branch: $git_branch" 17 | 18 | # 获取当前日期的倒数5天的日期 19 | date_start=$(date -v -5d +%Y-%m-%d) 20 | echo "date_start: $date_start" 21 | 22 | git log --author="${git_author}" --after="$date_start" --pretty=format:"%s" > commit_messages.txt 23 | -------------------------------------------------------------------------------- /windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /windows/runner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.15) 2 | project(runner LANGUAGES CXX) 3 | 4 | add_executable(${BINARY_NAME} WIN32 5 | "flutter_window.cpp" 6 | "main.cpp" 7 | "utils.cpp" 8 | "win32_window.cpp" 9 | "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" 10 | "Runner.rc" 11 | "runner.exe.manifest" 12 | ) 13 | apply_standard_settings(${BINARY_NAME}) 14 | target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") 15 | target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) 16 | target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") 17 | add_dependencies(${BINARY_NAME} flutter_assemble) 18 | -------------------------------------------------------------------------------- /windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /windows/runner/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_UTILS_H_ 2 | #define RUNNER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | // Creates a console for the process, and redirects stdout and stderr to 8 | // it for both the runner and the Flutter library. 9 | void CreateAndAttachConsole(); 10 | 11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string 12 | // encoded in UTF-8. Returns an empty std::string on failure. 13 | std::string Utf8FromUtf16(const wchar_t* utf16_string); 14 | 15 | // Gets the command line arguments passed in as a std::vector, 16 | // encoded in UTF-8. Returns an empty std::vector on failure. 17 | std::vector GetCommandLineArguments(); 18 | 19 | #endif // RUNNER_UTILS_H_ 20 | --------------------------------------------------------------------------------