├── .fvm ├── flutter_sdk └── fvm_config.json ├── .gitignore ├── .metadata ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── analysis_options.yaml ├── android ├── .gitignore ├── app │ ├── build.gradle │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── gitplus_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.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 ├── 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 │ ├── 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 │ ├── diff.dart │ ├── diff.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 │ ├── 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 │ ├── 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 │ │ ├── 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 │ │ ├── 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 │ ├── 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_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_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 ├── test └── widget_test.dart ├── web ├── favicon.png ├── icons │ ├── Icon-192.png │ ├── Icon-512.png │ ├── Icon-maskable-192.png │ └── Icon-maskable-512.png ├── index.html └── manifest.json └── windows ├── .gitignore ├── CMakeLists.txt ├── flutter ├── CMakeLists.txt ├── generated_plugin_registrant.cc ├── generated_plugin_registrant.h └── generated_plugins.cmake └── runner ├── CMakeLists.txt ├── Runner.rc ├── flutter_window.cpp ├── flutter_window.h ├── main.cpp ├── resource.h ├── resources └── app_icon.ico ├── runner.exe.manifest ├── utils.cpp ├── utils.h ├── win32_window.cpp └── win32_window.h /.fvm/flutter_sdk: -------------------------------------------------------------------------------- 1 | C:/Users/marek.gvora/fvm/versions/3.0.4 -------------------------------------------------------------------------------- /.fvm/fvm_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "flutterSdkVersion": "3.0.4", 3 | "flavors": {} 4 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | **/ios/Flutter/.last_build_id 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | .fvm/ 33 | /build/ 34 | 35 | # Web related 36 | lib/generated_plugin_registrant.dart 37 | 38 | # Symbolication related 39 | app.*.symbols 40 | 41 | # Obfuscation related 42 | app.*.map.json 43 | 44 | # Android Studio will place build artifacts here 45 | /android/app/debug 46 | /android/app/profile 47 | /android/app/release 48 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "**/*.g.dart": true 4 | }, 5 | "dart.flutterSdkPath": "/Users/marekgvora/Documents/Develop/gitplus_for_gitlab/.fvm/flutter_sdk" 6 | } 7 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/gitplus_for_gitlab/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.gitlabplus.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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/android/app/src/main/res/drawable-hdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/android/app/src/main/res/drawable-mdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-night-v21/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/android/app/src/main/res/drawable-xhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/android/app/src/main/res/drawable-xxhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/android/app/src/main/res/drawable-xxxhdpi/splash.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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 | buildscript { 2 | ext.kotlin_version = '1.6.10' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:7.1.2' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | mavenCentral() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /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-7.4-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/assets/splash.png -------------------------------------------------------------------------------- /assets/splash_400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2854.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2855.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2855.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2856.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2856.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2857.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2857.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2858.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2858.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2861.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2861.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2862.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2862.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2863.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2863.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2876.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2876.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2886.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2886.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2887.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2887.PNG -------------------------------------------------------------------------------- /docs/images/IMG_2936.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/IMG_2936.PNG -------------------------------------------------------------------------------- /docs/images/IMG_3133.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/docs/images/Simulator Screen Shot - iPad Pro (12.9-inch) (5th generation) - 2022-02-20 at 22.04.21.png -------------------------------------------------------------------------------- /fonts/SourceCodePro-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-Black.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-BlackIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-BlackIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-Bold.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-BoldIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-BoldIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-ExtraLight.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-ExtraLightIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-ExtraLightIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-It.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-It.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-Light.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-LightIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-LightIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-Medium.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-MediumIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-MediumIt.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-Regular.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/fonts/SourceCodePro-Semibold.ttf -------------------------------------------------------------------------------- /fonts/SourceCodePro-SemiboldIt.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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:gitplus_for_gitlab/api/api.dart'; 2 | import 'package:get/get.dart'; 3 | import 'package:gitplus_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:gitplus_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:gitplus_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/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/author.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'author.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | Author _$AuthorFromJson(Map json) => Author( 10 | id: json['id'] as int?, 11 | name: json['name'] as String? ?? "", 12 | username: json['username'] as String? ?? "", 13 | state: json['state'] as String? ?? "", 14 | avatarUrl: json['avatar_url'] as String? ?? "", 15 | webUrl: json['web_url'] as String? ?? "", 16 | ); 17 | 18 | Map _$AuthorToJson(Author instance) => { 19 | 'id': instance.id, 20 | 'name': instance.name, 21 | 'username': instance.username, 22 | 'state': instance.state, 23 | 'avatar_url': instance.avatarUrl, 24 | 'web_url': instance.webUrl, 25 | }; 26 | -------------------------------------------------------------------------------- /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/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/group_label.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'group_label.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class GroupLabel { 7 | final int? id; 8 | final String? name; 9 | final String? color; 10 | final String? textColor; 11 | final String? description; 12 | final String? descriptionHtml; 13 | final int? openIssuesCount; 14 | final int? closedIssuesCount; 15 | final int? openMergeRequestsCount; 16 | final bool? subscribed; 17 | 18 | GroupLabel({ 19 | this.id, 20 | this.name, 21 | this.color, 22 | this.textColor, 23 | this.description, 24 | this.descriptionHtml, 25 | this.openIssuesCount, 26 | this.closedIssuesCount, 27 | this.openMergeRequestsCount, 28 | this.subscribed, 29 | }); 30 | 31 | factory GroupLabel.fromJson(Map json) => 32 | _$GroupLabelFromJson(json); 33 | 34 | Map toJson() => _$GroupLabelToJson(this); 35 | } 36 | -------------------------------------------------------------------------------- /lib/models/member.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'member.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class Member { 7 | final int? id; 8 | final String? username; 9 | final String? name; 10 | final String? state; // MemberStates 11 | final String? avatarUrl; 12 | final String? webUrl; 13 | final int? accessLevel; // MemberAccessLevel 14 | final DateTime? createdAt; 15 | final DateTime? expiresAt; 16 | final String? membershipState; 17 | 18 | Member({ 19 | this.id = -1, 20 | this.username = "", 21 | this.name = "", 22 | this.state = "", 23 | this.avatarUrl = "", 24 | this.webUrl = "", 25 | this.accessLevel = -1, 26 | this.createdAt, 27 | this.expiresAt, 28 | this.membershipState = "", 29 | }); 30 | 31 | factory Member.fromJson(Map json) => _$MemberFromJson(json); 32 | 33 | Map toJson() => _$MemberToJson(this); 34 | } 35 | -------------------------------------------------------------------------------- /lib/models/milestone.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'milestone.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class Milestone { 7 | final int? id; 8 | final int? iid; 9 | final int? projectId; 10 | final String? title; 11 | final String? description; 12 | final DateTime? dueDate; 13 | final DateTime? startDate; 14 | final String? state; // MilestoneState 15 | final DateTime? updatedAt; 16 | final DateTime? createdAt; 17 | final bool? expired; 18 | 19 | Milestone({ 20 | this.id, 21 | this.iid, 22 | this.projectId, 23 | this.title, 24 | this.description, 25 | this.dueDate, 26 | this.startDate, 27 | this.state, 28 | this.updatedAt, 29 | this.createdAt, 30 | this.expired, 31 | }); 32 | 33 | factory Milestone.fromJson(Map json) => 34 | _$MilestoneFromJson(json); 35 | 36 | Map toJson() => _$MilestoneToJson(this); 37 | } 38 | -------------------------------------------------------------------------------- /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_milestone.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'project_milestone.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake) 6 | class ProjectMilestone { 7 | final int? id; 8 | final int? iid; 9 | final int? projectId; 10 | final String? title; 11 | final String? description; 12 | final DateTime? dueDate; 13 | final DateTime? startDate; 14 | final String? state; // MilestoneState 15 | final DateTime? updatedAt; 16 | final DateTime? createdAt; 17 | final bool? expired; 18 | 19 | ProjectMilestone({ 20 | this.id, 21 | this.iid, 22 | this.projectId, 23 | this.title, 24 | this.description, 25 | this.dueDate, 26 | this.startDate, 27 | this.state, 28 | this.updatedAt, 29 | this.createdAt, 30 | this.expired, 31 | }); 32 | 33 | factory ProjectMilestone.fromJson(Map json) => 34 | _$ProjectMilestoneFromJson(json); 35 | 36 | Map toJson() => _$ProjectMilestoneToJson(this); 37 | } 38 | -------------------------------------------------------------------------------- /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_namespace.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'project_namespace.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ProjectNamespace _$ProjectNamespaceFromJson(Map json) => 10 | ProjectNamespace( 11 | id: json['id'] as int?, 12 | name: json['name'] as String?, 13 | path: json['path'] as String?, 14 | fullPath: json['full_path'] as String?, 15 | avatarUrl: json['avatar_url'] as String?, 16 | webUrl: json['web_url'] as String?, 17 | ); 18 | 19 | Map _$ProjectNamespaceToJson(ProjectNamespace instance) => 20 | { 21 | 'id': instance.id, 22 | 'name': instance.name, 23 | 'path': instance.path, 24 | 'full_path': instance.fullPath, 25 | 'avatar_url': instance.avatarUrl, 26 | 'web_url': instance.webUrl, 27 | }; 28 | -------------------------------------------------------------------------------- /lib/models/project_permissions.dart: -------------------------------------------------------------------------------- 1 | import 'package:gitplus_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/project_permissions.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'project_permissions.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ProjectPermissions _$ProjectPermissionsFromJson(Map json) => 10 | ProjectPermissions( 11 | projectAccess: json['project_access'] == null 12 | ? null 13 | : PermissionAccess.fromJson( 14 | json['project_access'] as Map), 15 | groupAccess: json['group_access'] == null 16 | ? null 17 | : PermissionAccess.fromJson( 18 | json['group_access'] as Map), 19 | ); 20 | 21 | Map _$ProjectPermissionsToJson(ProjectPermissions instance) => 22 | { 23 | 'project_access': instance.projectAccess, 24 | 'group_access': instance.groupAccess, 25 | }; 26 | -------------------------------------------------------------------------------- /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_group_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'add_group_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | AddGroupRequest _$AddGroupRequestFromJson(Map json) => 10 | AddGroupRequest( 11 | name: json['name'] as String?, 12 | path: json['path'] as String?, 13 | visibility: json['visibility'] as String?, 14 | ); 15 | 16 | Map _$AddGroupRequestToJson(AddGroupRequest 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('name', instance.name); 26 | writeNotNull('path', instance.path); 27 | writeNotNull('visibility', instance.visibility); 28 | return val; 29 | } 30 | -------------------------------------------------------------------------------- /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/commits_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'commits_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class CommitsReqest { 7 | final int? perPage; 8 | final int? page; 9 | final String? refName; 10 | final DateTime? since; 11 | final DateTime? until; 12 | final String? path; 13 | final bool? all; 14 | final bool? withStatus; 15 | final bool? firstParent; 16 | final String? order; 17 | final bool? trailers; 18 | 19 | CommitsReqest({ 20 | this.perPage, 21 | this.page, 22 | this.refName, 23 | this.since, 24 | this.until, 25 | this.path, 26 | this.all, 27 | this.withStatus, 28 | this.firstParent, 29 | this.order, 30 | this.trailers, 31 | }); 32 | 33 | factory CommitsReqest.fromJson(Map json) => 34 | _$CommitsReqestFromJson(json); 35 | 36 | Map toJson() => _$CommitsReqestToJson(this); 37 | } 38 | -------------------------------------------------------------------------------- /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/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/members_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'members_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | MembersRequest _$MembersRequestFromJson(Map json) => 10 | MembersRequest( 11 | perPage: json['per_page'] as int?, 12 | page: json['page'] as int?, 13 | query: json['query'] as String?, 14 | ); 15 | 16 | Map _$MembersRequestToJson(MembersRequest 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('per_page', instance.perPage); 26 | writeNotNull('page', instance.page); 27 | writeNotNull('query', instance.query); 28 | return val; 29 | } 30 | -------------------------------------------------------------------------------- /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/new_issue_note_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'new_issue_note_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | NewIssueNoteRequest _$NewIssueNoteRequestFromJson(Map json) => 10 | NewIssueNoteRequest( 11 | body: json['body'] as String?, 12 | confidential: json['confidential'] as bool?, 13 | ); 14 | 15 | Map _$NewIssueNoteRequestToJson(NewIssueNoteRequest 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('body', instance.body); 25 | writeNotNull('confidential', instance.confidential); 26 | return val; 27 | } 28 | -------------------------------------------------------------------------------- /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/notes_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'notes_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | NotesRequest _$NotesRequestFromJson(Map json) => NotesRequest( 10 | perPage: json['per_page'] as int?, 11 | page: json['page'] as int?, 12 | sort: json['sort'] as String?, 13 | orderBy: json['order_by'] as String?, 14 | ); 15 | 16 | Map _$NotesRequestToJson(NotesRequest 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('per_page', instance.perPage); 26 | writeNotNull('page', instance.page); 27 | writeNotNull('sort', instance.sort); 28 | writeNotNull('order_by', instance.orderBy); 29 | return val; 30 | } 31 | -------------------------------------------------------------------------------- /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/projects_request.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'projects_request.g.dart'; 4 | 5 | @JsonSerializable(fieldRename: FieldRename.snake, includeIfNull: false) 6 | class ProjectsRequest { 7 | final int? perPage; 8 | final int? page; 9 | final String? search; 10 | final bool? membership; 11 | final bool? simple; 12 | final bool? starred; 13 | final String? visibility; // GitLabVisibility 14 | final String? orderBy; // ProjectRequestOrderBy 15 | final String? sort; 16 | 17 | ProjectsRequest({ 18 | this.perPage, 19 | this.page, 20 | this.search, 21 | this.membership, 22 | this.simple, 23 | this.starred, 24 | this.visibility, 25 | this.orderBy, 26 | this.sort = "desc", 27 | }); 28 | 29 | factory ProjectsRequest.fromJson(Map json) => 30 | _$ProjectsRequestFromJson(json); 31 | 32 | Map toJson() => _$ProjectsRequestToJson(this); 33 | } 34 | -------------------------------------------------------------------------------- /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/starrers_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'starrers_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | StarrersRequest _$StarrersRequestFromJson(Map json) => 10 | StarrersRequest( 11 | perPage: json['per_page'] as int?, 12 | page: json['page'] as int?, 13 | search: json['search'] as String?, 14 | ); 15 | 16 | Map _$StarrersRequestToJson(StarrersRequest 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('per_page', instance.perPage); 26 | writeNotNull('page', instance.page); 27 | writeNotNull('search', instance.search); 28 | return val; 29 | } 30 | -------------------------------------------------------------------------------- /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_issue_note_request.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'update_issue_note_request.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | UpdateIssueNoteRequest _$UpdateIssueNoteRequestFromJson( 10 | Map json) => 11 | UpdateIssueNoteRequest( 12 | body: json['body'] as String?, 13 | confidential: json['confidential'] as bool?, 14 | ); 15 | 16 | Map _$UpdateIssueNoteRequestToJson( 17 | UpdateIssueNoteRequest instance) { 18 | final val = {}; 19 | 20 | void writeNotNull(String key, dynamic value) { 21 | if (value != null) { 22 | val[key] = value; 23 | } 24 | } 25 | 26 | writeNotNull('body', instance.body); 27 | writeNotNull('confidential', instance.confidential); 28 | return val; 29 | } 30 | -------------------------------------------------------------------------------- /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/starrers.dart: -------------------------------------------------------------------------------- 1 | import 'package:gitplus_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:gitplus_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/models/user.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'user.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | User _$UserFromJson(Map json) => User( 10 | id: json['id'] as int? ?? -1, 11 | username: json['username'] as String? ?? "", 12 | name: json['name'] as String? ?? "", 13 | email: json['email'] as String? ?? "", 14 | avatarUrl: json['avatar_url'] as String? ?? "", 15 | webUrl: json['web_url'] as String? ?? "", 16 | ); 17 | 18 | Map _$UserToJson(User instance) => { 19 | 'id': instance.id, 20 | 'username': instance.username, 21 | 'name': instance.name, 22 | 'email': instance.email, 23 | 'avatar_url': instance.avatarUrl, 24 | 'web_url': instance.webUrl, 25 | }; 26 | -------------------------------------------------------------------------------- /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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/modules/image_viewer/image_viewer.dart'; 4 | import 'package:gitplus_for_gitlab/shared/shared.dart'; 5 | 6 | class ImageViewerScreen extends GetView { 7 | const ImageViewerScreen({Key? key}) : super(key: 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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/api/api.dart'; 3 | import 'package:gitplus_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:gitplus_for_gitlab/shared/highlight/src/highlight.dart'; 2 | import 'package:gitplus_for_gitlab/shared/highlight/languages/all.dart'; 3 | 4 | export 'package:gitplus_for_gitlab/shared/highlight/src/highlight.dart'; 5 | export 'package:gitplus_for_gitlab/shared/highlight/src/node.dart'; 6 | export 'package:gitplus_for_gitlab/shared/highlight/src/mode.dart'; 7 | export 'package:gitplus_for_gitlab/shared/highlight/src/result.dart'; 8 | 9 | final highlight = Highlight()..registerLanguages(allLanguages); 10 | -------------------------------------------------------------------------------- /lib/shared/highlight/highlight_core.dart: -------------------------------------------------------------------------------- 1 | import 'package:gitplus_for_gitlab/shared/highlight/src/highlight.dart'; 2 | 3 | export 'package:gitplus_for_gitlab/shared/highlight/src/highlight.dart'; 4 | export 'package:gitplus_for_gitlab/shared/highlight/src/node.dart'; 5 | export 'package:gitplus_for_gitlab/shared/highlight/src/mode.dart'; 6 | export 'package:gitplus_for_gitlab/shared/highlight/src/result.dart'; 7 | 8 | final highlight = Highlight(); 9 | -------------------------------------------------------------------------------- /lib/shared/highlight/languages/awk.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final awk = Mode(refs: {}, keywords: { 7 | "keyword": 8 | "BEGIN END if else while do for in break continue delete next nextfile function func exit|10" 9 | }, contains: [ 10 | Mode(className: "variable", variants: [ 11 | Mode(begin: "\\\$[\\w\\d#@][\\w\\d_]*"), 12 | Mode(begin: "\\\$\\{(.*?)}") 13 | ]), 14 | Mode(className: "string", contains: [ 15 | BACKSLASH_ESCAPE 16 | ], variants: [ 17 | Mode(begin: "(u|b)?r?'''", end: "'''", relevance: 10), 18 | Mode(begin: "(u|b)?r?\"\"\"", end: "\"\"\"", relevance: 10), 19 | Mode(begin: "(u|r|ur)'", end: "'", relevance: 10), 20 | Mode(begin: "(u|r|ur)\"", end: "\"", relevance: 10), 21 | Mode(begin: "(b|br)'", end: "'"), 22 | Mode(begin: "(b|br)\"", end: "\""), 23 | APOS_STRING_MODE, 24 | QUOTE_STRING_MODE 25 | ]), 26 | REGEXP_MODE, 27 | HASH_COMMENT_MODE, 28 | NUMBER_MODE 29 | ]); 30 | -------------------------------------------------------------------------------- /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/brainfuck.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final brainfuck = Mode(refs: { 7 | '~contains~3~contains~0': 8 | Mode(className: "literal", begin: "[\\+\\-]", relevance: 0), 9 | }, aliases: [ 10 | "bf" 11 | ], contains: [ 12 | Mode( 13 | className: "comment", 14 | begin: "[^\\[\\]\\.,\\+\\-<> \r\n]", 15 | end: "[\\[\\]\\.,\\+\\-<> \r\n]", 16 | contains: [ 17 | PHRASAL_WORDS_MODE, 18 | Mode( 19 | className: "doctag", 20 | begin: "(?:TODO|FIXME|NOTE|BUG|XXX):", 21 | relevance: 0) 22 | ], 23 | returnEnd: true, 24 | relevance: 0), 25 | Mode(className: "title", begin: "[\\[\\]]", relevance: 0), 26 | Mode(className: "string", begin: "[\\.,]", relevance: 0), 27 | Mode( 28 | begin: "(?:\\+\\+|\\-\\-)", 29 | contains: [Mode(ref: '~contains~3~contains~0')]), 30 | Mode(ref: '~contains~3~contains~0') 31 | ]); 32 | -------------------------------------------------------------------------------- /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/diff.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final diff = Mode(refs: {}, aliases: [ 7 | "patch" 8 | ], contains: [ 9 | Mode(className: "meta", relevance: 10, variants: [ 10 | Mode(begin: "^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@\$"), 11 | Mode(begin: "^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*\$"), 12 | Mode(begin: "^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-\$") 13 | ]), 14 | Mode(className: "comment", variants: [ 15 | Mode(begin: "Index: ", end: "\$"), 16 | Mode(begin: "={3,}", end: "\$"), 17 | Mode(begin: "^\\-{3}", end: "\$"), 18 | Mode(begin: "^\\*{3} ", end: "\$"), 19 | Mode(begin: "^\\+{3}", end: "\$"), 20 | Mode(begin: "^\\*{15}\$") 21 | ]), 22 | Mode(className: "addition", begin: "^\\+", end: "\$"), 23 | Mode(className: "deletion", begin: "^\\-", end: "\$"), 24 | Mode(className: "addition", begin: "^\\!", end: "\$") 25 | ]); 26 | -------------------------------------------------------------------------------- /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/flix.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final flix = Mode(refs: {}, keywords: { 7 | "literal": "true false", 8 | "keyword": 9 | "case class def else enum if impl import in lat rel index let match namespace switch type yield with" 10 | }, contains: [ 11 | C_LINE_COMMENT_MODE, 12 | C_BLOCK_COMMENT_MODE, 13 | Mode(className: "string", begin: "'(.|\\\\[xXuU][a-zA-Z0-9]+)'"), 14 | Mode(className: "string", variants: [Mode(begin: "\"", end: "\"")]), 15 | Mode( 16 | className: "function", 17 | beginKeywords: "def", 18 | end: "[:={\\[(\\n;]", 19 | excludeEnd: true, 20 | contains: [ 21 | Mode( 22 | className: "title", 23 | begin: 24 | "[^0-9\\n\\t \"'(),.`{}\\[\\]:;][^\\n\\t \"'(),.`{}\\[\\]:;]+|[^0-9\\n\\t \"'(),.`{}\\[\\]:;=]") 25 | ]), 26 | C_NUMBER_MODE 27 | ]); 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/graphql.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | import '../src/mode.dart'; 4 | import '../src/common_modes.dart'; 5 | 6 | final graphql = Mode(refs: {}, aliases: [ 7 | "gql" 8 | ], keywords: { 9 | "keyword": 10 | "query mutation subscription|10 type interface union scalar fragment|10 enum on ...", 11 | "literal": "true false null" 12 | }, contains: [ 13 | HASH_COMMENT_MODE, 14 | QUOTE_STRING_MODE, 15 | NUMBER_MODE, 16 | Mode( 17 | className: "type", 18 | begin: "[^\\w][A-Z][a-z]", 19 | end: "\\W", 20 | excludeEnd: true), 21 | Mode( 22 | className: "literal", 23 | begin: "[^\\w][A-Z][A-Z]", 24 | end: "\\W", 25 | excludeEnd: true), 26 | Mode(className: "variable", begin: "\\\$", end: "\\W", excludeEnd: true), 27 | Mode(className: "keyword", begin: "[.]{2}", end: "\\."), 28 | Mode(className: "meta", begin: "@", end: "\\W", excludeEnd: true) 29 | ], illegal: "([;<']|BEGIN)"); 30 | -------------------------------------------------------------------------------- /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:gitplus_for_gitlab/models/models.dart'; 5 | import 'package:gitplus_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:gitplus_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/color_label.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:gitplus_for_gitlab/theme/theme.dart'; 3 | 4 | class ColorLabel extends StatelessWidget { 5 | final Color color; 6 | final String text; 7 | final double? fontSize; 8 | final EdgeInsets? padding; 9 | 10 | const ColorLabel({ 11 | Key? key, 12 | required this.color, 13 | required this.text, 14 | this.fontSize, 15 | this.padding, 16 | }) : super(key: key); 17 | 18 | @override 19 | Widget build(BuildContext context) { 20 | return Container( 21 | padding: 22 | padding ?? const EdgeInsets.symmetric(horizontal: 5, vertical: 3), 23 | decoration: BoxDecoration( 24 | color: color, 25 | borderRadius: const BorderRadius.all(Radius.circular(5)), 26 | ), 27 | child: Text( 28 | text, 29 | style: TextStyle( 30 | fontSize: fontSize, color: ThemeUtils.computeIluminance(color)), 31 | ), 32 | ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /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 | Key? key, 11 | required this.title, 12 | this.selected, 13 | required this.icon, 14 | required this.onTap, 15 | }) : super(key: key); 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({Key? key}) : super(key: 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({Key? key}) : super(key: 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({Key? key}) : super(key: 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:gitplus_for_gitlab/shared/shared.dart'; 3 | 4 | class HttpFutureBuilder extends StatelessWidget { 5 | final HttpState state; 6 | final Widget child; 7 | 8 | const HttpFutureBuilder({Key? key, required this.state, required this.child}) 9 | : super(key: key); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | if (state == HttpState.loading) { 14 | return const LoadingWidget(); 15 | } else if (state == HttpState.empty) { 16 | return const EmptyWidget(); 17 | } else if (state == HttpState.ok) { 18 | return child; 19 | } else if (state == HttpState.tokenExpired) { 20 | return const HttpTokenExpiredWidget(); 21 | } else { 22 | return const HttpErrorWidget(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /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({Key? key}) : super(key: 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/list_avatar.dart: -------------------------------------------------------------------------------- 1 | import 'package:cached_network_image/cached_network_image.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class ListAvatar extends StatelessWidget { 5 | final String avatarUrl; 6 | 7 | const ListAvatar({Key? key, required this.avatarUrl}) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return CircleAvatar( 12 | backgroundColor: Colors.transparent, 13 | child: CachedNetworkImage( 14 | color: Colors.transparent, 15 | imageUrl: avatarUrl, 16 | imageBuilder: (context, imageProvider) => Container( 17 | decoration: BoxDecoration( 18 | borderRadius: BorderRadius.circular(50), 19 | image: DecorationImage(image: imageProvider), 20 | ), 21 | ), 22 | ), 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /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({Key? key}) : super(key: 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/milestone_state_label.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:gitplus_for_gitlab/models/models.dart'; 3 | import 'package:gitplus_for_gitlab/shared/shared.dart'; 4 | 5 | class MilestoneStateLabel extends StatelessWidget { 6 | final ProjectMilestone item; 7 | final double? fontSize; 8 | 9 | const MilestoneStateLabel({Key? key, required this.item, this.fontSize}) 10 | : super(key: key); 11 | 12 | @override 13 | Widget build(BuildContext context) { 14 | var color = Colors.green; 15 | var text = 'Open'; 16 | if (item.state == MilestoneState.active && 17 | item.dueDate != null && 18 | item.dueDate!.isBefore(DateTime.now())) { 19 | color = Colors.amber; 20 | text = 'Expired'; 21 | } else if (item.state == MilestoneState.closed) { 22 | color = Colors.red; 23 | text = 'Closed'; 24 | } 25 | 26 | return ColorLabel( 27 | color: color, 28 | text: text, 29 | fontSize: fontSize, 30 | ); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /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 | Key? key, 18 | required this.value, 19 | required this.onChanged, 20 | }) : super(key: key); 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/question_message_preset.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:get/get.dart'; 3 | 4 | class QuestionMessagePresetsDialog extends StatelessWidget { 5 | final Function action; 6 | final String title; 7 | final String text; 8 | 9 | const QuestionMessagePresetsDialog({ 10 | Key? key, 11 | required this.action, 12 | required this.title, 13 | required this.text, 14 | }) : super(key: key); 15 | 16 | @override 17 | Widget build(BuildContext context) { 18 | return AlertDialog( 19 | title: Text(title), 20 | content: Text(text), 21 | actions: [ 22 | ElevatedButton( 23 | child: const Text('No'), 24 | onPressed: () { 25 | Navigator.pop(context); 26 | }, 27 | ), 28 | ElevatedButton( 29 | child: const Text('Yes'), 30 | onPressed: () { 31 | action(); 32 | Get.back(); 33 | }, 34 | ), 35 | ], 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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 = gitplus_for_gitlab 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.gitplusForGitlab 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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/web/favicon.png -------------------------------------------------------------------------------- /web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/web/icons/Icon-192.png -------------------------------------------------------------------------------- /web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/web/icons/Icon-512.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/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 | 12 | void RegisterPlugins(flutter::PluginRegistry* registry) { 13 | FlutterSecureStorageWindowsPluginRegisterWithRegistrar( 14 | registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); 15 | UrlLauncherWindowsRegisterWithRegistrar( 16 | registry->GetRegistrarForPlugin("UrlLauncherWindows")); 17 | } 18 | -------------------------------------------------------------------------------- /windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /windows/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | flutter_secure_storage_windows 7 | url_launcher_windows 8 | ) 9 | 10 | list(APPEND FLUTTER_FFI_PLUGIN_LIST 11 | ) 12 | 13 | set(PLUGIN_BUNDLED_LIBRARIES) 14 | 15 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 16 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) 17 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 18 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 19 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 20 | endforeach(plugin) 21 | 22 | foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) 23 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) 24 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) 25 | endforeach(ffi_plugin) 26 | -------------------------------------------------------------------------------- /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/mgvora/gitplus_for_gitlab/e94163e3e84d6c46c9859815184fbc5782f9a1c4/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /windows/runner/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_UTILS_H_ 2 | #define RUNNER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | // Creates a console for the process, and redirects stdout and stderr to 8 | // it for both the runner and the Flutter library. 9 | void CreateAndAttachConsole(); 10 | 11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string 12 | // encoded in UTF-8. Returns an empty std::string on failure. 13 | std::string Utf8FromUtf16(const wchar_t* utf16_string); 14 | 15 | // Gets the command line arguments passed in as a std::vector, 16 | // encoded in UTF-8. Returns an empty std::vector on failure. 17 | std::vector GetCommandLineArguments(); 18 | 19 | #endif // RUNNER_UTILS_H_ 20 | --------------------------------------------------------------------------------