├── .github ├── FUNDING.yml └── workflows │ ├── flutter.yml │ ├── release.yml │ └── verify-gradle-wrapper.yml ├── .gitignore ├── .metadata ├── .vscode └── settings.json ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── analysis_options.yaml ├── android ├── .gitignore ├── app │ ├── build.gradle │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── labplus_for_gitlab │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ └── splash.png │ │ │ ├── drawable-mdpi │ │ │ └── splash.png │ │ │ ├── drawable-night-v21 │ │ │ ├── background.png │ │ │ └── launch_background.xml │ │ │ ├── drawable-night │ │ │ ├── background.png │ │ │ └── launch_background.xml │ │ │ ├── drawable-v21 │ │ │ ├── background.png │ │ │ └── launch_background.xml │ │ │ ├── drawable-xhdpi │ │ │ └── splash.png │ │ │ ├── drawable-xxhdpi │ │ │ └── splash.png │ │ │ ├── drawable-xxxhdpi │ │ │ └── splash.png │ │ │ ├── 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 ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties └── settings.gradle ├── assets ├── logo │ └── 2.svg ├── splash.png └── splash_400.png ├── build_runner.bat ├── docs └── images │ ├── IMG_2854.PNG │ ├── IMG_2855.PNG │ ├── IMG_2856.PNG │ ├── IMG_2857.PNG │ ├── IMG_2858.PNG │ ├── IMG_2861.PNG │ ├── IMG_2862.PNG │ ├── IMG_2863.PNG │ ├── IMG_2876.PNG │ ├── IMG_2886.PNG │ ├── IMG_2887.PNG │ ├── IMG_2936.PNG │ ├── IMG_3133.PNG │ └── Simulator Screen Shot - iPad Pro (12.9-inch) (5th generation) - 2022-02-20 at 22.04.21.png ├── fastlane └── metadata │ └── android │ ├── de-DE │ ├── changelog │ │ └── 1.txt │ ├── full_description.txt │ ├── images │ │ ├── icon.png │ │ └── phoneScreenshots │ │ │ ├── activity.png │ │ │ ├── activity_dark.png │ │ │ ├── auth.png │ │ │ ├── commits.png │ │ │ ├── commits_dark.png │ │ │ ├── merge-request-2.png │ │ │ ├── merge-request-2_dark.png │ │ │ ├── merge-request-notes.png │ │ │ ├── merge-request-notes_dark.png │ │ │ ├── merge-request.png │ │ │ ├── merge-request_dark.png │ │ │ ├── merge-requests.png │ │ │ ├── merge-requests_dark.png │ │ │ ├── project.png │ │ │ ├── project_dark.png │ │ │ ├── projects.png │ │ │ └── projects_dark.png │ ├── short_description.txt │ └── title.txt │ └── en-US │ ├── changelog │ └── 1.txt │ ├── full_description.txt │ ├── images │ ├── icon.png │ └── phoneScreenshots │ │ ├── activity.png │ │ ├── activity_dark.png │ │ ├── auth.png │ │ ├── commits.png │ │ ├── commits_dark.png │ │ ├── merge-request-2.png │ │ ├── merge-request-2_dark.png │ │ ├── merge-request-notes.png │ │ ├── merge-request-notes_dark.png │ │ ├── merge-request.png │ │ ├── merge-request_dark.png │ │ ├── merge-requests.png │ │ ├── merge-requests_dark.png │ │ ├── project.png │ │ ├── project_dark.png │ │ ├── projects.png │ │ └── projects_dark.png │ ├── short_description.txt │ └── title.txt ├── fonts ├── SourceCodePro-Black.ttf ├── SourceCodePro-BlackIt.ttf ├── SourceCodePro-Bold.ttf ├── SourceCodePro-BoldIt.ttf ├── SourceCodePro-ExtraLight.ttf ├── SourceCodePro-ExtraLightIt.ttf ├── SourceCodePro-It.ttf ├── SourceCodePro-Light.ttf ├── SourceCodePro-LightIt.ttf ├── SourceCodePro-Medium.ttf ├── SourceCodePro-MediumIt.ttf ├── SourceCodePro-Regular.ttf ├── SourceCodePro-Semibold.ttf └── SourceCodePro-SemiboldIt.ttf ├── 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 │ │ ├── 100.png │ │ ├── 1024.png │ │ ├── 114.png │ │ ├── 120.png │ │ ├── 128.png │ │ ├── 144.png │ │ ├── 152.png │ │ ├── 16.png │ │ ├── 167.png │ │ ├── 172.png │ │ ├── 180.png │ │ ├── 196.png │ │ ├── 20.png │ │ ├── 216.png │ │ ├── 256.png │ │ ├── 29.png │ │ ├── 32.png │ │ ├── 40.png │ │ ├── 48.png │ │ ├── 50.png │ │ ├── 512.png │ │ ├── 55.png │ │ ├── 57.png │ │ ├── 58.png │ │ ├── 60.png │ │ ├── 64.png │ │ ├── 72.png │ │ ├── 76.png │ │ ├── 80.png │ │ ├── 87.png │ │ ├── 88.png │ │ └── Contents.json │ ├── LaunchBackground.imageset │ │ ├── Contents.json │ │ ├── background.png │ │ └── darkbackground.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 ├── lib ├── api │ ├── api.dart │ ├── api_provider.dart │ ├── api_repository.dart │ ├── base_provider.dart │ └── utils.dart ├── app_binding.dart ├── di.dart ├── lang │ ├── en_US.dart │ ├── lang.dart │ ├── pt_BR.dart │ └── translation_service.dart ├── main.dart ├── models │ ├── app │ │ ├── app_account.dart │ │ ├── app_account.g.dart │ │ ├── secure_app_settings.dart │ │ └── secure_app_settings.g.dart │ ├── artifact.dart │ ├── artifact.g.dart │ ├── artifacts_file.dart │ ├── artifacts_file.g.dart │ ├── author.dart │ ├── author.g.dart │ ├── bank_card.dart │ ├── branch.dart │ ├── branch.g.dart │ ├── commit.dart │ ├── commit.g.dart │ ├── commit_stats.dart │ ├── commit_stats.g.dart │ ├── detailed_merge_request.dart │ ├── detailed_merge_request.g.dart │ ├── diff.dart │ ├── diff.g.dart │ ├── diff_refs.dart │ ├── diff_refs.g.dart │ ├── event.dart │ ├── event.g.dart │ ├── event_push_data.dart │ ├── event_push_data.g.dart │ ├── file.dart │ ├── file.g.dart │ ├── group.dart │ ├── group.g.dart │ ├── group_label.dart │ ├── group_label.g.dart │ ├── group_milestone.dart │ ├── group_milestone.g.dart │ ├── issue.dart │ ├── issue.g.dart │ ├── job.dart │ ├── job.g.dart │ ├── member.dart │ ├── member.g.dart │ ├── merge_request.dart │ ├── merge_request.g.dart │ ├── milestone.dart │ ├── milestone.g.dart │ ├── models.dart │ ├── note.dart │ ├── note.g.dart │ ├── permission_access.dart │ ├── permission_access.g.dart │ ├── pipeline.dart │ ├── pipeline.g.dart │ ├── project.dart │ ├── project.g.dart │ ├── project_label.dart │ ├── project_label.g.dart │ ├── project_milestone.dart │ ├── project_milestone.g.dart │ ├── project_namespace.dart │ ├── project_namespace.g.dart │ ├── project_permissions.dart │ ├── project_permissions.g.dart │ ├── project_snippet.dart │ ├── project_snippet.g.dart │ ├── references.dart │ ├── references.g.dart │ ├── request │ │ ├── access_token_request.dart │ │ ├── access_token_request.g.dart │ │ ├── access_token_request_password.dart │ │ ├── access_token_request_password.g.dart │ │ ├── add_group_request.dart │ │ ├── add_group_request.g.dart │ │ ├── add_member_request.dart │ │ ├── add_member_request.g.dart │ │ ├── add_update_milestone_request.dart │ │ ├── add_update_milestone_request.g.dart │ │ ├── add_update_snippet_request.dart │ │ ├── add_update_snippet_request.g.dart │ │ ├── branches_request.dart │ │ ├── branches_request.g.dart │ │ ├── commit_request.dart │ │ ├── commit_request.g.dart │ │ ├── commits_request.dart │ │ ├── commits_request.g.dart │ │ ├── create_label_request.dart │ │ ├── create_label_request.g.dart │ │ ├── create_mr_request.dart │ │ ├── create_mr_request.g.dart │ │ ├── create_project_request.dart │ │ ├── create_project_request.g.dart │ │ ├── diff_request.dart │ │ ├── diff_request.g.dart │ │ ├── events_request.dart │ │ ├── events_request.g.dart │ │ ├── file_request.dart │ │ ├── file_request.g.dart │ │ ├── find_users_request.dart │ │ ├── find_users_request.g.dart │ │ ├── group_labels_request.dart │ │ ├── group_labels_request.g.dart │ │ ├── group_projects_request.dart │ │ ├── group_projects_request.g.dart │ │ ├── groups_request.dart │ │ ├── groups_request.g.dart │ │ ├── issues_request.dart │ │ ├── issues_request.g.dart │ │ ├── jobs_request.dart │ │ ├── jobs_request.g.dart │ │ ├── latest_pipeline_request.dart │ │ ├── latest_pipeline_request.g.dart │ │ ├── list_pipelines_request.dart │ │ ├── list_pipelines_request.g.dart │ │ ├── members_request.dart │ │ ├── members_request.g.dart │ │ ├── merge_request_request.dart │ │ ├── merge_request_request.g.dart │ │ ├── milestones_request.dart │ │ ├── milestones_request.g.dart │ │ ├── new_issue_note_request.dart │ │ ├── new_issue_note_request.g.dart │ │ ├── notes_request.dart │ │ ├── notes_request.g.dart │ │ ├── pipeline_jobs_request.dart │ │ ├── pipeline_jobs_request.g.dart │ │ ├── project_labels_request.dart │ │ ├── project_labels_request.g.dart │ │ ├── project_request.dart │ │ ├── project_request.g.dart │ │ ├── projects_request.dart │ │ ├── projects_request.g.dart │ │ ├── refresh_token_request.dart │ │ ├── refresh_token_request.g.dart │ │ ├── snippets_request.dart │ │ ├── snippets_request.g.dart │ │ ├── starrers_request.dart │ │ ├── starrers_request.g.dart │ │ ├── tags_request.dart │ │ ├── tags_request.g.dart │ │ ├── tree_request.dart │ │ ├── tree_request.g.dart │ │ ├── update_issue_note_request.dart │ │ ├── update_issue_note_request.g.dart │ │ ├── update_issue_request.dart │ │ ├── update_issue_request.g.dart │ │ ├── update_mr_request.dart │ │ ├── update_mr_request.g.dart │ │ ├── update_project_label_request.dart │ │ └── update_project_label_request.g.dart │ ├── response │ │ ├── access_token_response.dart │ │ ├── access_token_response.g.dart │ │ └── paging_response.dart │ ├── runner.dart │ ├── runner.g.dart │ ├── snippet.dart │ ├── snippet.g.dart │ ├── starrers.dart │ ├── starrers.g.dart │ ├── tag.dart │ ├── tag.g.dart │ ├── tag_commit.dart │ ├── tag_commit.g.dart │ ├── tag_release.dart │ ├── tag_release.g.dart │ ├── task_completion_status.dart │ ├── task_completion_status.g.dart │ ├── time_stats.dart │ ├── time_stats.g.dart │ ├── tree.dart │ ├── tree.g.dart │ ├── types.dart │ ├── user.dart │ └── user.g.dart ├── modules │ ├── about │ │ ├── about.dart │ │ ├── about_binding.dart │ │ ├── about_controller.dart │ │ └── about_screen.dart │ ├── accounts_intern │ │ ├── account_details_screen.dart │ │ ├── accounts.dart │ │ ├── accounts_binding.dart │ │ ├── accounts_controller.dart │ │ └── accounts_screen.dart │ ├── add_members │ │ ├── add_members.dart │ │ ├── add_members_binding.dart │ │ ├── add_members_controller.dart │ │ └── add_members_screen.dart │ ├── auth │ │ ├── auth.dart │ │ ├── auth_binding.dart │ │ ├── auth_controller.dart │ │ └── auth_screen_standard.dart │ ├── branches │ │ ├── branches.dart │ │ ├── branches_binding.dart │ │ ├── branches_controller.dart │ │ └── branches_screen.dart │ ├── code_view │ │ ├── code_view.dart │ │ ├── code_view_binding.dart │ │ ├── code_view_controller.dart │ │ └── code_view_screen.dart │ ├── commit │ │ ├── commit.dart │ │ ├── commit_binding.dart │ │ ├── commit_controller.dart │ │ └── commit_screen.dart │ ├── commits │ │ ├── commits.dart │ │ ├── commits_binding.dart │ │ ├── commits_controller.dart │ │ └── commits_screen.dart │ ├── create_issue │ │ ├── create_issue.dart │ │ ├── create_issue_binding.dart │ │ ├── create_issue_controller.dart │ │ └── create_issue_screen.dart │ ├── create_merge_request │ │ ├── create_merge_request.dart │ │ ├── create_merge_request_binding.dart │ │ ├── create_merge_request_controller.dart │ │ └── create_merge_request_screen.dart │ ├── create_milestone │ │ ├── create_milestone.dart │ │ ├── create_milestone_binding.dart │ │ ├── create_milestone_controller.dart │ │ └── create_milestone_screen.dart │ ├── create_project │ │ ├── create_project.dart │ │ ├── create_project_binding.dart │ │ ├── create_project_controller.dart │ │ └── create_project_screen.dart │ ├── create_project_label │ │ ├── create_project_label.dart │ │ ├── create_project_label_binding.dart │ │ ├── create_project_label_controller.dart │ │ └── create_project_label_screen.dart │ ├── create_project_snippet │ │ ├── create_project_snippet.dart │ │ ├── create_project_snippet_binding.dart │ │ ├── create_project_snippet_controller.dart │ │ └── create_project_snippet_screen.dart │ ├── edit_issue │ │ ├── edit_issue.dart │ │ ├── edit_issue_binding.dart │ │ ├── edit_issue_controller.dart │ │ └── edit_issue_screen.dart │ ├── edit_issue_note │ │ ├── edit_issue_note.dart │ │ ├── edit_issue_note_binding.dart │ │ ├── edit_issue_note_controller.dart │ │ └── edit_issue_note_screen.dart │ ├── edit_merge_request │ │ ├── edit_merge_request.dart │ │ ├── edit_merge_request_binding.dart │ │ ├── edit_merge_request_controller.dart │ │ └── edit_merge_request_screen.dart │ ├── edit_milestone │ │ ├── edit_milestone.dart │ │ ├── edit_milestone_binding.dart │ │ ├── edit_milestone_controller.dart │ │ └── edit_milestone_screen.dart │ ├── edit_project │ │ ├── edit_project.dart │ │ ├── edit_project_binding.dart │ │ ├── edit_project_controller.dart │ │ └── edit_project_screen.dart │ ├── edit_project_label │ │ ├── edit_project_label.dart │ │ ├── edit_project_label_binding.dart │ │ ├── edit_project_label_controller.dart │ │ └── edit_project_label_screen.dart │ ├── edit_project_snippet │ │ ├── edit_project_snippet.dart │ │ ├── edit_project_snippet_binding.dart │ │ ├── edit_project_snippet_controller.dart │ │ └── edit_project_snippet_screen.dart │ ├── groups │ │ ├── group_details_screen.dart │ │ ├── groups.dart │ │ ├── groups_binding.dart │ │ ├── groups_controller.dart │ │ ├── groups_screen.dart │ │ └── new_group_screen.dart │ ├── home │ │ ├── home.dart │ │ ├── home_binding.dart │ │ ├── home_controller.dart │ │ ├── home_screen.dart │ │ └── tabs │ │ │ ├── events_tab.dart │ │ │ ├── issues_tab.dart │ │ │ ├── merge_reqests_tab.dart │ │ │ ├── projects_tab.dart │ │ │ └── tabs.dart │ ├── image_viewer │ │ ├── image_viewer.dart │ │ ├── image_viewer_binding.dart │ │ ├── image_viewer_controller.dart │ │ └── image_viewer_screen.dart │ ├── issue │ │ ├── issue.dart │ │ ├── issue_binding.dart │ │ ├── issue_controller.dart │ │ └── issue_screen.dart │ ├── issue_notes │ │ ├── issue_notes.dart │ │ ├── issue_notes_binding.dart │ │ ├── issue_notes_controller.dart │ │ └── issue_notes_screen.dart │ ├── issue_related_requests │ │ ├── issue_related_merge_requests.dart │ │ ├── issue_related_merge_requests_binding.dart │ │ ├── issue_related_merge_requests_controller.dart │ │ └── issue_related_merge_requests_screen.dart │ ├── issues │ │ ├── issues.dart │ │ ├── issues_binding.dart │ │ ├── issues_controller.dart │ │ └── issues_screen.dart │ ├── md_view │ │ ├── md_view.dart │ │ ├── md_view_binding.dart │ │ ├── md_view_controller.dart │ │ └── md_view_screen.dart │ ├── member_details │ │ ├── member_details.dart │ │ └── member_details_screen.dart │ ├── merge_request │ │ ├── merge_request.dart │ │ ├── merge_request_binding.dart │ │ ├── merge_request_controller.dart │ │ └── merge_request_screen.dart │ ├── merge_request_notes │ │ ├── merge_request_notes.dart │ │ ├── merge_request_notes_binding.dart │ │ ├── merge_request_notes_controller.dart │ │ └── merge_request_notes_screen.dart │ ├── merge_requests │ │ ├── merge_requests.dart │ │ ├── merge_requests_binding.dart │ │ ├── merge_requests_controller.dart │ │ └── merge_requests_screen.dart │ ├── milestone │ │ ├── milestone.dart │ │ ├── milestone_binding.dart │ │ ├── milestone_controller.dart │ │ └── milestone_screen.dart │ ├── milestones │ │ ├── milestones.dart │ │ ├── milestones_binding.dart │ │ ├── milestones_controller.dart │ │ └── milestones_screen.dart │ ├── project_activity │ │ ├── project_activity.dart │ │ ├── project_activity_binding.dart │ │ ├── project_activity_controller.dart │ │ └── project_activity_screen.dart │ ├── project_details │ │ ├── project_details.dart │ │ ├── project_details_binding.dart │ │ ├── project_details_controller.dart │ │ ├── project_details_screen.dart │ │ └── project_menu_item.dart │ ├── project_labels │ │ ├── project_labels.dart │ │ ├── project_labels_binding.dart │ │ ├── project_labels_controller.dart │ │ └── project_labels_screen.dart │ ├── project_members │ │ ├── project_members.dart │ │ ├── project_members_binding.dart │ │ ├── project_members_controller.dart │ │ └── project_members_screen.dart │ ├── project_pipelines │ │ ├── project_pipelines.dart │ │ ├── project_pipelines_binding.dart │ │ ├── project_pipelines_controller.dart │ │ └── project_pipelines_screen.dart │ ├── project_snippet │ │ ├── project_snippet.dart │ │ ├── project_snippet_binding.dart │ │ ├── project_snippet_controller.dart │ │ └── project_snippet_screen.dart │ ├── project_snippets │ │ ├── project_snippets.dart │ │ ├── project_snippets_binding.dart │ │ ├── project_snippets_controller.dart │ │ └── project_snippets_screen.dart │ ├── projects │ │ ├── projects.dart │ │ ├── projects_binding.dart │ │ ├── projects_controller.dart │ │ └── projects_screen.dart │ ├── settings │ │ ├── settings.dart │ │ ├── settings_binding.dart │ │ ├── settings_controller.dart │ │ └── settings_screen.dart │ ├── starrers │ │ ├── starrers.dart │ │ ├── starrers_binding.dart │ │ ├── starrers_controller.dart │ │ └── starrers_screen.dart │ └── tree_view │ │ ├── tree_view.dart │ │ ├── tree_view_binding.dart │ │ ├── tree_view_controller.dart │ │ └── tree_view_screen.dart ├── routes │ ├── app_pages.dart │ ├── app_routes.dart │ └── routes.dart ├── shared │ ├── constants │ │ ├── colors.dart │ │ ├── common.dart │ │ ├── constants.dart │ │ ├── secure_storage.dart │ │ └── sp_storage.dart │ ├── data │ │ ├── data.dart │ │ ├── repository.dart │ │ ├── secure_storage.dart │ │ └── sp_storage.dart │ ├── flutter_highlight │ │ ├── flutter_highlight.dart │ │ ├── theme_map.dart │ │ └── themes │ │ │ ├── a11y-dark.dart │ │ │ ├── a11y-light.dart │ │ │ ├── agate.dart │ │ │ ├── an-old-hope.dart │ │ │ ├── androidstudio.dart │ │ │ ├── arduino-light.dart │ │ │ ├── arta.dart │ │ │ ├── ascetic.dart │ │ │ ├── atelier-cave-dark.dart │ │ │ ├── atelier-cave-light.dart │ │ │ ├── atelier-dune-dark.dart │ │ │ ├── atelier-dune-light.dart │ │ │ ├── atelier-estuary-dark.dart │ │ │ ├── atelier-estuary-light.dart │ │ │ ├── atelier-forest-dark.dart │ │ │ ├── atelier-forest-light.dart │ │ │ ├── atelier-heath-dark.dart │ │ │ ├── atelier-heath-light.dart │ │ │ ├── atelier-lakeside-dark.dart │ │ │ ├── atelier-lakeside-light.dart │ │ │ ├── atelier-plateau-dark.dart │ │ │ ├── atelier-plateau-light.dart │ │ │ ├── atelier-savanna-dark.dart │ │ │ ├── atelier-savanna-light.dart │ │ │ ├── atelier-seaside-dark.dart │ │ │ ├── atelier-seaside-light.dart │ │ │ ├── atelier-sulphurpool-dark.dart │ │ │ ├── atelier-sulphurpool-light.dart │ │ │ ├── atom-one-dark-reasonable.dart │ │ │ ├── atom-one-dark.dart │ │ │ ├── atom-one-light.dart │ │ │ ├── brown-paper.dart │ │ │ ├── codepen-embed.dart │ │ │ ├── color-brewer.dart │ │ │ ├── darcula.dart │ │ │ ├── dark.dart │ │ │ ├── default.dart │ │ │ ├── docco.dart │ │ │ ├── dracula.dart │ │ │ ├── far.dart │ │ │ ├── foundation.dart │ │ │ ├── github-gist.dart │ │ │ ├── github.dart │ │ │ ├── gml.dart │ │ │ ├── googlecode.dart │ │ │ ├── gradient-dark.dart │ │ │ ├── grayscale.dart │ │ │ ├── gruvbox-dark.dart │ │ │ ├── gruvbox-light.dart │ │ │ ├── hopscotch.dart │ │ │ ├── hybrid.dart │ │ │ ├── idea.dart │ │ │ ├── ir-black.dart │ │ │ ├── isbl-editor-dark.dart │ │ │ ├── isbl-editor-light.dart │ │ │ ├── kimbie.dark.dart │ │ │ ├── kimbie.light.dart │ │ │ ├── lightfair.dart │ │ │ ├── magula.dart │ │ │ ├── mono-blue.dart │ │ │ ├── monokai-sublime.dart │ │ │ ├── monokai.dart │ │ │ ├── night-owl.dart │ │ │ ├── nord.dart │ │ │ ├── obsidian.dart │ │ │ ├── ocean.dart │ │ │ ├── paraiso-dark.dart │ │ │ ├── paraiso-light.dart │ │ │ ├── pojoaque.dart │ │ │ ├── purebasic.dart │ │ │ ├── qtcreator_dark.dart │ │ │ ├── qtcreator_light.dart │ │ │ ├── railscasts.dart │ │ │ ├── rainbow.dart │ │ │ ├── routeros.dart │ │ │ ├── school-book.dart │ │ │ ├── shades-of-purple.dart │ │ │ ├── solarized-dark.dart │ │ │ ├── solarized-light.dart │ │ │ ├── sunburst.dart │ │ │ ├── tomorrow-night-blue.dart │ │ │ ├── tomorrow-night-bright.dart │ │ │ ├── tomorrow-night-eighties.dart │ │ │ ├── tomorrow-night.dart │ │ │ ├── tomorrow.dart │ │ │ ├── vs.dart │ │ │ ├── vs2015.dart │ │ │ ├── xcode.dart │ │ │ ├── xt256.dart │ │ │ └── zenburn.dart │ ├── highlight │ │ ├── highlight.dart │ │ ├── highlight_core.dart │ │ ├── languages │ │ │ ├── 1c.dart │ │ │ ├── abnf.dart │ │ │ ├── accesslog.dart │ │ │ ├── actionscript.dart │ │ │ ├── ada.dart │ │ │ ├── all.dart │ │ │ ├── angelscript.dart │ │ │ ├── apache.dart │ │ │ ├── applescript.dart │ │ │ ├── arcade.dart │ │ │ ├── arduino.dart │ │ │ ├── armasm.dart │ │ │ ├── asciidoc.dart │ │ │ ├── aspectj.dart │ │ │ ├── autohotkey.dart │ │ │ ├── autoit.dart │ │ │ ├── avrasm.dart │ │ │ ├── awk.dart │ │ │ ├── axapta.dart │ │ │ ├── bash.dart │ │ │ ├── basic.dart │ │ │ ├── bnf.dart │ │ │ ├── brainfuck.dart │ │ │ ├── cal.dart │ │ │ ├── capnproto.dart │ │ │ ├── ceylon.dart │ │ │ ├── clean.dart │ │ │ ├── clojure-repl.dart │ │ │ ├── clojure.dart │ │ │ ├── cmake.dart │ │ │ ├── coffeescript.dart │ │ │ ├── coq.dart │ │ │ ├── cos.dart │ │ │ ├── cpp.dart │ │ │ ├── crmsh.dart │ │ │ ├── crystal.dart │ │ │ ├── cs.dart │ │ │ ├── csp.dart │ │ │ ├── css.dart │ │ │ ├── d.dart │ │ │ ├── dart.dart │ │ │ ├── delphi.dart │ │ │ ├── diff.dart │ │ │ ├── django.dart │ │ │ ├── dns.dart │ │ │ ├── dockerfile.dart │ │ │ ├── dos.dart │ │ │ ├── dsconfig.dart │ │ │ ├── dts.dart │ │ │ ├── dust.dart │ │ │ ├── ebnf.dart │ │ │ ├── elixir.dart │ │ │ ├── elm.dart │ │ │ ├── erb.dart │ │ │ ├── erlang-repl.dart │ │ │ ├── erlang.dart │ │ │ ├── excel.dart │ │ │ ├── fix.dart │ │ │ ├── flix.dart │ │ │ ├── fortran.dart │ │ │ ├── fsharp.dart │ │ │ ├── gams.dart │ │ │ ├── gauss.dart │ │ │ ├── gcode.dart │ │ │ ├── gherkin.dart │ │ │ ├── glsl.dart │ │ │ ├── gml.dart │ │ │ ├── gn.dart │ │ │ ├── go.dart │ │ │ ├── golo.dart │ │ │ ├── gradle.dart │ │ │ ├── graphql.dart │ │ │ ├── groovy.dart │ │ │ ├── haml.dart │ │ │ ├── handlebars.dart │ │ │ ├── haskell.dart │ │ │ ├── haxe.dart │ │ │ ├── hsp.dart │ │ │ ├── htmlbars.dart │ │ │ ├── http.dart │ │ │ ├── hy.dart │ │ │ ├── inform7.dart │ │ │ ├── ini.dart │ │ │ ├── irpf90.dart │ │ │ ├── isbl.dart │ │ │ ├── java.dart │ │ │ ├── javascript.dart │ │ │ ├── jboss-cli.dart │ │ │ ├── json.dart │ │ │ ├── julia-repl.dart │ │ │ ├── julia.dart │ │ │ ├── kotlin.dart │ │ │ ├── lasso.dart │ │ │ ├── ldif.dart │ │ │ ├── leaf.dart │ │ │ ├── less.dart │ │ │ ├── lisp.dart │ │ │ ├── livecodeserver.dart │ │ │ ├── livescript.dart │ │ │ ├── llvm.dart │ │ │ ├── lsl.dart │ │ │ ├── lua.dart │ │ │ ├── makefile.dart │ │ │ ├── markdown.dart │ │ │ ├── mathematica.dart │ │ │ ├── matlab.dart │ │ │ ├── maxima.dart │ │ │ ├── mel.dart │ │ │ ├── mercury.dart │ │ │ ├── mipsasm.dart │ │ │ ├── mizar.dart │ │ │ ├── mojolicious.dart │ │ │ ├── monkey.dart │ │ │ ├── moonscript.dart │ │ │ ├── n1ql.dart │ │ │ ├── nginx.dart │ │ │ ├── nimrod.dart │ │ │ ├── nix.dart │ │ │ ├── nsis.dart │ │ │ ├── objectivec.dart │ │ │ ├── ocaml.dart │ │ │ ├── openscad.dart │ │ │ ├── oxygene.dart │ │ │ ├── parser3.dart │ │ │ ├── perl.dart │ │ │ ├── pf.dart │ │ │ ├── pgsql.dart │ │ │ ├── php.dart │ │ │ ├── plaintext.dart │ │ │ ├── pony.dart │ │ │ ├── powershell.dart │ │ │ ├── processing.dart │ │ │ ├── profile.dart │ │ │ ├── prolog.dart │ │ │ ├── properties.dart │ │ │ ├── protobuf.dart │ │ │ ├── puppet.dart │ │ │ ├── purebasic.dart │ │ │ ├── python.dart │ │ │ ├── q.dart │ │ │ ├── qml.dart │ │ │ ├── r.dart │ │ │ ├── reasonml.dart │ │ │ ├── rib.dart │ │ │ ├── roboconf.dart │ │ │ ├── routeros.dart │ │ │ ├── rsl.dart │ │ │ ├── ruby.dart │ │ │ ├── ruleslanguage.dart │ │ │ ├── rust.dart │ │ │ ├── sas.dart │ │ │ ├── scala.dart │ │ │ ├── scheme.dart │ │ │ ├── scilab.dart │ │ │ ├── scss.dart │ │ │ ├── shell.dart │ │ │ ├── smali.dart │ │ │ ├── smalltalk.dart │ │ │ ├── sml.dart │ │ │ ├── solidity.dart │ │ │ ├── sqf.dart │ │ │ ├── sql.dart │ │ │ ├── stan.dart │ │ │ ├── stata.dart │ │ │ ├── step21.dart │ │ │ ├── stylus.dart │ │ │ ├── subunit.dart │ │ │ ├── swift.dart │ │ │ ├── taggerscript.dart │ │ │ ├── tap.dart │ │ │ ├── tcl.dart │ │ │ ├── tex.dart │ │ │ ├── thrift.dart │ │ │ ├── tp.dart │ │ │ ├── twig.dart │ │ │ ├── typescript.dart │ │ │ ├── vala.dart │ │ │ ├── vbnet.dart │ │ │ ├── vbscript-html.dart │ │ │ ├── vbscript.dart │ │ │ ├── verilog.dart │ │ │ ├── vhdl.dart │ │ │ ├── vim.dart │ │ │ ├── vue.dart │ │ │ ├── x86asm.dart │ │ │ ├── xl.dart │ │ │ ├── xml.dart │ │ │ ├── xquery.dart │ │ │ ├── yaml.dart │ │ │ └── zephir.dart │ │ └── src │ │ │ ├── common_modes.dart │ │ │ ├── highlight.dart │ │ │ ├── mode.dart │ │ │ ├── node.dart │ │ │ ├── result.dart │ │ │ └── utils.dart │ ├── http_controller.dart │ ├── paging_controller.dart │ ├── shared.dart │ ├── utils │ │ ├── common_widget.dart │ │ ├── delayed_request.dart │ │ ├── focus.dart │ │ ├── generics_utils.dart │ │ ├── navigator_helper.dart │ │ ├── regex.dart │ │ ├── size_config.dart │ │ └── utils.dart │ └── widgets │ │ ├── app_drawer.dart │ │ ├── app_highlight_view.dart │ │ ├── app_markdown_view.dart │ │ ├── color_label.dart │ │ ├── cross_fade.dart │ │ ├── datetime_field.dart │ │ ├── drawer_list_tile.dart │ │ ├── drawer_list_tile_divider.dart │ │ ├── empty_widget.dart │ │ ├── event_description_label.dart │ │ ├── http_error_widget.dart │ │ ├── http_future_builder.dart │ │ ├── http_token_expired_widget.dart │ │ ├── input_field.dart │ │ ├── list_avatar.dart │ │ ├── list_visibility_image_avatar.dart │ │ ├── list_visibility_text_avatar.dart │ │ ├── loading_widget.dart │ │ ├── milestone_state_label.dart │ │ ├── multiline_input_field.dart │ │ ├── native_widgets.dart │ │ ├── question_message_preset.dart │ │ ├── syntax_highlighter.dart │ │ ├── widgets.dart │ │ └── x_elevated_button.dart └── theme │ ├── theme.dart │ ├── theme_data.dart │ └── theme_utils.dart ├── linux ├── .gitignore ├── CMakeLists.txt ├── flutter │ ├── CMakeLists.txt │ ├── generated_plugin_registrant.cc │ ├── generated_plugin_registrant.h │ └── generated_plugins.cmake ├── main.cc ├── my_application.cc └── my_application.h ├── macos ├── .gitignore ├── Flutter │ ├── Flutter-Debug.xcconfig │ ├── Flutter-Release.xcconfig │ └── GeneratedPluginRegistrant.swift ├── Podfile ├── Podfile.lock ├── 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 ├── release_android.bat ├── web ├── favicon.png ├── icons │ ├── Icon-192.png │ ├── Icon-512.png │ ├── Icon-maskable-192.png │ └── Icon-maskable-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 ├── runner.exe.manifest ├── utils.cpp ├── utils.h ├── win32_window.cpp └── win32_window.h /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: thelooter 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: thelooter 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 12 | polar: # Replace with a single Polar username 13 | buy_me_a_coffee: # Replace with a single Buy Me a Coffee username 14 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 15 | -------------------------------------------------------------------------------- /.github/workflows/flutter.yml: -------------------------------------------------------------------------------- 1 | name: Flutter 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | 11 | jobs: 12 | build: 13 | name: Build 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout code 17 | uses: actions/checkout@v2 18 | - name: Set up Flutter 19 | uses: subosito/flutter-action@v1 20 | - run: flutter pub get 21 | 22 | lint: 23 | name: Lint 24 | runs-on: ubuntu-latest 25 | steps: 26 | - name: Checkout code 27 | uses: actions/checkout@v2 28 | - name: Set up Flutter 29 | uses: subosito/flutter-action@v1 30 | - run: flutter pub get 31 | - name: Analyze Dart 32 | uses: zgosalvez/github-actions-analyze-dart@v2 -------------------------------------------------------------------------------- /.github/workflows/verify-gradle-wrapper.yml: -------------------------------------------------------------------------------- 1 | name: "Validate Gradle Wrapper" 2 | 3 | on: 4 | push: 5 | 6 | jobs: 7 | validation: 8 | name: "Validation" 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v4 12 | - uses: gradle/actions/wrapper-validation@v3 -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "**/*.g.dart": true 4 | }, 5 | "dart.flutterSdkPath": ".fvm/versions/3.24.1" 6 | } -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | /.gradle 2 | /captures/ 3 | /gradlew 4 | /gradlew.bat 5 | /local.properties 6 | GeneratedPluginRegistrant.java 7 | 8 | # Remember to never publicly share your keystore. 9 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 10 | key.properties 11 | **/*.keystore 12 | **/*.jks 13 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/labplus_for_gitlab/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package dev.labplus.app 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/drawable-hdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/drawable-mdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-night-v21/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/drawable-night-v21/background.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-night-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-night/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/drawable-night/background.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-night/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-v21/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/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 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/drawable-xhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/drawable-xxhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/drawable-xxxhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/drawable/background.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | } 7 | 8 | rootProject.buildDir = '../build' 9 | subprojects { 10 | project.buildDir = "${rootProject.buildDir}/${project.name}" 11 | } 12 | subprojects { 13 | project.evaluationDependsOn(':app') 14 | } 15 | 16 | tasks.register("clean", Delete) { 17 | delete rootProject.buildDir 18 | } 19 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /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-8.6-all.zip 7 | distributionSha256Sum=85719317abd2112f021d4f41f09ec370534ba288432065f4b477b6a3b652910d 8 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | def flutterSdkPath = { 3 | def properties = new Properties() 4 | file("local.properties").withInputStream { properties.load(it) } 5 | def flutterSdkPath = properties.getProperty("flutter.sdk") 6 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 7 | return flutterSdkPath 8 | }() 9 | 10 | includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") 11 | 12 | repositories { 13 | google() 14 | mavenCentral() 15 | gradlePluginPortal() 16 | } 17 | } 18 | 19 | plugins { 20 | id "dev.flutter.flutter-plugin-loader" version "1.0.0" 21 | id "com.android.application" version "8.3.1" apply false 22 | id "org.jetbrains.kotlin.android" version "1.9.23" apply false 23 | } 24 | 25 | include ":app" 26 | -------------------------------------------------------------------------------- /assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/assets/splash.png -------------------------------------------------------------------------------- /assets/splash_400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/assets/splash_400.png -------------------------------------------------------------------------------- /build_runner.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | fvm flutter pub run build_runner build --delete-conflicting-outputs -------------------------------------------------------------------------------- /docs/images/IMG_2854.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2854.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2855.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2855.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2856.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2856.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2857.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2857.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2858.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2858.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2861.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2861.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2862.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2862.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2863.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2863.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2876.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2876.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2886.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2886.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2887.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2887.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2936.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_2936.PNG -------------------------------------------------------------------------------- /docs/images/IMG_3133.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/IMG_3133.PNG -------------------------------------------------------------------------------- /docs/images/Simulator Screen Shot - iPad Pro (12.9-inch) (5th generation) - 2022-02-20 at 22.04.21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/docs/images/Simulator Screen Shot - iPad Pro (12.9-inch) (5th generation) - 2022-02-20 at 22.04.21.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/changelog/1.txt: -------------------------------------------------------------------------------- 1 | • Support für Fdroid hinzugefügt -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/full_description.txt: -------------------------------------------------------------------------------- 1 | Lab+ for Gitlab ist dein inoffizieller Begleiter für Gitlab. 2 | Interagiere mit deinen Repositories, Issue und Merge Requests und vielem mehr. 3 | 4 | Features: 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/icon.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/activity.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/activity_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/activity_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/auth.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/commits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/commits.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/commits_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/commits_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request-2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request-2_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request-2_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request-notes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request-notes.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request-notes_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request-notes_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-request_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-requests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-requests.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-requests_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/merge-requests_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/project.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/project_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/project_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/projects.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/images/phoneScreenshots/projects_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/de-DE/images/phoneScreenshots/projects_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/short_description.txt: -------------------------------------------------------------------------------- 1 | Dein inoffizíeller Begleiter für Gitlab -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/title.txt: -------------------------------------------------------------------------------- 1 | Lab+ for Gitlab -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelog/1.txt: -------------------------------------------------------------------------------- 1 | • Added Support for Fdroid -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/full_description.txt: -------------------------------------------------------------------------------- 1 | Lab+ for Gitlab is your unofficial Companion for Gitlab. 2 | Use it to view your Repositories and interact with Issues, Merge Requests and Source Code 3 | 4 | Features: 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/activity.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/activity_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/activity_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/auth.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/commits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/commits.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/commits_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/commits_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request-2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request-2_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request-2_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request-notes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request-notes.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request-notes_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request-notes_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/merge-request_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/merge-requests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/merge-requests.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/merge-requests_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/merge-requests_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/project.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/project_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/project_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/projects.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/projects_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fastlane/metadata/android/en-US/images/phoneScreenshots/projects_dark.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | Your unofficial Companion for Gitlab -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | Lab+ for Gitlab -------------------------------------------------------------------------------- /fonts/SourceCodePro-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-Black.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-BlackIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-BlackIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-Bold.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-BoldIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-BoldIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-ExtraLight.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-ExtraLightIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-ExtraLightIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-It.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-It.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-Light.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-LightIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-LightIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-Medium.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-MediumIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-MediumIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-Regular.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-Semibold.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-SemiboldIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/fonts/SourceCodePro-SemiboldIt.ttf -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /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 | 9.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/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/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.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/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/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 | -------------------------------------------------------------------------------- /lib/api/api.dart: -------------------------------------------------------------------------------- 1 | export 'base_provider.dart'; 2 | export 'api_provider.dart'; 3 | export 'api_repository.dart'; 4 | -------------------------------------------------------------------------------- /lib/app_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:labplus_for_gitlab/api/api.dart'; 2 | import 'package:get/get.dart'; 3 | import 'package:labplus_for_gitlab/shared/shared.dart'; 4 | 5 | class AppBinding extends Bindings { 6 | @override 7 | void dependencies() async { 8 | Get.put(ApiProvider(), permanent: true); 9 | Get.put(ApiRepository(apiProvider: Get.find()), 10 | permanent: true); 11 | 12 | Get.put(Repository(), permanent: true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lib/di.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 3 | 4 | class DenpendencyInjection { 5 | static Future init() async { 6 | Get.put(SecureStorage(), permanent: true); 7 | await Get.find().init(); 8 | 9 | Get.put(SPStorage(), permanent: true); 10 | await Get.find().init(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/lang/en_US.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: file_names 2 | 3 | const Map enUS = { 4 | 'covid': 'Corona Virus', 5 | 'total_confirmed': 'Total Confirmed', 6 | 'total_deaths': 'Total Deaths', 7 | 'fetch_country': 'Fetch by country', 8 | 'corona_by_country': 'Corona by country', 9 | 'total_infecteds': 'Total Infecteds', 10 | 'details': 'Details', 11 | 'total_recovered': 'Total Recovered', 12 | }; 13 | -------------------------------------------------------------------------------- /lib/lang/lang.dart: -------------------------------------------------------------------------------- 1 | export 'translation_service.dart'; 2 | -------------------------------------------------------------------------------- /lib/lang/pt_BR.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: file_names 2 | 3 | const Map ptBR = { 4 | 'covid': 'Corona Vírus', 5 | 'total_confirmed': 'Total confirmado', 6 | 'total_deaths': 'Total de mortes', 7 | 'fetch_country': 'Listar por país', 8 | 'corona_by_country': 'Corona por país', 9 | 'total_infecteds': 'Total de infectados', 10 | 'details': 'Detalhes', 11 | 'total_recovered': 'Total de recuperados' 12 | }; 13 | -------------------------------------------------------------------------------- /lib/lang/translation_service.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:get/get.dart'; 3 | 4 | import 'en_US.dart'; 5 | import 'pt_BR.dart'; 6 | 7 | class TranslationService extends Translations { 8 | static Locale? get locale => Get.deviceLocale; 9 | static const fallbackLocale = Locale('en', 'US'); 10 | @override 11 | Map> get keys => { 12 | 'en_US': enUS, 13 | 'pt_BR': ptBR, 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /lib/models/app/app_account.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | import 'dart:convert'; 3 | 4 | part 'app_account.g.dart'; 5 | 6 | @JsonSerializable() 7 | class AppAccount { 8 | int? userId; 9 | String? name; 10 | String? username; 11 | String? avatarUrl; 12 | String? baseUrl; 13 | String? accessToken; 14 | String? refreshToken; 15 | 16 | AppAccount({ 17 | this.userId = -1, 18 | this.name = "", 19 | this.username = "", 20 | this.avatarUrl = "", 21 | this.accessToken = "", 22 | this.refreshToken = "", 23 | this.baseUrl = "gitlab.com", 24 | }); 25 | 26 | String toJsonString() => json.encode(toJson()); 27 | 28 | factory AppAccount.fromJson(Map json) => 29 | _$AppAccountFromJson(json); 30 | 31 | Map toJson() => _$AppAccountToJson(this); 32 | } 33 | -------------------------------------------------------------------------------- /lib/models/app/secure_app_settings.dart: -------------------------------------------------------------------------------- 1 | import 'package:labplus_for_gitlab/models/app/app_account.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | import 'dart:convert'; 4 | 5 | part 'secure_app_settings.g.dart'; 6 | 7 | @JsonSerializable() 8 | class SecureAppSettings { 9 | List? accounts; 10 | int? defaultId; 11 | 12 | SecureAppSettings({ 13 | this.accounts, 14 | this.defaultId = -1, 15 | }); 16 | 17 | String toJsonString() => json.encode(toJson()); 18 | 19 | factory SecureAppSettings.fromJson(Map json) => 20 | _$SecureAppSettingsFromJson(json); 21 | 22 | Map toJson() => _$SecureAppSettingsToJson(this); 23 | } 24 | -------------------------------------------------------------------------------- /lib/models/app/secure_app_settings.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'secure_app_settings.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | SecureAppSettings _$SecureAppSettingsFromJson(Map json) => 10 | SecureAppSettings( 11 | accounts: (json['accounts'] as List?) 12 | ?.map((e) => AppAccount.fromJson(e as Map)) 13 | .toList(), 14 | defaultId: json['defaultId'] as int? ?? -1, 15 | ); 16 | 17 | Map _$SecureAppSettingsToJson(SecureAppSettings instance) => 18 | { 19 | 'accounts': instance.accounts, 20 | 'defaultId': instance.defaultId, 21 | }; 22 | -------------------------------------------------------------------------------- /lib/models/artifact.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'artifact.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class Artifact { 7 | final String? fileType; 8 | final int? size; 9 | final String? filename; 10 | final String? fileFormat; 11 | 12 | Artifact( 13 | this.fileType, 14 | this.size, 15 | this.filename, 16 | this.fileFormat, 17 | ); 18 | 19 | factory Artifact.fromJson(Map json) => _$ArtifactFromJson(json); 20 | 21 | Map toJson() => _$ArtifactToJson(this); 22 | } 23 | -------------------------------------------------------------------------------- /lib/models/artifact.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'artifact.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | Artifact _$ArtifactFromJson(Map json) => Artifact( 10 | json['file_type'] as String?, 11 | json['size'] as int?, 12 | json['filename'] as String?, 13 | json['file_format'] as String?, 14 | ); 15 | 16 | Map _$ArtifactToJson(Artifact instance) => { 17 | 'file_type': instance.fileType, 18 | 'size': instance.size, 19 | 'filename': instance.filename, 20 | 'file_format': instance.fileFormat, 21 | }; 22 | -------------------------------------------------------------------------------- /lib/models/artifacts_file.dart: -------------------------------------------------------------------------------- 1 | 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'artifacts_file.g.dart'; 5 | 6 | @JsonSerializable(fieldRename: FieldRename.snake) 7 | class ArtifactsFile { 8 | final String? filename; 9 | final int? size; 10 | 11 | ArtifactsFile(this.filename, this.size); 12 | 13 | factory ArtifactsFile.fromJson(Map json) => _$ArtifactsFileFromJson(json); 14 | 15 | Map toJson() => _$ArtifactsFileToJson(this); 16 | } -------------------------------------------------------------------------------- /lib/models/artifacts_file.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'artifacts_file.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ArtifactsFile _$ArtifactsFileFromJson(Map json) => 10 | ArtifactsFile( 11 | json['filename'] as String?, 12 | json['size'] as int?, 13 | ); 14 | 15 | Map _$ArtifactsFileToJson(ArtifactsFile instance) => 16 | { 17 | 'filename': instance.filename, 18 | 'size': instance.size, 19 | }; 20 | -------------------------------------------------------------------------------- /lib/models/author.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'author.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class Author { 7 | final int? id; 8 | final String? name; 9 | final String? username; 10 | final String? state; // AuthorState 11 | final String? avatarUrl; 12 | final String? webUrl; 13 | 14 | Author({ 15 | this.id, 16 | this.name = "", 17 | this.username = "", 18 | this.state = "", 19 | this.avatarUrl = "", 20 | this.webUrl = "", 21 | }); 22 | 23 | factory Author.fromJson(Map json) => _$AuthorFromJson(json); 24 | 25 | Map toJson() => _$AuthorToJson(this); 26 | } 27 | -------------------------------------------------------------------------------- /lib/models/branch.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'branch.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class Branch { 7 | final String? name; 8 | final bool? merged; 9 | final bool? protected; 10 | final String? webUrl; 11 | 12 | Branch({ 13 | this.name, 14 | this.merged, 15 | this.protected, 16 | this.webUrl, 17 | }); 18 | 19 | factory Branch.fromJson(Map json) => _$BranchFromJson(json); 20 | 21 | Map toJson() => _$BranchToJson(this); 22 | } 23 | -------------------------------------------------------------------------------- /lib/models/branch.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'branch.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | Branch _$BranchFromJson(Map json) => Branch( 10 | name: json['name'] as String?, 11 | merged: json['merged'] as bool?, 12 | protected: json['protected'] as bool?, 13 | webUrl: json['web_url'] as String?, 14 | ); 15 | 16 | Map _$BranchToJson(Branch instance) => { 17 | 'name': instance.name, 18 | 'merged': instance.merged, 19 | 'protected': instance.protected, 20 | 'web_url': instance.webUrl, 21 | }; 22 | -------------------------------------------------------------------------------- /lib/models/commit_stats.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'commit_stats.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class CommitStats { 7 | final int? additions; 8 | final int? deletions; 9 | final int? total; 10 | 11 | CommitStats({ 12 | this.additions, 13 | this.deletions, 14 | this.total, 15 | }); 16 | 17 | factory CommitStats.fromJson(Map json) => 18 | _$CommitStatsFromJson(json); 19 | 20 | Map toJson() => _$CommitStatsToJson(this); 21 | } 22 | -------------------------------------------------------------------------------- /lib/models/commit_stats.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'commit_stats.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | CommitStats _$CommitStatsFromJson(Map json) => CommitStats( 10 | additions: json['additions'] as int?, 11 | deletions: json['deletions'] as int?, 12 | total: json['total'] as int?, 13 | ); 14 | 15 | Map _$CommitStatsToJson(CommitStats instance) => 16 | { 17 | 'additions': instance.additions, 18 | 'deletions': instance.deletions, 19 | 'total': instance.total, 20 | }; 21 | -------------------------------------------------------------------------------- /lib/models/diff.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'diff.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class Diff { 7 | final String? diff; 8 | final String? newPath; 9 | final String? oldPath; 10 | final String? aMode; 11 | final String? bMode; 12 | final bool? newFile; 13 | final bool? renamedFile; 14 | final bool? deletedFile; 15 | 16 | Diff({ 17 | this.diff, 18 | this.newPath, 19 | this.oldPath, 20 | this.aMode, 21 | this.bMode, 22 | this.newFile, 23 | this.renamedFile, 24 | this.deletedFile, 25 | }); 26 | 27 | factory Diff.fromJson(Map json) => _$DiffFromJson(json); 28 | 29 | Map toJson() => _$DiffToJson(this); 30 | } 31 | -------------------------------------------------------------------------------- /lib/models/diff_refs.dart: -------------------------------------------------------------------------------- 1 | 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'diff_refs.g.dart'; 5 | 6 | @JsonSerializable(fieldRename: FieldRename.snake) 7 | class DiffRefs { 8 | final String? baseSha; 9 | final String? headSha; 10 | final String? startSha; 11 | 12 | DiffRefs({ 13 | this.baseSha, 14 | this.headSha, 15 | this.startSha, 16 | }); 17 | 18 | factory DiffRefs.fromJson(Map json) => _$DiffRefsFromJson(json); 19 | 20 | Map toJson() => _$DiffRefsToJson(this); 21 | } 22 | -------------------------------------------------------------------------------- /lib/models/diff_refs.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'diff_refs.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | DiffRefs _$DiffRefsFromJson(Map json) => DiffRefs( 10 | baseSha: json['base_sha'] as String?, 11 | headSha: json['head_sha'] as String?, 12 | startSha: json['start_sha'] as String?, 13 | ); 14 | 15 | Map _$DiffRefsToJson(DiffRefs instance) => { 16 | 'base_sha': instance.baseSha, 17 | 'head_sha': instance.headSha, 18 | 'start_sha': instance.startSha, 19 | }; 20 | -------------------------------------------------------------------------------- /lib/models/event_push_data.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'event_push_data.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class EventPushData { 7 | final int? commitCount; 8 | final String? action; 9 | final String? refType; 10 | final String? commitFrom; 11 | final String? commitTo; 12 | final String? ref; 13 | final String? commitTitle; 14 | final int? refCount; 15 | 16 | EventPushData({ 17 | this.commitCount, 18 | this.action, 19 | this.refType, 20 | this.commitFrom, 21 | this.commitTo, 22 | this.ref, 23 | this.commitTitle, 24 | this.refCount, 25 | }); 26 | 27 | factory EventPushData.fromJson(Map json) => 28 | _$EventPushDataFromJson(json); 29 | 30 | Map toJson() => _$EventPushDataToJson(this); 31 | } 32 | -------------------------------------------------------------------------------- /lib/models/file.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'file.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class File { 7 | final String? fileName; 8 | final String? filePath; 9 | final int? size; 10 | final String? ref; 11 | final String? blobId; 12 | final String? commitId; 13 | final String? lastCommitId; 14 | final String? content; 15 | 16 | File({ 17 | this.fileName = "", 18 | this.filePath = "", 19 | this.size = 0, 20 | this.ref = "", 21 | this.blobId = "", 22 | this.commitId = "", 23 | this.lastCommitId = "", 24 | this.content = "", 25 | }); 26 | 27 | factory File.fromJson(Map json) => _$FileFromJson(json); 28 | 29 | Map toJson() => _$FileToJson(this); 30 | } 31 | -------------------------------------------------------------------------------- /lib/models/permission_access.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'permission_access.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class PermissionAccess { 7 | final int? accessLevel; 8 | final int? notificationLevel; 9 | 10 | PermissionAccess({ 11 | this.accessLevel, 12 | this.notificationLevel, 13 | }); 14 | 15 | factory PermissionAccess.fromJson(Map json) => 16 | _$PermissionAccessFromJson(json); 17 | 18 | Map toJson() => _$PermissionAccessToJson(this); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/permission_access.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'permission_access.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | PermissionAccess _$PermissionAccessFromJson(Map json) => 10 | PermissionAccess( 11 | accessLevel: json['access_level'] as int?, 12 | notificationLevel: json['notification_level'] as int?, 13 | ); 14 | 15 | Map _$PermissionAccessToJson(PermissionAccess instance) => 16 | { 17 | 'access_level': instance.accessLevel, 18 | 'notification_level': instance.notificationLevel, 19 | }; 20 | -------------------------------------------------------------------------------- /lib/models/project_namespace.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'project_namespace.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class ProjectNamespace { 7 | final int? id; 8 | final String? name; 9 | final String? path; 10 | final String? fullPath; 11 | final String? avatarUrl; 12 | final String? webUrl; 13 | 14 | ProjectNamespace({ 15 | this.id, 16 | this.name, 17 | this.path, 18 | this.fullPath, 19 | this.avatarUrl, 20 | this.webUrl, 21 | }); 22 | 23 | factory ProjectNamespace.fromJson(Map json) => 24 | _$ProjectNamespaceFromJson(json); 25 | 26 | Map toJson() => _$ProjectNamespaceToJson(this); 27 | } 28 | -------------------------------------------------------------------------------- /lib/models/project_permissions.dart: -------------------------------------------------------------------------------- 1 | import 'package:labplus_for_gitlab/models/models.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'project_permissions.g.dart'; 5 | 6 | @JsonSerializable(fieldRename: FieldRename.snake) 7 | class ProjectPermissions { 8 | final PermissionAccess? projectAccess; 9 | final PermissionAccess? groupAccess; 10 | 11 | ProjectPermissions({ 12 | this.projectAccess, 13 | this.groupAccess, 14 | }); 15 | 16 | factory ProjectPermissions.fromJson(Map json) => 17 | _$ProjectPermissionsFromJson(json); 18 | 19 | Map toJson() => _$ProjectPermissionsToJson(this); 20 | } 21 | -------------------------------------------------------------------------------- /lib/models/references.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'references.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class References { 7 | final String? short; 8 | final String? relative; 9 | final String? full; 10 | 11 | References({ 12 | this.short, 13 | this.relative, 14 | this.full, 15 | }); 16 | 17 | factory References.fromJson(Map json) => 18 | _$ReferencesFromJson(json); 19 | 20 | Map toJson() => _$ReferencesToJson(this); 21 | } 22 | -------------------------------------------------------------------------------- /lib/models/references.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'references.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | References _$ReferencesFromJson(Map json) => References( 10 | short: json['short'] as String?, 11 | relative: json['relative'] as String?, 12 | full: json['full'] as String?, 13 | ); 14 | 15 | Map _$ReferencesToJson(References instance) => 16 | { 17 | 'short': instance.short, 18 | 'relative': instance.relative, 19 | 'full': instance.full, 20 | }; 21 | -------------------------------------------------------------------------------- /lib/models/request/access_token_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'access_token_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class AccessTokenReqest { 7 | final String clientId, 8 | clientSecret, 9 | code, 10 | grantType, 11 | redirectUri, 12 | codeVerifier; 13 | 14 | AccessTokenReqest({ 15 | required this.clientId, 16 | required this.clientSecret, 17 | required this.code, 18 | required this.grantType, 19 | required this.redirectUri, 20 | required this.codeVerifier, 21 | }); 22 | 23 | factory AccessTokenReqest.fromJson(Map json) => 24 | _$AccessTokenReqestFromJson(json); 25 | 26 | Map toJson() => _$AccessTokenReqestToJson(this); 27 | } 28 | -------------------------------------------------------------------------------- /lib/models/request/access_token_request_password.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'access_token_request_password.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class AccessTokenReqestPassword { 7 | final String grantType, username, password; 8 | 9 | AccessTokenReqestPassword({ 10 | required this.grantType, 11 | required this.username, 12 | required this.password, 13 | }); 14 | 15 | factory AccessTokenReqestPassword.fromJson(Map json) => 16 | _$AccessTokenReqestPasswordFromJson(json); 17 | 18 | Map toJson() => _$AccessTokenReqestPasswordToJson(this); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/request/access_token_request_password.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'access_token_request_password.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | AccessTokenReqestPassword _$AccessTokenReqestPasswordFromJson( 10 | Map json) => 11 | AccessTokenReqestPassword( 12 | grantType: json['grant_type'] as String, 13 | username: json['username'] as String, 14 | password: json['password'] as String, 15 | ); 16 | 17 | Map _$AccessTokenReqestPasswordToJson( 18 | AccessTokenReqestPassword instance) => 19 | { 20 | 'grant_type': instance.grantType, 21 | 'username': instance.username, 22 | 'password': instance.password, 23 | }; 24 | -------------------------------------------------------------------------------- /lib/models/request/add_group_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'add_group_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class AddGroupRequest { 7 | final String? name; 8 | final String? path; 9 | final String? visibility; // GitLabVisibility 10 | 11 | AddGroupRequest({ 12 | this.name, 13 | this.path, 14 | this.visibility, 15 | }); 16 | 17 | factory AddGroupRequest.fromJson(Map json) => 18 | _$AddGroupRequestFromJson(json); 19 | 20 | Map toJson() => _$AddGroupRequestToJson(this); 21 | } 22 | -------------------------------------------------------------------------------- /lib/models/request/add_member_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'add_member_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class AddMemberRequest { 7 | final int? id; 8 | final String? userId; // separated by commas 9 | final int? accessLevel; // MemberAccessLevel 10 | final String? expiresAt; // YEAR-MONTH-DAY 11 | final String? inviteSource; 12 | final int? tasksProjectId; 13 | 14 | AddMemberRequest({ 15 | this.id = -1, 16 | this.userId, 17 | this.accessLevel, 18 | this.expiresAt, 19 | this.inviteSource, 20 | this.tasksProjectId, 21 | }); 22 | 23 | factory AddMemberRequest.fromJson(Map json) => 24 | _$AddMemberRequestFromJson(json); 25 | 26 | Map toJson() => _$AddMemberRequestToJson(this); 27 | } 28 | -------------------------------------------------------------------------------- /lib/models/request/add_update_milestone_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'add_update_milestone_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class AddUpdateMilestoneRequest { 7 | final String? title; 8 | final String? description; 9 | final String? dueDate; 10 | final String? startDate; 11 | final String? stateEvent; // MilestoneStateEvent 12 | 13 | AddUpdateMilestoneRequest({ 14 | this.title, 15 | this.description, 16 | this.dueDate, 17 | this.startDate, 18 | this.stateEvent, 19 | }); 20 | 21 | factory AddUpdateMilestoneRequest.fromJson(Map json) => 22 | _$AddUpdateMilestoneRequestFromJson(json); 23 | 24 | Map toJson() => _$AddUpdateMilestoneRequestToJson(this); 25 | } 26 | -------------------------------------------------------------------------------- /lib/models/request/add_update_snippet_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'add_update_snippet_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class AddUpdateSnippetRequest { 7 | final String? title; 8 | final String? fileName; 9 | final String? content; 10 | final String? description; 11 | final String? visibility; // GitLabVisibility 12 | 13 | AddUpdateSnippetRequest({ 14 | this.title, 15 | this.fileName, 16 | this.content, 17 | this.description, 18 | this.visibility, 19 | }); 20 | 21 | factory AddUpdateSnippetRequest.fromJson(Map json) => 22 | _$AddUpdateSnippetRequestFromJson(json); 23 | 24 | Map toJson() => _$AddUpdateSnippetRequestToJson(this); 25 | } 26 | -------------------------------------------------------------------------------- /lib/models/request/branches_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'branches_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class BranchesRequest { 7 | final int? perPage; 8 | final int? page; 9 | 10 | final String? id; 11 | final String? search; 12 | 13 | BranchesRequest({ 14 | this.perPage, 15 | this.page, 16 | this.id, 17 | this.search, 18 | }); 19 | 20 | factory BranchesRequest.fromJson(Map json) => 21 | _$BranchesRequestFromJson(json); 22 | 23 | Map toJson() => _$BranchesRequestToJson(this); 24 | } 25 | -------------------------------------------------------------------------------- /lib/models/request/commit_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'commit_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class CommitReqest { 7 | final bool? stats; 8 | 9 | CommitReqest({ 10 | this.stats, 11 | }); 12 | 13 | factory CommitReqest.fromJson(Map json) => 14 | _$CommitReqestFromJson(json); 15 | 16 | Map toJson() => _$CommitReqestToJson(this); 17 | } 18 | -------------------------------------------------------------------------------- /lib/models/request/commit_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'commit_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | CommitReqest _$CommitReqestFromJson(Map json) => CommitReqest( 10 | stats: json['stats'] as bool?, 11 | ); 12 | 13 | Map _$CommitReqestToJson(CommitReqest instance) { 14 | final val = {}; 15 | 16 | void writeNotNull(String key, dynamic value) { 17 | if (value != null) { 18 | val[key] = value; 19 | } 20 | } 21 | 22 | writeNotNull('stats', instance.stats); 23 | return val; 24 | } 25 | -------------------------------------------------------------------------------- /lib/models/request/create_label_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'create_label_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class CreateLabelRequest { 7 | final String? name; 8 | final String? color; 9 | final String? description; 10 | final int? priority; // for project only 11 | 12 | CreateLabelRequest({ 13 | this.name, 14 | this.color, 15 | this.description, 16 | this.priority, 17 | }); 18 | 19 | factory CreateLabelRequest.fromJson(Map json) => 20 | _$CreateLabelRequestFromJson(json); 21 | 22 | Map toJson() => _$CreateLabelRequestToJson(this); 23 | } 24 | -------------------------------------------------------------------------------- /lib/models/request/diff_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'diff_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class DiffRequest { 7 | final int? perPage; 8 | final int? page; 9 | 10 | DiffRequest({ 11 | this.perPage, 12 | this.page, 13 | }); 14 | 15 | factory DiffRequest.fromJson(Map json) => 16 | _$DiffRequestFromJson(json); 17 | 18 | Map toJson() => _$DiffRequestToJson(this); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/request/diff_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'diff_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | DiffRequest _$DiffRequestFromJson(Map json) => DiffRequest( 10 | perPage: json['per_page'] as int?, 11 | page: json['page'] as int?, 12 | ); 13 | 14 | Map _$DiffRequestToJson(DiffRequest instance) { 15 | final val = {}; 16 | 17 | void writeNotNull(String key, dynamic value) { 18 | if (value != null) { 19 | val[key] = value; 20 | } 21 | } 22 | 23 | writeNotNull('per_page', instance.perPage); 24 | writeNotNull('page', instance.page); 25 | return val; 26 | } 27 | -------------------------------------------------------------------------------- /lib/models/request/events_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'events_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class EventsRequest { 7 | final int? perPage; 8 | final int? page; 9 | 10 | final String? action; 11 | final String? targetType; // EventTargetTypes 12 | final DateTime? before; // YYYY-MM-DD 13 | final DateTime? after; // YYYY-MM-DD 14 | final String? scope; 15 | final String? sort; // asc, desc 16 | 17 | EventsRequest({ 18 | this.perPage, 19 | this.page, 20 | this.action, 21 | this.targetType, 22 | this.before, 23 | this.after, 24 | this.scope, 25 | this.sort, 26 | }); 27 | 28 | factory EventsRequest.fromJson(Map json) => 29 | _$EventsRequestFromJson(json); 30 | 31 | Map toJson() => _$EventsRequestToJson(this); 32 | } 33 | -------------------------------------------------------------------------------- /lib/models/request/file_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'file_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class FileRequest { 7 | final String? ref; 8 | 9 | FileRequest({ 10 | this.ref, 11 | }); 12 | 13 | factory FileRequest.fromJson(Map json) => 14 | _$FileRequestFromJson(json); 15 | 16 | Map toJson() => _$FileRequestToJson(this); 17 | } 18 | -------------------------------------------------------------------------------- /lib/models/request/file_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'file_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | FileRequest _$FileRequestFromJson(Map json) => FileRequest( 10 | ref: json['ref'] as String?, 11 | ); 12 | 13 | Map _$FileRequestToJson(FileRequest instance) { 14 | final val = {}; 15 | 16 | void writeNotNull(String key, dynamic value) { 17 | if (value != null) { 18 | val[key] = value; 19 | } 20 | } 21 | 22 | writeNotNull('ref', instance.ref); 23 | return val; 24 | } 25 | -------------------------------------------------------------------------------- /lib/models/request/find_users_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'find_users_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class FindUsersRequest { 7 | final int? perPage; 8 | final int? page; 9 | final String? search; 10 | final bool? active; 11 | final bool? blocked; 12 | final bool? external; 13 | 14 | FindUsersRequest({ 15 | this.perPage, 16 | this.page, 17 | this.search, 18 | this.active, 19 | this.blocked, 20 | this.external, 21 | }); 22 | 23 | factory FindUsersRequest.fromJson(Map json) => 24 | _$FindUsersRequestFromJson(json); 25 | 26 | Map toJson() => _$FindUsersRequestToJson(this); 27 | } 28 | -------------------------------------------------------------------------------- /lib/models/request/group_labels_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'group_labels_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class GroupLabelsRequest { 7 | final int? perPage; 8 | final int? page; 9 | final bool? withCounts; 10 | final bool? includeAncestorGroups; 11 | final bool? includeDescendantGroups; 12 | final bool? onlyGroupLabels; 13 | final String? search; 14 | 15 | GroupLabelsRequest({ 16 | this.perPage, 17 | this.page, 18 | this.withCounts, 19 | this.includeAncestorGroups, 20 | this.includeDescendantGroups, 21 | this.onlyGroupLabels, 22 | this.search, 23 | }); 24 | 25 | factory GroupLabelsRequest.fromJson(Map json) => 26 | _$GroupLabelsRequestFromJson(json); 27 | 28 | Map toJson() => _$GroupLabelsRequestToJson(this); 29 | } 30 | -------------------------------------------------------------------------------- /lib/models/request/jobs_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'jobs_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class ListProjectJobsRequest { 7 | final String? scope; 8 | 9 | ListProjectJobsRequest(this.scope); 10 | 11 | factory ListProjectJobsRequest.fromJson(Map json) => 12 | _$ListProjectJobsRequestFromJson(json); 13 | 14 | Map toJson() => _$ListProjectJobsRequestToJson(this); 15 | } -------------------------------------------------------------------------------- /lib/models/request/jobs_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'jobs_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ListProjectJobsRequest _$ListProjectJobsRequestFromJson( 10 | Map json) => 11 | ListProjectJobsRequest( 12 | json['scope'] as String?, 13 | ); 14 | 15 | Map _$ListProjectJobsRequestToJson( 16 | ListProjectJobsRequest instance) => 17 | { 18 | 'scope': instance.scope, 19 | }; 20 | -------------------------------------------------------------------------------- /lib/models/request/latest_pipeline_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'latest_pipeline_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class LatestPipelineRequest { 7 | final String? ref; 8 | 9 | LatestPipelineRequest({this.ref}); 10 | 11 | factory LatestPipelineRequest.fromJson(Map json) => 12 | _$LatestPipelineRequestFromJson(json); 13 | 14 | Map toJson() => _$LatestPipelineRequestToJson(this); 15 | } 16 | -------------------------------------------------------------------------------- /lib/models/request/latest_pipeline_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'latest_pipeline_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | LatestPipelineRequest _$LatestPipelineRequestFromJson( 10 | Map json) => 11 | LatestPipelineRequest( 12 | ref: json['ref'] as String?, 13 | ); 14 | 15 | Map _$LatestPipelineRequestToJson( 16 | LatestPipelineRequest instance) { 17 | final val = {}; 18 | 19 | void writeNotNull(String key, dynamic value) { 20 | if (value != null) { 21 | val[key] = value; 22 | } 23 | } 24 | 25 | writeNotNull('ref', instance.ref); 26 | return val; 27 | } 28 | -------------------------------------------------------------------------------- /lib/models/request/members_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'members_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class MembersRequest { 7 | final int? perPage; 8 | final int? page; 9 | final String? query; 10 | 11 | MembersRequest({ 12 | this.perPage, 13 | this.page, 14 | this.query, 15 | }); 16 | 17 | factory MembersRequest.fromJson(Map json) => 18 | _$MembersRequestFromJson(json); 19 | 20 | Map toJson() => _$MembersRequestToJson(this); 21 | } 22 | -------------------------------------------------------------------------------- /lib/models/request/milestones_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'milestones_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class MilestonesRequest { 7 | final int? perPage; 8 | final int? page; 9 | final int? id; 10 | final List? iids; 11 | final String? state; 12 | final String? title; 13 | final String? search; 14 | final bool? includeParentMilestones; 15 | 16 | MilestonesRequest({ 17 | this.perPage, 18 | this.page, 19 | this.id, 20 | this.iids, 21 | this.state, 22 | this.title, 23 | this.search, 24 | this.includeParentMilestones, 25 | }); 26 | 27 | factory MilestonesRequest.fromJson(Map json) => 28 | _$MilestonesRequestFromJson(json); 29 | 30 | Map toJson() => _$MilestonesRequestToJson(this); 31 | } 32 | -------------------------------------------------------------------------------- /lib/models/request/new_issue_note_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'new_issue_note_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class NewIssueNoteRequest { 7 | final String? body; 8 | final bool? confidential; 9 | 10 | NewIssueNoteRequest({ 11 | this.body, 12 | this.confidential, 13 | }); 14 | 15 | factory NewIssueNoteRequest.fromJson(Map json) => 16 | _$NewIssueNoteRequestFromJson(json); 17 | 18 | Map toJson() => _$NewIssueNoteRequestToJson(this); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/request/notes_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'notes_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class NotesRequest { 7 | final int? perPage; 8 | final int? page; 9 | final String? sort; // Sort 10 | final String? orderBy; // NotesOrderBy 11 | 12 | NotesRequest({ 13 | this.perPage, 14 | this.page, 15 | this.sort, 16 | this.orderBy, 17 | }); 18 | 19 | factory NotesRequest.fromJson(Map json) => 20 | _$NotesRequestFromJson(json); 21 | 22 | Map toJson() => _$NotesRequestToJson(this); 23 | } 24 | -------------------------------------------------------------------------------- /lib/models/request/pipeline_jobs_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'pipeline_jobs_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class ListPipelineJobsRequest { 7 | final String? scope; 8 | final bool? includeRetried; 9 | 10 | ListPipelineJobsRequest(this.scope, this.includeRetried); 11 | 12 | factory ListPipelineJobsRequest.fromJson(Map json) => 13 | _$ListPipelineJobsRequestFromJson(json); 14 | 15 | Map toJson() => _$ListPipelineJobsRequestToJson(this); 16 | } -------------------------------------------------------------------------------- /lib/models/request/pipeline_jobs_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'pipeline_jobs_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ListPipelineJobsRequest _$ListPipelineJobsRequestFromJson( 10 | Map json) => 11 | ListPipelineJobsRequest( 12 | json['scope'] as String?, 13 | json['include_retried'] as bool?, 14 | ); 15 | 16 | Map _$ListPipelineJobsRequestToJson( 17 | ListPipelineJobsRequest instance) => 18 | { 19 | 'scope': instance.scope, 20 | 'include_retried': instance.includeRetried, 21 | }; 22 | -------------------------------------------------------------------------------- /lib/models/request/project_labels_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'project_labels_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class ProjectLabelsRequest { 7 | final int? perPage; 8 | final int? page; 9 | final bool? withCounts; 10 | final bool? includeAncestorGroups; 11 | final String? search; 12 | 13 | ProjectLabelsRequest({ 14 | this.perPage, 15 | this.page, 16 | this.withCounts, 17 | this.includeAncestorGroups, 18 | this.search, 19 | }); 20 | 21 | factory ProjectLabelsRequest.fromJson(Map json) => 22 | _$ProjectLabelsRequestFromJson(json); 23 | 24 | Map toJson() => _$ProjectLabelsRequestToJson(this); 25 | } 26 | -------------------------------------------------------------------------------- /lib/models/request/project_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'project_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class ProjectRequest { 7 | final bool? license; 8 | final bool? statistics; 9 | final bool? withCustomAttributes; 10 | 11 | ProjectRequest({ 12 | this.license, 13 | this.statistics, 14 | this.withCustomAttributes, 15 | }); 16 | 17 | factory ProjectRequest.fromJson(Map json) => 18 | _$ProjectRequestFromJson(json); 19 | 20 | Map toJson() => _$ProjectRequestToJson(this); 21 | } 22 | -------------------------------------------------------------------------------- /lib/models/request/refresh_token_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'refresh_token_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class RefreshTokenRequest { 7 | final String grantType, refreshToken; 8 | 9 | RefreshTokenRequest({ 10 | required this.grantType, 11 | required this.refreshToken, 12 | }); 13 | 14 | factory RefreshTokenRequest.fromJson(Map json) => 15 | _$RefreshTokenRequestFromJson(json); 16 | 17 | Map toJson() => _$RefreshTokenRequestToJson(this); 18 | } 19 | -------------------------------------------------------------------------------- /lib/models/request/refresh_token_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'refresh_token_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | RefreshTokenRequest _$RefreshTokenRequestFromJson(Map json) => 10 | RefreshTokenRequest( 11 | grantType: json['grant_type'] as String, 12 | refreshToken: json['refresh_token'] as String, 13 | ); 14 | 15 | Map _$RefreshTokenRequestToJson( 16 | RefreshTokenRequest instance) => 17 | { 18 | 'grant_type': instance.grantType, 19 | 'refresh_token': instance.refreshToken, 20 | }; 21 | -------------------------------------------------------------------------------- /lib/models/request/snippets_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'snippets_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class SnippetsRequest { 7 | final int? perPage; 8 | final int? page; 9 | 10 | SnippetsRequest({ 11 | this.perPage, 12 | this.page, 13 | }); 14 | 15 | factory SnippetsRequest.fromJson(Map json) => 16 | _$SnippetsRequestFromJson(json); 17 | 18 | Map toJson() => _$SnippetsRequestToJson(this); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/request/snippets_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'snippets_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | SnippetsRequest _$SnippetsRequestFromJson(Map json) => 10 | SnippetsRequest( 11 | perPage: json['per_page'] as int?, 12 | page: json['page'] as int?, 13 | ); 14 | 15 | Map _$SnippetsRequestToJson(SnippetsRequest instance) { 16 | final val = {}; 17 | 18 | void writeNotNull(String key, dynamic value) { 19 | if (value != null) { 20 | val[key] = value; 21 | } 22 | } 23 | 24 | writeNotNull('per_page', instance.perPage); 25 | writeNotNull('page', instance.page); 26 | return val; 27 | } 28 | -------------------------------------------------------------------------------- /lib/models/request/starrers_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'starrers_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class StarrersRequest { 7 | final int? perPage; 8 | final int? page; 9 | final String? search; 10 | StarrersRequest({ 11 | this.perPage, 12 | this.page, 13 | this.search, 14 | }); 15 | 16 | factory StarrersRequest.fromJson(Map json) => 17 | _$StarrersRequestFromJson(json); 18 | 19 | Map toJson() => _$StarrersRequestToJson(this); 20 | } 21 | -------------------------------------------------------------------------------- /lib/models/request/tags_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'tags_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class TagsRequest { 7 | final int? perPage; 8 | final int? page; 9 | 10 | final String? orderBy; // TagsOrderBy 11 | final String? sort; // Sort 12 | final String? search; 13 | 14 | TagsRequest({ 15 | this.perPage, 16 | this.page, 17 | this.orderBy, 18 | this.sort, 19 | this.search, 20 | }); 21 | 22 | factory TagsRequest.fromJson(Map json) => 23 | _$TagsRequestFromJson(json); 24 | 25 | Map toJson() => _$TagsRequestToJson(this); 26 | } 27 | -------------------------------------------------------------------------------- /lib/models/request/tree_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'tree_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class TreeRequest { 7 | final int? perPage; 8 | final int? page; 9 | final bool? recursive; 10 | final String? ref; 11 | final String? path; 12 | 13 | TreeRequest({ 14 | this.perPage = 500, 15 | this.page, 16 | this.recursive, 17 | this.ref, 18 | this.path, 19 | }); 20 | 21 | factory TreeRequest.fromJson(Map json) => 22 | _$TreeRequestFromJson(json); 23 | 24 | Map toJson() => _$TreeRequestToJson(this); 25 | } 26 | -------------------------------------------------------------------------------- /lib/models/request/update_issue_note_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'update_issue_note_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class UpdateIssueNoteRequest { 7 | final String? body; 8 | final bool? confidential; 9 | 10 | UpdateIssueNoteRequest({ 11 | this.body, 12 | this.confidential, 13 | }); 14 | 15 | factory UpdateIssueNoteRequest.fromJson(Map json) => 16 | _$UpdateIssueNoteRequestFromJson(json); 17 | 18 | Map toJson() => _$UpdateIssueNoteRequestToJson(this); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/request/update_project_label_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'update_project_label_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class UpdateProjectLabelRequest { 7 | final String? newName; 8 | final String? color; 9 | final String? description; 10 | final int? priority; 11 | 12 | UpdateProjectLabelRequest({ 13 | this.newName, 14 | this.color, 15 | this.description, 16 | this.priority, 17 | }); 18 | 19 | factory UpdateProjectLabelRequest.fromJson(Map json) => 20 | _$UpdateProjectLabelRequestFromJson(json); 21 | 22 | Map toJson() => _$UpdateProjectLabelRequestToJson(this); 23 | } 24 | -------------------------------------------------------------------------------- /lib/models/response/access_token_response.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'access_token_response.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class AccessTokenResponse { 7 | final String? accessToken, tokenType, refreshToken, scope, idToken; 8 | final int? createdAt; 9 | 10 | AccessTokenResponse({ 11 | required this.accessToken, 12 | required this.tokenType, 13 | required this.refreshToken, 14 | required this.scope, 15 | required this.createdAt, 16 | required this.idToken, 17 | }); 18 | 19 | factory AccessTokenResponse.fromJson(Map json) => 20 | _$AccessTokenResponseFromJson(json); 21 | 22 | Map toJson() => _$AccessTokenResponseToJson(this); 23 | } 24 | -------------------------------------------------------------------------------- /lib/models/response/paging_response.dart: -------------------------------------------------------------------------------- 1 | class PagingResponse { 2 | final int? nextPage; 3 | final int? page; 4 | final int? perPage; 5 | final int? prevPage; 6 | final int? total; 7 | final int? totalPages; 8 | final List? data; 9 | 10 | PagingResponse({ 11 | this.nextPage, 12 | this.page, 13 | this.perPage, 14 | this.prevPage, 15 | this.total, 16 | this.totalPages, 17 | this.data, 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/runner.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'runner.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class Runner { 7 | final int? id; 8 | final String? description; 9 | final String? ipAddress; 10 | final bool? active; 11 | final bool? paused; 12 | final bool? isShared; 13 | final String? runnerType; 14 | final String? name; 15 | final bool? online; 16 | final String? status; 17 | 18 | Runner( 19 | this.id, 20 | this.description, 21 | this.ipAddress, 22 | this.active, 23 | this.paused, 24 | this.isShared, 25 | this.runnerType, 26 | this.name, 27 | this.online, 28 | this.status, 29 | ); 30 | 31 | factory Runner.fromJson(Map json) => _$RunnerFromJson(json); 32 | 33 | Map toJson() => _$RunnerToJson(this); 34 | } 35 | -------------------------------------------------------------------------------- /lib/models/starrers.dart: -------------------------------------------------------------------------------- 1 | import 'package:labplus_for_gitlab/models/user.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'starrers.g.dart'; 5 | 6 | @JsonSerializable(fieldRename: FieldRename.snake) 7 | class Starrer { 8 | final String? starredSince; 9 | final User? user; 10 | 11 | Starrer({ 12 | this.starredSince = "", 13 | this.user, 14 | }); 15 | 16 | factory Starrer.fromJson(Map json) => 17 | _$StarrerFromJson(json); 18 | 19 | Map toJson() => _$StarrerToJson(this); 20 | } 21 | -------------------------------------------------------------------------------- /lib/models/starrers.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'starrers.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | Starrer _$StarrerFromJson(Map json) => Starrer( 10 | starredSince: json['starred_since'] as String? ?? "", 11 | user: json['user'] == null 12 | ? null 13 | : User.fromJson(json['user'] as Map), 14 | ); 15 | 16 | Map _$StarrerToJson(Starrer instance) => { 17 | 'starred_since': instance.starredSince, 18 | 'user': instance.user, 19 | }; 20 | -------------------------------------------------------------------------------- /lib/models/tag.dart: -------------------------------------------------------------------------------- 1 | import 'package:labplus_for_gitlab/models/models.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'tag.g.dart'; 5 | 6 | @JsonSerializable(fieldRename: FieldRename.snake) 7 | class Tag { 8 | final TagCommit? commit; 9 | final TagRelase? release; 10 | final String? name; 11 | final String? target; 12 | final String? message; 13 | final bool? protected; 14 | 15 | Tag({ 16 | this.commit, 17 | this.release, 18 | this.name, 19 | this.target, 20 | this.message, 21 | this.protected, 22 | }); 23 | 24 | factory Tag.fromJson(Map json) => _$TagFromJson(json); 25 | 26 | Map toJson() => _$TagToJson(this); 27 | } 28 | -------------------------------------------------------------------------------- /lib/models/tag_release.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'tag_release.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class TagRelase { 7 | final String? tagName; 8 | final String? description; 9 | 10 | TagRelase({ 11 | this.tagName, 12 | this.description, 13 | }); 14 | 15 | factory TagRelase.fromJson(Map json) => 16 | _$TagRelaseFromJson(json); 17 | 18 | Map toJson() => _$TagRelaseToJson(this); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/tag_release.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'tag_release.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | TagRelase _$TagRelaseFromJson(Map json) => TagRelase( 10 | tagName: json['tag_name'] as String?, 11 | description: json['description'] as String?, 12 | ); 13 | 14 | Map _$TagRelaseToJson(TagRelase instance) => { 15 | 'tag_name': instance.tagName, 16 | 'description': instance.description, 17 | }; 18 | -------------------------------------------------------------------------------- /lib/models/task_completion_status.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'task_completion_status.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class TaskCompletionStatus { 7 | final int? count; 8 | final int? completedCount; 9 | 10 | TaskCompletionStatus({ 11 | this.count, 12 | this.completedCount, 13 | }); 14 | 15 | factory TaskCompletionStatus.fromJson(Map json) => 16 | _$TaskCompletionStatusFromJson(json); 17 | 18 | Map toJson() => _$TaskCompletionStatusToJson(this); 19 | } 20 | -------------------------------------------------------------------------------- /lib/models/task_completion_status.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'task_completion_status.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | TaskCompletionStatus _$TaskCompletionStatusFromJson( 10 | Map json) => 11 | TaskCompletionStatus( 12 | count: json['count'] as int?, 13 | completedCount: json['completed_count'] as int?, 14 | ); 15 | 16 | Map _$TaskCompletionStatusToJson( 17 | TaskCompletionStatus instance) => 18 | { 19 | 'count': instance.count, 20 | 'completed_count': instance.completedCount, 21 | }; 22 | -------------------------------------------------------------------------------- /lib/models/time_stats.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'time_stats.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class TimeStats { 7 | final int? timeEstimate; 8 | final int? totalTimeSpent; 9 | // final String? humanTimeEstimate; 10 | // final String? humanTimeSpent; 11 | 12 | TimeStats({ 13 | this.timeEstimate, 14 | this.totalTimeSpent, 15 | }); 16 | 17 | factory TimeStats.fromJson(Map json) => 18 | _$TimeStatsFromJson(json); 19 | 20 | Map toJson() => _$TimeStatsToJson(this); 21 | } 22 | -------------------------------------------------------------------------------- /lib/models/time_stats.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'time_stats.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | TimeStats _$TimeStatsFromJson(Map json) => TimeStats( 10 | timeEstimate: json['time_estimate'] as int?, 11 | totalTimeSpent: json['total_time_spent'] as int?, 12 | ); 13 | 14 | Map _$TimeStatsToJson(TimeStats instance) => { 15 | 'time_estimate': instance.timeEstimate, 16 | 'total_time_spent': instance.totalTimeSpent, 17 | }; 18 | -------------------------------------------------------------------------------- /lib/models/tree.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'tree.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class Tree { 7 | final String? id; 8 | final String? name; 9 | final String? type; 10 | final String? path; 11 | final String? mode; 12 | 13 | Tree({ 14 | this.id, 15 | this.name, 16 | this.type, 17 | this.path, 18 | this.mode, 19 | }); 20 | 21 | factory Tree.fromJson(Map json) => _$TreeFromJson(json); 22 | 23 | Map toJson() => _$TreeToJson(this); 24 | } 25 | -------------------------------------------------------------------------------- /lib/models/tree.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'tree.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | Tree _$TreeFromJson(Map json) => Tree( 10 | id: json['id'] as String?, 11 | name: json['name'] as String?, 12 | type: json['type'] as String?, 13 | path: json['path'] as String?, 14 | mode: json['mode'] as String?, 15 | ); 16 | 17 | Map _$TreeToJson(Tree instance) => { 18 | 'id': instance.id, 19 | 'name': instance.name, 20 | 'type': instance.type, 21 | 'path': instance.path, 22 | 'mode': instance.mode, 23 | }; 24 | -------------------------------------------------------------------------------- /lib/models/user.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'user.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class User { 7 | final int? id; 8 | final String? username; 9 | final String? name; 10 | final String? email; 11 | final String? avatarUrl; 12 | final String? webUrl; 13 | 14 | User({ 15 | this.id = -1, 16 | this.username = "", 17 | this.name = "", 18 | this.email = "", 19 | this.avatarUrl = "", 20 | this.webUrl = "", 21 | }); 22 | 23 | factory User.fromJson(Map json) => _$UserFromJson(json); 24 | 25 | Map toJson() => _$UserToJson(this); 26 | } 27 | -------------------------------------------------------------------------------- /lib/modules/about/about.dart: -------------------------------------------------------------------------------- 1 | export 'about_controller.dart'; 2 | export 'about_screen.dart'; 3 | -------------------------------------------------------------------------------- /lib/modules/about/about_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import 'about_controller.dart'; 4 | 5 | class AboutBinding implements Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut(() => AboutController(), fenix: true); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /lib/modules/about/about_controller.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:package_info_plus/package_info_plus.dart'; 3 | 4 | class AboutController extends GetxController { 5 | late PackageInfo _packageInfo; 6 | 7 | var version = "".obs; 8 | 9 | @override 10 | void onInit() async { 11 | super.onInit(); 12 | _packageInfo = await PackageInfo.fromPlatform(); 13 | version.value = _packageInfo.version; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/modules/accounts_intern/accounts.dart: -------------------------------------------------------------------------------- 1 | export 'accounts_binding.dart'; 2 | export 'accounts_controller.dart'; 3 | export 'accounts_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/accounts_intern/accounts_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/shared.dart'; 4 | 5 | import 'accounts_controller.dart'; 6 | 7 | class AccountsBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => AccountsController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/add_members/add_members.dart: -------------------------------------------------------------------------------- 1 | export 'add_members_binding.dart'; 2 | export 'add_members_controller.dart'; 3 | export 'add_members_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/add_members/add_members_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import 'add_members_controller.dart'; 4 | 5 | class AddMembersBinding implements Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => AddMembersController( 10 | apiRepository: Get.find(), 11 | repository: Get.find(), 12 | ), 13 | fenix: true); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/modules/auth/auth.dart: -------------------------------------------------------------------------------- 1 | export 'auth_binding.dart'; 2 | export 'auth_controller.dart'; 3 | export 'auth_screen_standard.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/auth/auth_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import 'auth_controller.dart'; 4 | 5 | class AuthBinding implements Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut(() => AuthController(apiRepository: Get.find()), 9 | fenix: true); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/modules/branches/branches.dart: -------------------------------------------------------------------------------- 1 | export 'branches_binding.dart'; 2 | export 'branches_controller.dart'; 3 | export 'branches_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/branches/branches_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'branches_controller.dart'; 6 | 7 | class BranchesBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => BranchesController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/code_view/code_view.dart: -------------------------------------------------------------------------------- 1 | export 'code_view_binding.dart'; 2 | export 'code_view_controller.dart'; 3 | export 'code_view_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/code_view/code_view_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'code_view_controller.dart'; 6 | 7 | class CodeViewBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => CodeViewController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/commit/commit.dart: -------------------------------------------------------------------------------- 1 | export 'commit_binding.dart'; 2 | export 'commit_controller.dart'; 3 | export 'commit_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/commit/commit_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'commit_controller.dart'; 6 | 7 | class CommitBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => CommitController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/commits/commits.dart: -------------------------------------------------------------------------------- 1 | export 'commits_binding.dart'; 2 | export 'commits_controller.dart'; 3 | export 'commits_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/commits/commits_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'commits_controller.dart'; 6 | 7 | class CommitsBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => CommitsController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/create_issue/create_issue.dart: -------------------------------------------------------------------------------- 1 | export 'create_issue_binding.dart'; 2 | export 'create_issue_controller.dart'; 3 | export 'create_issue_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/create_issue/create_issue_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'create_issue_controller.dart'; 6 | 7 | class CreateIssueBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => CreateIssueController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/create_merge_request/create_merge_request.dart: -------------------------------------------------------------------------------- 1 | export 'create_merge_request_binding.dart'; 2 | export 'create_merge_request_controller.dart'; 3 | export 'create_merge_request_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/create_merge_request/create_merge_request_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'create_merge_request_controller.dart'; 6 | 7 | class CreateMergeRequestBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => CreateMergeRequestController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/create_milestone/create_milestone.dart: -------------------------------------------------------------------------------- 1 | export 'create_milestone_binding.dart'; 2 | export 'create_milestone_controller.dart'; 3 | export 'create_milestone_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/create_milestone/create_milestone_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'create_milestone_controller.dart'; 6 | 7 | class CreateMilestoneBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => CreateMilestoneController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/create_project/create_project.dart: -------------------------------------------------------------------------------- 1 | export 'create_project_controller.dart'; 2 | export 'create_project_binding.dart'; 3 | export 'create_project_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/create_project/create_project_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'create_project_controller.dart'; 6 | 7 | class CreateProjectBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => CreateProjectController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/create_project_label/create_project_label.dart: -------------------------------------------------------------------------------- 1 | export 'create_project_label_binding.dart'; 2 | export 'create_project_label_controller.dart'; 3 | export 'create_project_label_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/create_project_label/create_project_label_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'create_project_label_controller.dart'; 6 | 7 | class CreateProjectLabelBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => CreateProjectLabelController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/create_project_snippet/create_project_snippet.dart: -------------------------------------------------------------------------------- 1 | export 'create_project_snippet_binding.dart'; 2 | export 'create_project_snippet_controller.dart'; 3 | export 'create_project_snippet_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/create_project_snippet/create_project_snippet_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'create_project_snippet_controller.dart'; 6 | 7 | class CreateProjectSnippetBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => CreateProjectSnippetController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/edit_issue/edit_issue.dart: -------------------------------------------------------------------------------- 1 | export 'edit_issue_binding.dart'; 2 | export 'edit_issue_controller.dart'; 3 | export 'edit_issue_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/edit_issue/edit_issue_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'edit_issue_controller.dart'; 6 | 7 | class EditIssueBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => EditIssueController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/edit_issue_note/edit_issue_note.dart: -------------------------------------------------------------------------------- 1 | export 'edit_issue_note_binding.dart'; 2 | export 'edit_issue_note_controller.dart'; 3 | export 'edit_issue_note_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/edit_issue_note/edit_issue_note_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'edit_issue_note_controller.dart'; 6 | 7 | class EditIssueNoteBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => EditIssueNoteController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/edit_merge_request/edit_merge_request.dart: -------------------------------------------------------------------------------- 1 | export 'edit_merge_request_binding.dart'; 2 | export 'edit_merge_request_controller.dart'; 3 | export 'edit_merge_request_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/edit_merge_request/edit_merge_request_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'edit_merge_request_controller.dart'; 6 | 7 | class EditMergeRequestBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => EditMergeRequestController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/edit_milestone/edit_milestone.dart: -------------------------------------------------------------------------------- 1 | export 'edit_milestone_binding.dart'; 2 | export 'edit_milestone_controller.dart'; 3 | export 'edit_milestone_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/edit_milestone/edit_milestone_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'edit_milestone_controller.dart'; 6 | 7 | class EditMilestoneBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => EditMilestoneController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/edit_project/edit_project.dart: -------------------------------------------------------------------------------- 1 | export 'edit_project_binding.dart'; 2 | export 'edit_project_controller.dart'; 3 | export 'edit_project_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/edit_project/edit_project_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'edit_project_controller.dart'; 6 | 7 | class EditProjectBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => EditProjectController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/edit_project_label/edit_project_label.dart: -------------------------------------------------------------------------------- 1 | export 'edit_project_label_binding.dart'; 2 | export 'edit_project_label_controller.dart'; 3 | export 'edit_project_label_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/edit_project_label/edit_project_label_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'edit_project_label_controller.dart'; 6 | 7 | class EditProjectLabelBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => EditProjectLabelController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/edit_project_snippet/edit_project_snippet.dart: -------------------------------------------------------------------------------- 1 | export 'edit_project_snippet_binding.dart'; 2 | export 'edit_project_snippet_controller.dart'; 3 | export 'edit_project_snippet_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/edit_project_snippet/edit_project_snippet_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'edit_project_snippet_controller.dart'; 6 | 7 | class EditProjectSnippetBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => EditProjectSnippetController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/groups/groups.dart: -------------------------------------------------------------------------------- 1 | export 'groups_binding.dart'; 2 | export 'groups_controller.dart'; 3 | export 'groups_screen.dart'; 4 | export 'group_details_screen.dart'; 5 | export 'new_group_screen.dart'; 6 | -------------------------------------------------------------------------------- /lib/modules/groups/groups_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'groups_controller.dart'; 6 | 7 | class GroupsBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => GroupsController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/home/home.dart: -------------------------------------------------------------------------------- 1 | export 'tabs/tabs.dart'; 2 | export 'home_binding.dart'; 3 | export 'home_controller.dart'; 4 | export 'home_screen.dart'; 5 | -------------------------------------------------------------------------------- /lib/modules/home/home_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'home_controller.dart'; 6 | 7 | class HomeBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => HomeController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/home/tabs/tabs.dart: -------------------------------------------------------------------------------- 1 | export 'events_tab.dart'; 2 | export 'issues_tab.dart'; 3 | export 'merge_reqests_tab.dart'; 4 | export 'projects_tab.dart'; 5 | 6 | enum MainTabs { 7 | projects, 8 | events, 9 | issues, 10 | mergeRequests, 11 | } 12 | -------------------------------------------------------------------------------- /lib/modules/image_viewer/image_viewer.dart: -------------------------------------------------------------------------------- 1 | export 'image_viewer_binding.dart'; 2 | export 'image_viewer_controller.dart'; 3 | export 'image_viewer_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/image_viewer/image_viewer_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'image_viewer_controller.dart'; 6 | 7 | class ImageViewerBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => ImageViewerController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/image_viewer/image_viewer_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:get/get.dart'; 3 | import 'package:labplus_for_gitlab/modules/image_viewer/image_viewer.dart'; 4 | import 'package:labplus_for_gitlab/shared/shared.dart'; 5 | 6 | class ImageViewerScreen extends GetView { 7 | const ImageViewerScreen({super.key}); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return Obx( 12 | () => Scaffold( 13 | appBar: AppBar(title: Text(controller.file.value.fileName!)), 14 | body: HttpFutureBuilder( 15 | state: controller.state.value, 16 | child: SafeArea(child: controller.widget), 17 | ), 18 | ), 19 | ); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/modules/issue/issue.dart: -------------------------------------------------------------------------------- 1 | export 'issue_binding.dart'; 2 | export 'issue_controller.dart'; 3 | export 'issue_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/issue/issue_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'issue_controller.dart'; 6 | 7 | class IssueBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => IssueController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/issue_notes/issue_notes.dart: -------------------------------------------------------------------------------- 1 | export 'issue_notes_binding.dart'; 2 | export 'issue_notes_controller.dart'; 3 | export 'issue_notes_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/issue_notes/issue_notes_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'issue_notes_controller.dart'; 6 | 7 | class IssueNotesBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => IssueNotesController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/issue_related_requests/issue_related_merge_requests.dart: -------------------------------------------------------------------------------- 1 | export 'issue_related_merge_requests_binding.dart'; 2 | export 'issue_related_merge_requests_controller.dart'; 3 | export 'issue_related_merge_requests_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/issue_related_requests/issue_related_merge_requests_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'issue_related_merge_requests_controller.dart'; 6 | 7 | class IssueRelatedMergeRequestsBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => IssueRelatedMergeRequestsController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/issues/issues.dart: -------------------------------------------------------------------------------- 1 | export 'issues_binding.dart'; 2 | export 'issues_controller.dart'; 3 | export 'issues_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/issues/issues_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'issues_controller.dart'; 6 | 7 | class IssuesBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => IssuesController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/md_view/md_view.dart: -------------------------------------------------------------------------------- 1 | export 'md_view_binding.dart'; 2 | export 'md_view_controller.dart'; 3 | export 'md_view_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/md_view/md_view_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'md_view_controller.dart'; 6 | 7 | class MdViewBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => MdViewController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/member_details/member_details.dart: -------------------------------------------------------------------------------- 1 | export 'member_details_screen.dart'; 2 | -------------------------------------------------------------------------------- /lib/modules/merge_request/merge_request.dart: -------------------------------------------------------------------------------- 1 | export 'merge_request_binding.dart'; 2 | export 'merge_request_controller.dart'; 3 | export 'merge_request_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/merge_request/merge_request_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'merge_request_controller.dart'; 6 | 7 | class MergeRequestBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => MergeRequestController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/merge_request_notes/merge_request_notes.dart: -------------------------------------------------------------------------------- 1 | export 'merge_request_notes_controller.dart'; -------------------------------------------------------------------------------- /lib/modules/merge_request_notes/merge_request_notes_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api_repository.dart'; 3 | import 'package:labplus_for_gitlab/modules/merge_request_notes/merge_request_notes.dart'; 4 | import 'package:labplus_for_gitlab/shared/data/repository.dart'; 5 | 6 | class MergeRequestNotesBindings extends Bindings { 7 | @override 8 | void dependencies() { 9 | Get.lazyPut( 10 | () => MergeRequestNotesController( 11 | apiRepository: Get.find(), 12 | repository: Get.find(), 13 | ), 14 | fenix: true); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/modules/merge_requests/merge_requests.dart: -------------------------------------------------------------------------------- 1 | export 'merge_requests_binding.dart'; 2 | export 'merge_requests_controller.dart'; 3 | export 'merge_requests_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/merge_requests/merge_requests_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'merge_requests_controller.dart'; 6 | 7 | class MergeRequestsBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => MergeRequestsController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/milestone/milestone.dart: -------------------------------------------------------------------------------- 1 | export 'milestone_binding.dart'; 2 | export 'milestone_controller.dart'; 3 | export 'milestone_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/milestone/milestone_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'milestone_controller.dart'; 6 | 7 | class MilestoneBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => MilestoneController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/milestones/milestones.dart: -------------------------------------------------------------------------------- 1 | export 'milestones_binding.dart'; 2 | export 'milestones_controller.dart'; 3 | export 'milestones_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/milestones/milestones_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/shared.dart'; 4 | 5 | import 'milestones_controller.dart'; 6 | 7 | class MilestonesBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => MilestonesController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/project_activity/project_activity.dart: -------------------------------------------------------------------------------- 1 | export 'project_activity_binding.dart'; 2 | export 'project_activity_controller.dart'; 3 | export 'project_activity_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/project_activity/project_activity_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'project_activity_controller.dart'; 6 | 7 | class ProjectActivityBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => ProjectActivityController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/project_details/project_details.dart: -------------------------------------------------------------------------------- 1 | export 'project_details_binding.dart'; 2 | export 'project_details_controller.dart'; 3 | export 'project_details_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/project_details/project_details_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'project_details_controller.dart'; 6 | 7 | class ProjectDetailsBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => ProjectDetailsController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/project_labels/project_labels.dart: -------------------------------------------------------------------------------- 1 | export 'project_labels_binding.dart'; 2 | export 'project_labels_controller.dart'; 3 | export 'project_labels_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/project_labels/project_labels_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'project_labels_controller.dart'; 6 | 7 | class ProjectLabelsBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => ProjectLabelsController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/project_members/project_members.dart: -------------------------------------------------------------------------------- 1 | export 'project_members_binding.dart'; 2 | export 'project_members_controller.dart'; 3 | export 'project_members_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/project_members/project_members_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'project_members_controller.dart'; 6 | 7 | class ProjectMembersBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => ProjectMembersController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/project_pipelines/project_pipelines.dart: -------------------------------------------------------------------------------- 1 | export 'project_pipelines_binding.dart'; 2 | export 'project_pipelines_controller.dart'; 3 | export 'project_pipelines_screen.dart'; -------------------------------------------------------------------------------- /lib/modules/project_pipelines/project_pipelines_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api_repository.dart'; 3 | import 'package:labplus_for_gitlab/modules/project_pipelines/project_pipelines.dart'; 4 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 5 | 6 | class PipelinesBindings extends Bindings { 7 | @override 8 | void dependencies() { 9 | Get.lazyPut( 10 | () => PipelinesController( 11 | apiRepository: Get.find(), 12 | repository: Get.find(), 13 | ), 14 | fenix: true); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/modules/project_snippet/project_snippet.dart: -------------------------------------------------------------------------------- 1 | export 'project_snippet_binding.dart'; 2 | export 'project_snippet_controller.dart'; 3 | export 'project_snippet_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/project_snippet/project_snippet_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'project_snippet_controller.dart'; 6 | 7 | class ProjectSnippetBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => ProjectSnippetController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/modules/project_snippets/project_snippets.dart: -------------------------------------------------------------------------------- 1 | export 'project_snippets_binding.dart'; 2 | export 'project_snippets_controller.dart'; 3 | export 'project_snippets_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/project_snippets/project_snippets_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import 'project_snippets_controller.dart'; 4 | 5 | class ProjectSnippetsBinding implements Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => ProjectSnippetsController( 10 | apiRepository: Get.find(), 11 | repository: Get.find(), 12 | ), 13 | fenix: true); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/modules/projects/projects.dart: -------------------------------------------------------------------------------- 1 | export 'projects_binding.dart'; 2 | export 'projects_controller.dart'; 3 | export 'projects_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/projects/projects_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import 'projects_controller.dart'; 4 | 5 | class ProjectsBinding implements Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut( 9 | () => ProjectsController( 10 | apiRepository: Get.find(), 11 | repository: Get.find(), 12 | ), 13 | fenix: true); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/modules/settings/settings.dart: -------------------------------------------------------------------------------- 1 | export 'settings_binding.dart'; 2 | export 'settings_controller.dart'; 3 | export 'settings_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/settings/settings_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import 'settings_controller.dart'; 4 | 5 | class SettingsBinding implements Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut(() => SettingsController(), fenix: true); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /lib/modules/starrers/starrers.dart: -------------------------------------------------------------------------------- 1 | export 'starrers_binding.dart'; 2 | export 'starrers_controller.dart'; 3 | export 'starrers_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/starrers/starrers_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | import 'starrers_controller.dart'; 4 | 5 | class StarrersBinding implements Bindings { 6 | @override 7 | void dependencies() { 8 | Get.lazyPut(() => StarrersController( 9 | apiRepository: Get.find(), 10 | repository: Get.find(), 11 | )); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/modules/tree_view/tree_view.dart: -------------------------------------------------------------------------------- 1 | export 'tree_view_binding.dart'; 2 | export 'tree_view_controller.dart'; 3 | export 'tree_view_screen.dart'; 4 | -------------------------------------------------------------------------------- /lib/modules/tree_view/tree_view_binding.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | import 'package:labplus_for_gitlab/api/api.dart'; 3 | import 'package:labplus_for_gitlab/shared/data/data.dart'; 4 | 5 | import 'tree_view_controller.dart'; 6 | 7 | class TreeViewBinding implements Bindings { 8 | @override 9 | void dependencies() { 10 | Get.lazyPut( 11 | () => TreeViewController( 12 | apiRepository: Get.find(), 13 | repository: Get.find(), 14 | ), 15 | fenix: true); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/routes/routes.dart: -------------------------------------------------------------------------------- 1 | export 'app_pages.dart'; 2 | -------------------------------------------------------------------------------- /lib/shared/constants/colors.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ColorConstants { 4 | static Color lightScaffoldBackgroundColor = Colors.white; 5 | static Color darkScaffoldBackgroundColor = hexToColor('#2F2E2E'); 6 | static Color tipColor = hexToColor('#B6B6B6'); 7 | static Color lightGray = const Color(0xFFF6F6F6); 8 | static Color darkGray = const Color(0xFF9F9F9F); 9 | static Color black = const Color(0xFF000000); 10 | static Color white = const Color(0xFFFFFFFF); 11 | static Color gitlab = const Color(0xff330d69); 12 | } 13 | 14 | Color hexToColor(String hex) { 15 | // assert(RegExp(r'^#([0-9a-fA-F]{6})|([0-9a-fA-F]{8})$').hasMatch(hex), 16 | // 'hex color must be #rrggbb or #rrggbbaa'); 17 | 18 | return Color( 19 | int.parse(hex.substring(1), radix: 16) + 20 | (hex.length == 7 ? 0xff000000 : 0x00000000), 21 | ); 22 | } 23 | -------------------------------------------------------------------------------- /lib/shared/constants/common.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class CommonConstants { 4 | static var errorMessage = 'An error occured'; 5 | static const searchRequestDelay = Duration(milliseconds: 1000); 6 | static const scrollExtendAfter = 1000; 7 | static const contentPaddingLitTileLarge = 8 | EdgeInsets.only(left: 15, right: 15, top: 10, bottom: 10); 9 | static const fontWeightListTile = FontWeight.normal; 10 | } 11 | -------------------------------------------------------------------------------- /lib/shared/constants/constants.dart: -------------------------------------------------------------------------------- 1 | export 'colors.dart'; 2 | export 'common.dart'; 3 | export 'secure_storage.dart'; 4 | export 'sp_storage.dart'; 5 | -------------------------------------------------------------------------------- /lib/shared/constants/secure_storage.dart: -------------------------------------------------------------------------------- 1 | class SecureStorageConstants { 2 | static const String appSettings = 'app_settings'; 3 | static const String accessToken = 'access_token'; 4 | static const String baseUrl = 'base_url'; 5 | static const String userid = 'user_id'; 6 | } 7 | -------------------------------------------------------------------------------- /lib/shared/constants/sp_storage.dart: -------------------------------------------------------------------------------- 1 | class SPStorageConstants { 2 | static const String theme = 'theme'; // AppBrightness 3 | static const String codeTheme = 'code_theme'; 4 | static const String showLineNumbers = 'show_line_numbers'; 5 | static const String fontSize = 'font_size'; 6 | static const String authDefaultTab = 'auth_default_tab'; 7 | static const String homeDefaultTab = 'home_default_tab'; 8 | static const String mergeRequestFilterScope = 'merge_request_filter_scope'; 9 | static const String mergeRequestFilterState = 'merge_request_filter_state'; 10 | static const String issuesFilterScope = 'issues_filter_scope'; 11 | static const String issuesFilterState = 'issues_filter_state'; 12 | } 13 | -------------------------------------------------------------------------------- /lib/shared/data/data.dart: -------------------------------------------------------------------------------- 1 | export 'secure_storage.dart'; 2 | export 'sp_storage.dart'; 3 | export 'repository.dart'; 4 | -------------------------------------------------------------------------------- /lib/shared/highlight/highlight.dart: -------------------------------------------------------------------------------- 1 | import 'package:labplus_for_gitlab/shared/highlight/src/highlight.dart'; 2 | import 'package:labplus_for_gitlab/shared/highlight/languages/all.dart'; 3 | 4 | export 'package:labplus_for_gitlab/shared/highlight/src/highlight.dart'; 5 | export 'package:labplus_for_gitlab/shared/highlight/src/node.dart'; 6 | export 'package:labplus_for_gitlab/shared/highlight/src/mode.dart'; 7 | export 'package:labplus_for_gitlab/shared/highlight/src/result.dart'; 8 | 9 | final highlight = Highlight()..registerLanguages(allLanguages); 10 | -------------------------------------------------------------------------------- /lib/shared/highlight/highlight_core.dart: -------------------------------------------------------------------------------- 1 | import 'package:labplus_for_gitlab/shared/highlight/src/highlight.dart'; 2 | 3 | export 'package:labplus_for_gitlab/shared/highlight/src/highlight.dart'; 4 | export 'package:labplus_for_gitlab/shared/highlight/src/node.dart'; 5 | export 'package:labplus_for_gitlab/shared/highlight/src/mode.dart'; 6 | export 'package:labplus_for_gitlab/shared/highlight/src/result.dart'; 7 | 8 | final highlight = Highlight(); 9 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/bnf.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final bnf = Mode(refs: {}, contains: [ 7 | Mode(className: "attribute", begin: "<", end: ">"), 8 | Mode( 9 | begin: "::=", 10 | starts: Mode(end: "\$", contains: [ 11 | Mode(begin: "<", end: ">"), 12 | C_LINE_COMMENT_MODE, 13 | C_BLOCK_COMMENT_MODE, 14 | APOS_STRING_MODE, 15 | QUOTE_STRING_MODE 16 | ])) 17 | ]); 18 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/clean.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final clean = Mode(refs: {}, aliases: [ 7 | "clean", 8 | "icl", 9 | "dcl" 10 | ], keywords: { 11 | "keyword": 12 | "if let in with where case of class instance otherwise implementation definition system module from import qualified as special code inline foreign export ccall stdcall generic derive infix infixl infixr", 13 | "built_in": "Int Real Char Bool", 14 | "literal": "True False" 15 | }, contains: [ 16 | C_LINE_COMMENT_MODE, 17 | C_BLOCK_COMMENT_MODE, 18 | APOS_STRING_MODE, 19 | QUOTE_STRING_MODE, 20 | C_NUMBER_MODE, 21 | Mode(begin: "->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>") 22 | ]); 23 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/clojure-repl.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final clojureRepl = Mode(refs: {}, contains: [ 7 | Mode( 8 | className: "meta", 9 | begin: "^([\\w.-]+|\\s*#_)?=>", 10 | starts: Mode(end: "\$", subLanguage: ["clojure"])) 11 | ]); 12 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/csp.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final csp = Mode( 7 | refs: {}, 8 | case_insensitive: false, 9 | lexemes: "[a-zA-Z][a-zA-Z0-9_-]*", 10 | keywords: { 11 | "keyword": 12 | "base-uri child-src connect-src default-src font-src form-action frame-ancestors frame-src img-src media-src object-src plugin-types report-uri sandbox script-src style-src" 13 | }, 14 | contains: [ 15 | Mode(className: "string", begin: "'", end: "'"), 16 | Mode( 17 | className: "attribute", begin: "^Content", end: ":", excludeEnd: true) 18 | ]); 19 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/dockerfile.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final dockerfile = Mode( 7 | refs: {}, 8 | aliases: ["docker"], 9 | case_insensitive: true, 10 | keywords: "from maintainer expose env arg user onbuild stopsignal", 11 | contains: [ 12 | HASH_COMMENT_MODE, 13 | APOS_STRING_MODE, 14 | QUOTE_STRING_MODE, 15 | NUMBER_MODE, 16 | Mode( 17 | beginKeywords: 18 | "run cmd entrypoint volume add copy workdir label healthcheck shell", 19 | starts: Mode(end: "[^\\\\]\$", subLanguage: ["bash"])) 20 | ], 21 | illegal: "", contains: [ 10 | PHRASAL_WORDS_MODE, 11 | Mode( 12 | className: "doctag", 13 | begin: "(?:TODO|FIXME|NOTE|BUG|XXX):", 14 | relevance: 0) 15 | ]), 16 | Mode( 17 | begin: "<%[%=-]?", 18 | end: "[%-]?%>", 19 | subLanguage: ["ruby"], 20 | excludeBegin: true, 21 | excludeEnd: true) 22 | ]); 23 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/fix.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final fix = Mode(refs: {}, contains: [ 7 | Mode( 8 | begin: "[^\\u2401\\u0001]+", 9 | end: "[\\u2401\\u0001]", 10 | excludeEnd: true, 11 | returnBegin: true, 12 | returnEnd: false, 13 | contains: [ 14 | Mode( 15 | begin: "([^\\u2401\\u0001=]+)", 16 | end: "=([^\\u2401\\u0001=]+)", 17 | returnEnd: true, 18 | returnBegin: false, 19 | className: "attr"), 20 | Mode( 21 | begin: "=", 22 | end: "([\\u2401\\u0001])", 23 | excludeEnd: true, 24 | excludeBegin: true, 25 | className: "string") 26 | ]) 27 | ], case_insensitive: true); 28 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/gherkin.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final gherkin = Mode( 7 | refs: {}, 8 | aliases: ["feature"], 9 | keywords: 10 | "Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When", 11 | contains: [ 12 | Mode(className: "symbol", begin: "\\*", relevance: 0), 13 | Mode(className: "meta", begin: "@[^@\\s]+"), 14 | Mode( 15 | begin: "\\|", 16 | end: "\\|\\w*\$", 17 | contains: [Mode(className: "string", begin: "[^|]+")]), 18 | Mode(className: "variable", begin: "<", end: ">"), 19 | HASH_COMMENT_MODE, 20 | Mode(className: "string", begin: "\"\"\"", end: "\"\"\""), 21 | QUOTE_STRING_MODE 22 | ]); 23 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/golo.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final golo = Mode(refs: {}, keywords: { 7 | "keyword": 8 | "println readln print import module function local return let var while for foreach times in case when match with break continue augment augmentation each find filter reduce if then else otherwise try catch finally raise throw orIfNull DynamicObject|10 DynamicVariable struct Observable map set vector list array", 9 | "literal": "true false null" 10 | }, contains: [ 11 | HASH_COMMENT_MODE, 12 | QUOTE_STRING_MODE, 13 | C_NUMBER_MODE, 14 | Mode(className: "meta", begin: "@[A-Za-z]+") 15 | ]); 16 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/julia-repl.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final juliaRepl = Mode(refs: {}, contains: [ 7 | Mode( 8 | className: "meta", 9 | begin: "^julia>", 10 | relevance: 10, 11 | starts: Mode(end: "^(?![ ]{6})", subLanguage: ["julia"]), 12 | aliases: ["jldoctest"]) 13 | ]); 14 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/ldif.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final ldif = Mode(refs: {}, contains: [ 7 | Mode( 8 | className: "attribute", 9 | begin: "^dn", 10 | end: ": ", 11 | excludeEnd: true, 12 | starts: Mode(end: "\$", relevance: 0), 13 | relevance: 10), 14 | Mode( 15 | className: "attribute", 16 | begin: "^\\w", 17 | end: ": ", 18 | excludeEnd: true, 19 | starts: Mode(end: "\$", relevance: 0)), 20 | Mode(className: "literal", begin: "^-", end: "\$"), 21 | HASH_COMMENT_MODE 22 | ]); 23 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/leaf.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final leaf = Mode(refs: {}, contains: [ 7 | Mode( 8 | className: "function", 9 | begin: "#+[A-Za-z_0-9]*\\(", 10 | end: " {", 11 | returnBegin: true, 12 | excludeEnd: true, 13 | contains: [ 14 | Mode(className: "keyword", begin: "#+"), 15 | Mode(className: "title", begin: "[A-Za-z_][A-Za-z_0-9]*"), 16 | Mode( 17 | className: "params", 18 | begin: "\\(", 19 | end: "\\)", 20 | endsParent: true, 21 | contains: [ 22 | Mode(className: "string", begin: "\"", end: "\""), 23 | Mode(className: "variable", begin: "[A-Za-z_][A-Za-z_0-9]*") 24 | ]) 25 | ]) 26 | ]); 27 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/mojolicious.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final mojolicious = Mode(refs: {}, subLanguage: [ 7 | "xml" 8 | ], contains: [ 9 | Mode(className: "meta", begin: "^__(END|DATA)__\$"), 10 | Mode(begin: "^\\s*%{1,2}={0,2}", end: "\$", subLanguage: ["perl"]), 11 | Mode( 12 | begin: "<%{1,2}={0,2}", 13 | end: "={0,1}%>", 14 | subLanguage: ["perl"], 15 | excludeBegin: true, 16 | excludeEnd: true) 17 | ]); 18 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/plaintext.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final plaintext = Mode(refs: {}, disableAutodetect: true); 7 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/profile.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final profile = Mode(refs: {}, contains: [ 7 | C_NUMBER_MODE, 8 | Mode( 9 | begin: "[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}", 10 | end: ":", 11 | excludeEnd: true), 12 | Mode( 13 | begin: "(ncalls|tottime|cumtime)", 14 | end: "\$", 15 | keywords: "ncalls tottime|10 cumtime|10 filename", 16 | relevance: 10), 17 | Mode( 18 | begin: "function calls", 19 | end: "\$", 20 | contains: [C_NUMBER_MODE], 21 | relevance: 10), 22 | APOS_STRING_MODE, 23 | QUOTE_STRING_MODE, 24 | Mode( 25 | className: "string", 26 | begin: "\\(", 27 | end: "\\)\$", 28 | excludeBegin: true, 29 | excludeEnd: true, 30 | relevance: 0) 31 | ]); 32 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/shell.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final shell = Mode(refs: {}, aliases: [ 7 | "console" 8 | ], contains: [ 9 | Mode( 10 | className: "meta", 11 | begin: "^\\s{0,3}[/\\w\\d\\[\\]()@-]*[>%\$#]", 12 | starts: Mode(end: "\$", subLanguage: ["bash"])) 13 | ]); 14 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/subunit.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final subunit = Mode( 7 | refs: {}, 8 | case_insensitive: true, 9 | contains: [ 10 | Mode(className: "string", begin: "\\[\n(multipart)?", end: "\\]\n"), 11 | Mode( 12 | className: "string", 13 | begin: "\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"), 14 | Mode(className: "string", begin: "(\\+|-)\\d+"), 15 | Mode(className: "keyword", relevance: 10, variants: [ 16 | Mode( 17 | begin: 18 | "^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"), 19 | Mode(begin: "^progress(:?)(\\s+)?(pop|push)?"), 20 | Mode(begin: "^tags:"), 21 | Mode(begin: "^time:") 22 | ]) 23 | ]); 24 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/taggerscript.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final taggerscript = Mode(refs: {}, contains: [ 7 | Mode( 8 | className: "comment", 9 | begin: "\\\$noop\\(", 10 | end: "\\)", 11 | contains: [ 12 | Mode( 13 | begin: "\\(", 14 | end: "\\)", 15 | contains: [Mode(self: true), Mode(begin: "\\\\.")]) 16 | ], 17 | relevance: 10), 18 | Mode( 19 | className: "keyword", 20 | begin: "\\\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*", 21 | end: "\\(", 22 | excludeEnd: true), 23 | Mode(className: "variable", begin: "%[_a-zA-Z0-9:]*", end: "%"), 24 | Mode(className: "symbol", begin: "\\\\.") 25 | ]); 26 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/tap.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final tap = Mode( 7 | refs: {}, 8 | case_insensitive: true, 9 | contains: [ 10 | HASH_COMMENT_MODE, 11 | Mode(className: "meta", variants: [ 12 | Mode(begin: "^TAP version (\\d+)\$"), 13 | Mode(begin: "^1\\.\\.(\\d+)\$") 14 | ]), 15 | Mode( 16 | begin: "(s+)?---\$", 17 | end: "\\.\\.\\.\$", 18 | subLanguage: ["yaml"], 19 | relevance: 0), 20 | Mode(className: "number", begin: " (\\d+) "), 21 | Mode( 22 | className: "symbol", 23 | variants: [Mode(begin: "^ok"), Mode(begin: "^not ok")]) 24 | ]); 25 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/vbscript-html.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final vbscriptHtml = Mode(refs: {}, subLanguage: [ 7 | "xml" 8 | ], contains: [ 9 | Mode(begin: "<%", end: "%>", subLanguage: ["vbscript"]) 10 | ]); 11 | -------------------------------------------------------------------------------- /lib/shared/highlight/src/node.dart: -------------------------------------------------------------------------------- 1 | class Node { 2 | String? className; 3 | String? value; 4 | List? children; 5 | bool noPrefix; 6 | 7 | Node({this.className, this.value, this.children, this.noPrefix = false}); 8 | } 9 | -------------------------------------------------------------------------------- /lib/shared/highlight/src/utils.dart: -------------------------------------------------------------------------------- 1 | /// Extends builtin String.substring function 2 | /// 3 | /// RangeError: Value not in range 4 | String substring(String input, int startIndex, [int? endIndex]) { 5 | endIndex ??= input.length; 6 | 7 | if (startIndex > endIndex) { 8 | var tmp = startIndex; 9 | startIndex = endIndex; 10 | endIndex = tmp; 11 | } 12 | 13 | if (startIndex < 0 || startIndex > input.length) { 14 | startIndex = 0; 15 | } 16 | 17 | if (endIndex < 0 || endIndex > input.length) { 18 | endIndex = input.length; 19 | } 20 | 21 | return input.substring(startIndex, endIndex); 22 | } 23 | -------------------------------------------------------------------------------- /lib/shared/paging_controller.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:flutter/material.dart'; 4 | import 'package:labplus_for_gitlab/models/models.dart'; 5 | import 'package:labplus_for_gitlab/shared/shared.dart'; 6 | 7 | import 'constants/common.dart'; 8 | 9 | mixin PagingController { 10 | List initPagingList(PagingResponse? res) => 11 | res != null && res.data != null ? res.data! : []; 12 | 13 | Future scrollListener( 14 | ScrollController scrollController, 15 | PagingResponse res, 16 | Future Function(int) action, 17 | int page) async { 18 | if (scrollController.position.extentAfter > 19 | CommonConstants.scrollExtendAfter || 20 | res.nextPage == null || 21 | page >= res.nextPage!) { 22 | return; 23 | } 24 | await action(res.nextPage!); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/shared/shared.dart: -------------------------------------------------------------------------------- 1 | export 'constants/constants.dart'; 2 | export 'data/data.dart'; 3 | export 'utils/utils.dart'; 4 | export 'widgets/widgets.dart'; 5 | export 'http_controller.dart'; 6 | export 'paging_controller.dart'; 7 | -------------------------------------------------------------------------------- /lib/shared/utils/common_widget.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:fluttertoast/fluttertoast.dart'; 3 | 4 | class CommonWidget { 5 | static SizedBox rowHeight({double height = 30}) { 6 | return SizedBox(height: height); 7 | } 8 | 9 | static SizedBox rowWidth({double width = 30}) { 10 | return SizedBox(width: width); 11 | } 12 | 13 | static void toast(String error) async { 14 | await Fluttertoast.showToast( 15 | msg: error, 16 | toastLength: Toast.LENGTH_SHORT, 17 | gravity: ToastGravity.BOTTOM, 18 | timeInSecForIosWeb: 3, 19 | backgroundColor: Colors.white, 20 | textColor: Colors.black, 21 | fontSize: 18.0); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/shared/utils/delayed_request.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:labplus_for_gitlab/shared/shared.dart'; 4 | 5 | class DelayedRequest { 6 | Timer? _timer; 7 | String _lastSearchText = ""; 8 | String _search = ""; 9 | 10 | DelayedRequest(); 11 | 12 | Future request(String s, Future Function(String) action) async { 13 | _search = s; 14 | 15 | if (s.isEmpty) { 16 | _timer?.cancel(); 17 | await action(_search); 18 | } 19 | 20 | if (_timer != null && _timer!.isActive) { 21 | return; 22 | } 23 | _timer = Timer.periodic(CommonConstants.searchRequestDelay, (timer) async { 24 | if (_lastSearchText == _search) { 25 | return; 26 | } 27 | _lastSearchText = _search; 28 | await action(_search); 29 | }); 30 | } 31 | 32 | void dispose() { 33 | _timer?.cancel(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /lib/shared/utils/focus.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | 3 | class AppFocus { 4 | static void nextFocus(BuildContext context) { 5 | FocusScope.of(context).requestFocus(FocusNode()); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /lib/shared/utils/generics_utils.dart: -------------------------------------------------------------------------------- 1 | class GenericsUtils { 2 | static T? cast(x) { 3 | if (x is T) { 4 | return x; 5 | } else { 6 | return null; 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /lib/shared/utils/navigator_helper.dart: -------------------------------------------------------------------------------- 1 | import 'package:get/get.dart'; 2 | 3 | class NavigatorHelper { 4 | static void popLastScreens({ 5 | required int popCount, 6 | }) { 7 | int count = 0; 8 | while (count < popCount) { 9 | Get.back(); 10 | count++; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/shared/utils/regex.dart: -------------------------------------------------------------------------------- 1 | class Regex { 2 | static bool isEmail(String email) { 3 | RegExp regExp = RegExp(r'\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*'); 4 | return regExp.hasMatch(email); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /lib/shared/utils/utils.dart: -------------------------------------------------------------------------------- 1 | export 'common_widget.dart'; 2 | export 'focus.dart'; 3 | export 'navigator_helper.dart'; 4 | export 'regex.dart'; 5 | export 'size_config.dart'; 6 | export 'delayed_request.dart'; 7 | export 'generics_utils.dart'; 8 | -------------------------------------------------------------------------------- /lib/shared/widgets/drawer_list_tile.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class DrawerListTile extends StatelessWidget { 4 | final String title; 5 | final bool? selected; 6 | final IconData icon; 7 | final Function onTap; 8 | 9 | const DrawerListTile({ 10 | super.key, 11 | required this.title, 12 | this.selected, 13 | required this.icon, 14 | required this.onTap, 15 | }); 16 | 17 | @override 18 | Widget build(BuildContext context) { 19 | return ListTile( 20 | tileColor: Colors.transparent, 21 | selected: selected ?? false, 22 | leading: Icon(icon), 23 | title: Text(title, style: const TextStyle()), 24 | onTap: () => onTap(), 25 | ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/shared/widgets/drawer_list_tile_divider.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class DrawerListTileDivider extends StatelessWidget { 4 | const DrawerListTileDivider({super.key}); 5 | 6 | @override 7 | Widget build(BuildContext context) { 8 | return const Divider( 9 | color: Colors.grey, indent: 15, endIndent: 50, thickness: 0.2); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/shared/widgets/empty_widget.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:get/get.dart'; 3 | 4 | class EmptyWidget extends StatelessWidget { 5 | const EmptyWidget({super.key}); 6 | 7 | @override 8 | Widget build(BuildContext context) { 9 | return Stack(children: [ 10 | Center( 11 | child: Text( 12 | 'Empty', 13 | style: TextStyle(color: Get.theme.hintColor, fontSize: 18), 14 | ), 15 | ), 16 | ListView() 17 | ]); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/shared/widgets/http_error_widget.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:get/get.dart'; 3 | 4 | class HttpErrorWidget extends StatelessWidget { 5 | const HttpErrorWidget({super.key}); 6 | 7 | @override 8 | Widget build(BuildContext context) { 9 | return Stack(children: [ 10 | Center( 11 | child: Text( 12 | 'Error', 13 | style: TextStyle(color: Get.theme.hintColor, fontSize: 18), 14 | ), 15 | ), 16 | ListView() 17 | ]); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/shared/widgets/http_future_builder.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:labplus_for_gitlab/shared/shared.dart'; 3 | 4 | class HttpFutureBuilder extends StatelessWidget { 5 | final HttpState state; 6 | final Widget child; 7 | 8 | const HttpFutureBuilder({super.key, required this.state, required this.child}); 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | if (state == HttpState.loading) { 13 | return const LoadingWidget(); 14 | } else if (state == HttpState.empty) { 15 | return const EmptyWidget(); 16 | } else if (state == HttpState.ok) { 17 | return child; 18 | } else if (state == HttpState.tokenExpired) { 19 | return const HttpTokenExpiredWidget(); 20 | } else { 21 | return const HttpErrorWidget(); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/shared/widgets/http_token_expired_widget.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:get/get.dart'; 3 | 4 | class HttpTokenExpiredWidget extends StatelessWidget { 5 | const HttpTokenExpiredWidget({super.key}); 6 | 7 | @override 8 | Widget build(BuildContext context) { 9 | return Stack(children: [ 10 | Center( 11 | child: Text( 12 | 'Your access token is expired', 13 | style: TextStyle(color: Get.theme.hintColor, fontSize: 18), 14 | ), 15 | ), 16 | ListView() 17 | ]); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/shared/widgets/loading_widget.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:get/get.dart'; 3 | 4 | class LoadingWidget extends StatelessWidget { 5 | const LoadingWidget({super.key}); 6 | 7 | @override 8 | Widget build(BuildContext context) { 9 | return Stack(children: [ 10 | Center( 11 | child: Text( 12 | 'Loading...', 13 | style: TextStyle(color: Get.theme.hintColor, fontSize: 18), 14 | ), 15 | ), 16 | ListView() 17 | ]); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/shared/widgets/native_widgets.dart: -------------------------------------------------------------------------------- 1 | import 'dart:io'; 2 | 3 | import 'package:flutter/cupertino.dart'; 4 | import 'package:flutter/material.dart'; 5 | 6 | Icon searchLeadingIcon() { 7 | return Platform.isAndroid 8 | ? const Icon(Icons.arrow_back) 9 | : const Icon(Icons.arrow_back_ios); 10 | } 11 | 12 | class AppSwitch extends StatelessWidget { 13 | final bool value; 14 | final void Function(bool)? onChanged; 15 | 16 | const AppSwitch({ 17 | super.key, 18 | required this.value, 19 | required this.onChanged, 20 | }); 21 | 22 | @override 23 | Widget build(BuildContext context) { 24 | return Platform.isAndroid 25 | ? Switch(value: value, onChanged: onChanged) 26 | : CupertinoSwitch(value: value, onChanged: onChanged); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/shared/widgets/widgets.dart: -------------------------------------------------------------------------------- 1 | export 'input_field.dart'; 2 | export 'multiline_input_field.dart'; 3 | export 'app_drawer.dart'; 4 | export 'drawer_list_tile.dart'; 5 | export 'drawer_list_tile_divider.dart'; 6 | export 'syntax_highlighter.dart'; 7 | export 'x_elevated_button.dart'; 8 | export 'question_message_preset.dart'; 9 | export 'list_avatar.dart'; 10 | export 'list_visibility_text_avatar.dart'; 11 | export 'list_visibility_image_avatar.dart'; 12 | export 'event_description_label.dart'; 13 | export 'datetime_field.dart'; 14 | export 'app_highlight_view.dart'; 15 | export 'native_widgets.dart'; 16 | export 'loading_widget.dart'; 17 | export 'http_error_widget.dart'; 18 | export 'http_token_expired_widget.dart'; 19 | export 'empty_widget.dart'; 20 | export 'color_label.dart'; 21 | export 'http_future_builder.dart'; 22 | export 'milestone_state_label.dart'; 23 | export 'cross_fade.dart'; 24 | export 'app_markdown_view.dart'; 25 | -------------------------------------------------------------------------------- /lib/theme/theme.dart: -------------------------------------------------------------------------------- 1 | export 'theme_data.dart'; 2 | export 'theme_utils.dart'; 3 | -------------------------------------------------------------------------------- /lib/theme/theme_utils.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ThemeUtils { 4 | static Color computeIluminance(Color background) { 5 | return background.computeLuminance() > 0.5 ? Colors.black : Colors.white; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /linux/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral 2 | -------------------------------------------------------------------------------- /linux/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 | #include 10 | #include 11 | 12 | void fl_register_plugins(FlPluginRegistry* registry) { 13 | g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = 14 | fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); 15 | flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); 16 | g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = 17 | fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); 18 | url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); 19 | } 20 | -------------------------------------------------------------------------------- /linux/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 fl_register_plugins(FlPluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /linux/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | flutter_secure_storage_linux 7 | url_launcher_linux 8 | ) 9 | 10 | list(APPEND FLUTTER_FFI_PLUGIN_LIST 11 | ) 12 | 13 | set(PLUGIN_BUNDLED_LIBRARIES) 14 | 15 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 16 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) 17 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 18 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 19 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 20 | endforeach(plugin) 21 | 22 | foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) 23 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) 24 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) 25 | endforeach(ffi_plugin) 26 | -------------------------------------------------------------------------------- /linux/main.cc: -------------------------------------------------------------------------------- 1 | #include "my_application.h" 2 | 3 | int main(int argc, char** argv) { 4 | g_autoptr(MyApplication) app = my_application_new(); 5 | return g_application_run(G_APPLICATION(app), argc, argv); 6 | } 7 | -------------------------------------------------------------------------------- /linux/my_application.h: -------------------------------------------------------------------------------- 1 | #ifndef FLUTTER_MY_APPLICATION_H_ 2 | #define FLUTTER_MY_APPLICATION_H_ 3 | 4 | #include 5 | 6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, 7 | GtkApplication) 8 | 9 | /** 10 | * my_application_new: 11 | * 12 | * Creates a new Flutter-based application. 13 | * 14 | * Returns: a new #MyApplication. 15 | */ 16 | MyApplication* my_application_new(); 17 | 18 | #endif // FLUTTER_MY_APPLICATION_H_ 19 | -------------------------------------------------------------------------------- /macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/dgph 7 | **/xcuserdata/ 8 | -------------------------------------------------------------------------------- /macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /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/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/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 = labplus_for_gitlab 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = dev.labplus.labplusForGitlab 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2022 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/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/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 | 8 | 9 | -------------------------------------------------------------------------------- /release_android.bat: -------------------------------------------------------------------------------- 1 | fvm flutter build appbundle --obfuscate --release --no-tree-shake-icons --split-debug-info=C:\debugsymbols -------------------------------------------------------------------------------- /web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/web/favicon.png -------------------------------------------------------------------------------- /web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/web/icons/Icon-192.png -------------------------------------------------------------------------------- /web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/web/icons/Icon-512.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /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.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | void RegisterPlugins(flutter::PluginRegistry* registry) { 14 | FlutterSecureStorageWindowsPluginRegisterWithRegistrar( 15 | registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); 16 | SharePlusWindowsPluginCApiRegisterWithRegistrar( 17 | registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); 18 | UrlLauncherWindowsRegisterWithRegistrar( 19 | registry->GetRegistrarForPlugin("UrlLauncherWindows")); 20 | } 21 | -------------------------------------------------------------------------------- /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/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/thelooter/labplus_for_gitlab/ea1596400bb033ea4a5df03436423de4463ffc7e/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------