├── .changes
└── .gitkeep
├── .config
└── nextest.toml
├── .gitattributes
├── .github
├── CONTRIBUTING.md
├── FUNDING.yml
├── cla
│ └── CLA.md
├── nextest-config.toml
├── scripts
│ └── flutter-integration-tests.sh
├── templates
│ ├── failure-report-template.md.tmpl
│ └── ios-manifest.plist.tmpl
└── workflows
│ ├── build-app.yml
│ ├── build-changelog.yml
│ ├── build-docs.yml
│ ├── check-changelog.yml
│ ├── check-docs.yml
│ ├── check-flutter-integration-tests.yml
│ ├── check-flutter-unittest.yml
│ ├── check-native.yml
│ ├── check-rust-integration-tests.yml
│ ├── check-styles.yml
│ ├── deploy-demo.yml
│ ├── deploy-docs.yml
│ ├── deploy-nightly.yml
│ ├── deploy-release.yml
│ └── update-translations.yml
├── .gitignore
├── .gitmodules
├── .vscode
└── launch.json
├── CHANGELOG.md
├── Cargo.lock
├── Cargo.toml
├── LICENSE-AGPL.txt
├── LICENSE.txt
├── Makefile.toml
├── Readme.md
├── app
├── .env
├── .gitignore
├── .metadata
├── README.md
├── analysis_options.yaml
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ ├── google-services.json
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── drawable-hdpi
│ │ │ │ └── logo_notification.png
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── kotlin
│ │ │ │ └── global
│ │ │ │ │ └── acter
│ │ │ │ │ └── app
│ │ │ │ │ └── MainActivity.kt
│ │ │ ├── logo_notification.png
│ │ │ └── res
│ │ │ │ ├── drawable-hdpi
│ │ │ │ └── logo_notification.png
│ │ │ │ ├── drawable-mdpi
│ │ │ │ └── logo_notification.png
│ │ │ │ ├── drawable-v21
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ └── logo_notification.png
│ │ │ │ ├── drawable-xxhdpi
│ │ │ │ └── logo_notification.png
│ │ │ │ ├── drawable-xxxhdpi
│ │ │ │ └── logo_notification.png
│ │ │ │ ├── drawable
│ │ │ │ ├── app_icon.png
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── raw
│ │ │ │ └── keep.xml
│ │ │ │ ├── values-night
│ │ │ │ └── styles.xml
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── assets
│ ├── fonts
│ │ ├── Inter.ttf
│ │ ├── Noto-COLRv1.ttf
│ │ ├── Roboto-Regular.ttf
│ │ └── RobotoMono-Regular.ttf
│ ├── icon
│ │ ├── acter-logo.svg
│ │ ├── acter.svg
│ │ ├── ic_left_chat_bubble_corner.svg
│ │ ├── ic_right_chat_bubble_corner.svg
│ │ ├── logo.png
│ │ ├── logo_foreground.png
│ │ ├── logo_foreground.svg
│ │ ├── signal_logo.png
│ │ ├── tray_icon.ico
│ │ ├── tray_icon.png
│ │ └── tray_icon.svg
│ ├── images
│ │ ├── chat_bg.png
│ │ ├── comms_onboard.png
│ │ ├── deliveredIcon.svg
│ │ ├── emptyPlaceholder.svg
│ │ ├── empty_activity.svg
│ │ ├── empty_chat.svg
│ │ ├── empty_event.svg
│ │ ├── empty_home.svg
│ │ ├── empty_messages.svg
│ │ ├── empty_pin.svg
│ │ ├── empty_space.svg
│ │ ├── empty_updates.svg
│ │ ├── encryptionkey.png
│ │ ├── forgot_password.svg
│ │ ├── genericError.svg
│ │ ├── intro.png
│ │ ├── modularity_onboard.png
│ │ ├── onboarding-collaboration.png
│ │ ├── onboarding-train-station.png
│ │ ├── onboarding-welcome.png
│ │ ├── seenIcon.svg
│ │ ├── sendIcon.svg
│ │ ├── sentIcon.svg
│ │ ├── spaces_onboard.png
│ │ ├── tasks.svg
│ │ ├── undraw_access_denied_re_awnf.svg
│ │ ├── undraw_project_completed_re_jr7u.svg
│ │ └── update_onboard.png
│ └── videos
│ │ └── .gitkeep
├── build.yaml
├── devtools_options.yaml
├── ios
│ ├── .gitignore
│ ├── ActerPushServiceExtension
│ │ ├── ActerLogger.swift
│ │ ├── ActerPushServiceExtension.entitlements
│ │ ├── Constants.swift
│ │ ├── Info.plist
│ │ ├── NotificationService.swift
│ │ ├── UNNotificationRequest.swift
│ │ └── acter.swift
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Podfile
│ ├── Podfile.lock
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ ├── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ │ └── LaunchImage.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── LaunchImage.png
│ │ │ │ ├── LaunchImage@2x.png
│ │ │ │ ├── LaunchImage@3x.png
│ │ │ │ └── README.md
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ ├── Runner-Bridging-Header.h
│ │ └── Runner.entitlements
│ ├── acterFFI
│ │ ├── acterFFI.h
│ │ └── module.modulemap
│ ├── exportOptions_nightly_adhoc.plist
│ └── exportOptions_release.plist
├── l10n.yaml
├── lib
│ ├── common
│ │ ├── actions
│ │ │ ├── add_space_object_ref.dart
│ │ │ ├── close_room.dart
│ │ │ ├── open_link.dart
│ │ │ ├── redact_content.dart
│ │ │ ├── report_content.dart
│ │ │ ├── select_space.dart
│ │ │ ├── show_limited_space_list.dart
│ │ │ └── show_parent_space_list.dart
│ │ ├── animations
│ │ │ └── like_animation.dart
│ │ ├── dialogs
│ │ │ ├── bottom_sheet_container_widget.dart
│ │ │ ├── deactivation_confirmation.dart
│ │ │ ├── logout_confirmation.dart
│ │ │ └── nuke_confirmation.dart
│ │ ├── drag_handle_widget.dart
│ │ ├── extensions
│ │ │ ├── acter_build_context.dart
│ │ │ ├── options.dart
│ │ │ ├── record_helpers.dart
│ │ │ └── ref_debounce.dart
│ │ ├── models
│ │ │ ├── attachment_media_state
│ │ │ │ ├── attachment_media_state.dart
│ │ │ │ └── attachment_media_state.freezed.dart
│ │ │ ├── keys.dart
│ │ │ ├── sync_state
│ │ │ │ ├── sync_state.dart
│ │ │ │ └── sync_state.freezed.dart
│ │ │ └── types.dart
│ │ ├── pages
│ │ │ ├── fatal_fail.dart
│ │ │ └── not_found.dart
│ │ ├── providers
│ │ │ ├── app_install_check_provider.dart
│ │ │ ├── app_state_provider.dart
│ │ │ ├── chat_providers.dart
│ │ │ ├── common_providers.dart
│ │ │ ├── keyboard_visbility_provider.dart
│ │ │ ├── network_provider.dart
│ │ │ ├── notifiers
│ │ │ │ ├── chat_notifiers.dart
│ │ │ │ ├── client_pref_notifier.dart
│ │ │ │ ├── reactions_notifiers.dart
│ │ │ │ ├── room_notifiers.dart
│ │ │ │ ├── space_notifiers.dart
│ │ │ │ └── sync_notifier.dart
│ │ │ ├── reactions_providers.dart
│ │ │ ├── room_providers.dart
│ │ │ ├── sdk_provider.dart
│ │ │ └── space_providers.dart
│ │ ├── skeletons
│ │ │ └── general_list_skeleton_widget.dart
│ │ ├── themes
│ │ │ ├── acter_theme.dart
│ │ │ ├── app_theme.dart
│ │ │ ├── chat_theme.dart
│ │ │ ├── colors
│ │ │ │ └── color_scheme.dart
│ │ │ └── components
│ │ │ │ ├── bottom_sheet_theme.dart
│ │ │ │ ├── button_theme.dart
│ │ │ │ ├── card_theme.dart
│ │ │ │ ├── dialog_theme.dart
│ │ │ │ ├── divider_theme.dart
│ │ │ │ ├── input_decoration_theme.dart
│ │ │ │ ├── list_tile_Theme.dart
│ │ │ │ ├── navigationbar_theme.dart
│ │ │ │ ├── progress_indicator_theme.dart
│ │ │ │ └── text_theme.dart
│ │ ├── toolkit
│ │ │ ├── buttons
│ │ │ │ ├── danger_action_button.dart
│ │ │ │ ├── inline_text_button.dart
│ │ │ │ ├── primary_action_button.dart
│ │ │ │ └── user_chip.dart
│ │ │ ├── errors
│ │ │ │ ├── error_dialog.dart
│ │ │ │ ├── error_page.dart
│ │ │ │ ├── inline_error_button.dart
│ │ │ │ └── util.dart
│ │ │ ├── html
│ │ │ │ ├── render_html.dart
│ │ │ │ └── render_html_ng.dart
│ │ │ ├── html_editor
│ │ │ │ ├── html_editor.dart
│ │ │ │ ├── mentions
│ │ │ │ │ ├── commands
│ │ │ │ │ │ └── backspace_for_mentions.dart
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── mention_item.dart
│ │ │ │ │ │ ├── mention_list.dart
│ │ │ │ │ │ └── mention_menu.dart
│ │ │ │ │ ├── mention_detection.dart
│ │ │ │ │ ├── mention_shortcuts.dart
│ │ │ │ │ └── models
│ │ │ │ │ │ ├── mention_attributes.dart
│ │ │ │ │ │ └── mention_type.dart
│ │ │ │ └── services
│ │ │ │ │ └── constants.dart
│ │ │ ├── menu_item_widget.dart
│ │ │ ├── skeletons
│ │ │ │ └── room_card_skeleton.dart
│ │ │ └── widgets
│ │ │ │ ├── acter_inline_chip.dart
│ │ │ │ ├── acter_selection_area.dart
│ │ │ │ ├── animated_chats_list_widget.dart
│ │ │ │ └── pulsating_icon.dart
│ │ ├── tutorial_dialogs
│ │ │ ├── bottom_navigation_tutorials
│ │ │ │ └── bottom_navigation_tutorials.dart
│ │ │ ├── show_tutorials.dart
│ │ │ ├── space_overview_tutorials
│ │ │ │ ├── create_or_join_space_tutorials.dart
│ │ │ │ └── space_overview_tutorials.dart
│ │ │ └── target_focus.dart
│ │ ├── utils
│ │ │ ├── device.dart
│ │ │ ├── logging.dart
│ │ │ ├── utils.dart
│ │ │ └── validation_utils.dart
│ │ └── widgets
│ │ │ ├── acter_icon_picker
│ │ │ ├── acter_icon_widget.dart
│ │ │ ├── model
│ │ │ │ ├── acter_icons.dart
│ │ │ │ └── color_data.dart
│ │ │ ├── picker
│ │ │ │ └── acter_icon_picker.dart
│ │ │ └── utils.dart
│ │ │ ├── acter_search_widget.dart
│ │ │ ├── acter_video_player.dart
│ │ │ ├── action_button_widget.dart
│ │ │ ├── add_button_with_can_permission.dart
│ │ │ ├── avatar
│ │ │ └── full_screen_avatar_page.dart
│ │ │ ├── blinking_text.dart
│ │ │ ├── centered_page.dart
│ │ │ ├── chat
│ │ │ ├── chat_selector_drawer.dart
│ │ │ └── edit_room_description_sheet.dart
│ │ │ ├── checkbox_form_field.dart
│ │ │ ├── default_dialog.dart
│ │ │ ├── default_page_header.dart
│ │ │ ├── dialog_page.dart
│ │ │ ├── dotted_border_widget.dart
│ │ │ ├── edit_html_description_sheet.dart
│ │ │ ├── edit_plain_description_sheet.dart
│ │ │ ├── edit_title_sheet.dart
│ │ │ ├── emoji_picker_widget.dart
│ │ │ ├── empty_state_widget.dart
│ │ │ ├── event
│ │ │ └── event_selector_drawer.dart
│ │ │ ├── frost_effect.dart
│ │ │ ├── icons
│ │ │ └── tasks_icon.dart
│ │ │ ├── image_dialog.dart
│ │ │ ├── info_widget.dart
│ │ │ ├── input_text_field.dart
│ │ │ ├── like_button.dart
│ │ │ ├── message_content_widget.dart
│ │ │ ├── no_internet.dart
│ │ │ ├── pin
│ │ │ └── pin_selector_drawer.dart
│ │ │ ├── plus_icon_widget.dart
│ │ │ ├── room
│ │ │ ├── brief_room_list_entry.dart
│ │ │ ├── room_avatar_builder.dart
│ │ │ ├── room_card.dart
│ │ │ ├── room_hierarchy_card.dart
│ │ │ ├── room_hierarchy_join_button.dart
│ │ │ ├── room_hierarchy_options_menu.dart
│ │ │ ├── room_profile_header.dart
│ │ │ ├── room_with_profile_card.dart
│ │ │ └── select_room_drawer.dart
│ │ │ ├── scrollable_list_tab_scroller.dart
│ │ │ ├── search.dart
│ │ │ ├── side_sheet_page.dart
│ │ │ ├── sliver_scaffold.dart
│ │ │ ├── space_name_widget.dart
│ │ │ ├── spaces
│ │ │ ├── has_space_permission.dart
│ │ │ ├── select_space_form_field.dart
│ │ │ └── space_selector_drawer.dart
│ │ │ ├── super_invite
│ │ │ └── superInvite_selector_drawer.dart
│ │ │ ├── task
│ │ │ └── taskList_selector_drawer.dart
│ │ │ ├── typing_indicator.dart
│ │ │ ├── user_avatar.dart
│ │ │ ├── video_dialog.dart
│ │ │ ├── visibility
│ │ │ └── shadow_effect_widget.dart
│ │ │ └── with_sidebar.dart
│ ├── config
│ │ ├── constants.dart
│ │ ├── desktop.dart
│ │ ├── notifications
│ │ │ ├── firebase_options.dart
│ │ │ ├── init.dart
│ │ │ └── util.dart
│ │ └── setup.dart
│ ├── features
│ │ ├── activities
│ │ │ ├── actions
│ │ │ │ ├── destroy_enc_key_action.dart
│ │ │ │ └── key_storage_urgency_action.dart
│ │ │ ├── pages
│ │ │ │ └── activities_page.dart
│ │ │ ├── providers
│ │ │ │ ├── activities_providers.dart
│ │ │ │ ├── key_storage_urgency_provider.dart
│ │ │ │ └── notifiers
│ │ │ │ │ └── activities_notifiers.dart
│ │ │ └── widgets
│ │ │ │ ├── activity_section_item_widget.dart
│ │ │ │ ├── invitation_section
│ │ │ │ └── invitation_section_widget.dart
│ │ │ │ ├── security_and_privacy_section
│ │ │ │ ├── security_and_privacy_section_widget.dart
│ │ │ │ ├── sessions_widget.dart
│ │ │ │ ├── show_recovery_key_widget.dart
│ │ │ │ ├── store_the_key_securely_widget.dart
│ │ │ │ └── uncomfirmed_email_widget.dart
│ │ │ │ ├── space_activities_section
│ │ │ │ ├── item_widgets
│ │ │ │ │ ├── activity_date_item_widget.dart
│ │ │ │ │ ├── activity_item_container_widgets.dart
│ │ │ │ │ ├── activity_item_widget.dart
│ │ │ │ │ ├── activity_membership_container_widget.dart
│ │ │ │ │ ├── activity_space_container_widget.dart
│ │ │ │ │ ├── space_activities_item_widget.dart
│ │ │ │ │ └── type_widgets
│ │ │ │ │ │ ├── attachment.dart
│ │ │ │ │ │ ├── comment.dart
│ │ │ │ │ │ ├── eventDateChange.dart
│ │ │ │ │ │ ├── reaction.dart
│ │ │ │ │ │ ├── references.dart
│ │ │ │ │ │ ├── roomAvatar.dart
│ │ │ │ │ │ ├── roomName.dart
│ │ │ │ │ │ ├── roomTopic.dart
│ │ │ │ │ │ ├── rsvpMaybe.dart
│ │ │ │ │ │ ├── rsvpNo.dart
│ │ │ │ │ │ ├── rsvpYes.dart
│ │ │ │ │ │ ├── taskAccepted.dart
│ │ │ │ │ │ ├── taskAdd.dart
│ │ │ │ │ │ ├── taskComplete.dart
│ │ │ │ │ │ ├── taskDecline.dart
│ │ │ │ │ │ ├── taskDueDateChange.dart
│ │ │ │ │ │ └── taskReOpen.dart
│ │ │ │ └── space_activities_section_widget.dart
│ │ │ │ └── sync_section
│ │ │ │ └── sync_state_section_widget.dart
│ │ ├── analytics
│ │ │ ├── actions
│ │ │ │ └── telemetry_analytics.dart
│ │ │ ├── pages
│ │ │ │ └── analytics_opt_in_page.dart
│ │ │ └── providers
│ │ │ │ └── analytics_preferences_provider.dart
│ │ ├── attachments
│ │ │ ├── actions
│ │ │ │ ├── add_edit_link_bottom_sheet.dart
│ │ │ │ ├── attach_ref_details.dart
│ │ │ │ ├── handle_selected_attachments.dart
│ │ │ │ └── select_attachment.dart
│ │ │ ├── models
│ │ │ │ └── attachment_model.dart
│ │ │ ├── providers
│ │ │ │ ├── attachment_providers.dart
│ │ │ │ └── notifiers
│ │ │ │ │ └── attachments_notifiers.dart
│ │ │ ├── types.dart
│ │ │ └── widgets
│ │ │ │ ├── attachment_container.dart
│ │ │ │ ├── attachment_section.dart
│ │ │ │ ├── attachment_selection_options.dart
│ │ │ │ ├── msg_content_attachment_item.dart
│ │ │ │ └── reference_attachment_item.dart
│ │ ├── auth
│ │ │ ├── actions
│ │ │ │ └── register_action.dart
│ │ │ ├── pages
│ │ │ │ ├── forgot_password.dart
│ │ │ │ ├── logged_out_screen.dart
│ │ │ │ ├── login_page.dart
│ │ │ │ └── register_page.dart
│ │ │ ├── providers
│ │ │ │ ├── auth_providers.dart
│ │ │ │ └── notifiers
│ │ │ │ │ └── auth_notifier.dart
│ │ │ └── widgets
│ │ │ │ └── logo_widget.dart
│ │ ├── backups
│ │ │ ├── dialogs
│ │ │ │ ├── provide_recovery_key_dialog.dart
│ │ │ │ ├── show_confirm_reset_identity.dart
│ │ │ │ ├── show_confirm_rotate.dart
│ │ │ │ └── show_recovery_key.dart
│ │ │ ├── providers
│ │ │ │ ├── backup_manager_provider.dart
│ │ │ │ ├── backup_state_providers.dart
│ │ │ │ └── notifiers
│ │ │ │ │ └── backup_state_notifier.dart
│ │ │ ├── types.dart
│ │ │ └── widgets
│ │ │ │ └── backup_state_widget.dart
│ │ ├── bookmarks
│ │ │ ├── actions
│ │ │ │ └── bookmarking.dart
│ │ │ ├── providers
│ │ │ │ ├── bookmarks_provider.dart
│ │ │ │ └── notifiers.dart
│ │ │ ├── types.dart
│ │ │ ├── util.dart
│ │ │ └── widgets
│ │ │ │ └── bookmark_action.dart
│ │ ├── bug_report
│ │ │ ├── actions
│ │ │ │ ├── open_bug_report.dart
│ │ │ │ └── submit_bug_report.dart
│ │ │ ├── pages
│ │ │ │ └── bug_report_page.dart
│ │ │ └── providers
│ │ │ │ └── bug_report_providers.dart
│ │ ├── calendar_sync
│ │ │ ├── actions
│ │ │ │ ├── calendar_sync_actions.dart
│ │ │ │ └── set_room_sync_preference.dart
│ │ │ ├── calendar_sync.dart
│ │ │ ├── calendar_sync_permission_page.dart
│ │ │ └── providers
│ │ │ │ ├── calendar_sync_active_provider.dart
│ │ │ │ └── events_to_sync_provider.dart
│ │ ├── categories
│ │ │ ├── actions
│ │ │ │ └── save_categories.dart
│ │ │ ├── model
│ │ │ │ └── CategoryModelLocal.dart
│ │ │ ├── organize_categories_page.dart
│ │ │ ├── providers
│ │ │ │ └── categories_providers.dart
│ │ │ ├── utils
│ │ │ │ └── category_utils.dart
│ │ │ └── widgets
│ │ │ │ ├── add_edit_category.dart
│ │ │ │ └── category_header_view.dart
│ │ ├── chat
│ │ │ ├── actions
│ │ │ │ └── create_chat.dart
│ │ │ ├── dialogs
│ │ │ │ └── encryption_info_drawer.dart
│ │ │ ├── models
│ │ │ │ ├── chat_input_state
│ │ │ │ │ ├── chat_input_state.dart
│ │ │ │ │ └── chat_input_state.freezed.dart
│ │ │ │ ├── chat_list_state
│ │ │ │ │ ├── chat_list_state.dart
│ │ │ │ │ └── chat_list_state.freezed.dart
│ │ │ │ ├── chat_room_state
│ │ │ │ │ ├── chat_room_state.dart
│ │ │ │ │ └── chat_room_state.freezed.dart
│ │ │ │ ├── media_chat_state
│ │ │ │ │ ├── media_chat_state.dart
│ │ │ │ │ └── media_chat_state.freezed.dart
│ │ │ │ └── room_list_filter_state
│ │ │ │ │ ├── room_list_filter_state.dart
│ │ │ │ │ └── room_list_filter_state.freezed.dart
│ │ │ ├── pages
│ │ │ │ ├── chat_select_page.dart
│ │ │ │ ├── room_page.dart
│ │ │ │ ├── room_profile_page.dart
│ │ │ │ └── sub_chats_page.dart
│ │ │ ├── providers
│ │ │ │ ├── chat_providers.dart
│ │ │ │ ├── create_chat_providers.dart
│ │ │ │ ├── notifiers
│ │ │ │ │ ├── chat_input_notifier.dart
│ │ │ │ │ ├── chat_room_notifier.dart
│ │ │ │ │ └── media_chat_notifier.dart
│ │ │ │ └── room_list_filter_provider.dart
│ │ │ ├── utils.dart
│ │ │ └── widgets
│ │ │ │ ├── avatar_builder.dart
│ │ │ │ ├── bubble_builder.dart
│ │ │ │ ├── chat_layout_builder.dart
│ │ │ │ ├── chats_list.dart
│ │ │ │ ├── convo_card.dart
│ │ │ │ ├── create_chat.dart
│ │ │ │ ├── custom_input.dart
│ │ │ │ ├── custom_message_builder.dart
│ │ │ │ ├── emoji
│ │ │ │ ├── emoji_container.dart
│ │ │ │ ├── emoji_reaction_item.dart
│ │ │ │ └── emoji_row.dart
│ │ │ │ ├── file_message_builder.dart
│ │ │ │ ├── image_message_builder.dart
│ │ │ │ ├── member_list.dart
│ │ │ │ ├── mention_profile_builder.dart
│ │ │ │ ├── message_actions.dart
│ │ │ │ ├── message_metadata_builder.dart
│ │ │ │ ├── messages
│ │ │ │ ├── encrypted_info.dart
│ │ │ │ ├── encrypted_message.dart
│ │ │ │ ├── invite.dart
│ │ │ │ ├── location_message.dart
│ │ │ │ ├── membership_update.dart
│ │ │ │ ├── poll_start_message.dart
│ │ │ │ ├── redacted_message.dart
│ │ │ │ ├── simple_state_update.dart
│ │ │ │ ├── sticker_message.dart
│ │ │ │ └── topic.dart
│ │ │ │ ├── pill_builder.dart
│ │ │ │ ├── room_avatar.dart
│ │ │ │ ├── rooms_list.dart
│ │ │ │ ├── skeletons
│ │ │ │ ├── action_item_skeleton_widget.dart
│ │ │ │ └── members_list_skeleton_widget.dart
│ │ │ │ ├── text_message_builder.dart
│ │ │ │ └── video_message_builder.dart
│ │ ├── chat_ng
│ │ │ ├── actions
│ │ │ │ ├── attachment_upload_action.dart
│ │ │ │ ├── copy_message_action.dart
│ │ │ │ ├── redact_message_action.dart
│ │ │ │ ├── report_message_action.dart
│ │ │ │ ├── send_message_action.dart
│ │ │ │ └── toggle_reaction_action.dart
│ │ │ ├── dialogs
│ │ │ │ └── message_actions.dart
│ │ │ ├── globals.dart
│ │ │ ├── layout
│ │ │ │ └── chat_ng_layout_builder.dart
│ │ │ ├── models
│ │ │ │ ├── chat_editor_state.dart
│ │ │ │ └── chat_room_state
│ │ │ │ │ ├── chat_room_state.dart
│ │ │ │ │ └── chat_room_state.freezed.dart
│ │ │ ├── pages
│ │ │ │ ├── chat_room.dart
│ │ │ │ └── chat_select_page.dart
│ │ │ ├── providers
│ │ │ │ ├── chat_list_providers.dart
│ │ │ │ ├── chat_room_messages_provider.dart
│ │ │ │ ├── chat_typing_event_providers.dart
│ │ │ │ └── notifiers
│ │ │ │ │ ├── chat_editor_notifier.dart
│ │ │ │ │ └── chat_room_messages_notifier.dart
│ │ │ ├── rooms_list
│ │ │ │ └── widgets
│ │ │ │ │ ├── chat_item_widget.dart
│ │ │ │ │ ├── chats_list.dart
│ │ │ │ │ └── rooms_list.dart
│ │ │ ├── utils.dart
│ │ │ └── widgets
│ │ │ │ ├── chat_bubble.dart
│ │ │ │ ├── chat_editor
│ │ │ │ ├── chat_editor.dart
│ │ │ │ ├── chat_editor_actions_preview.dart
│ │ │ │ ├── chat_editor_loading.dart
│ │ │ │ ├── chat_editor_no_access.dart
│ │ │ │ ├── chat_editor_view.dart
│ │ │ │ └── chat_emoji_picker.dart
│ │ │ │ ├── chat_item
│ │ │ │ ├── bookmark_icon_widget.dart
│ │ │ │ ├── chat_typing_lastmessage_container_widget.dart
│ │ │ │ ├── display_name_widget.dart
│ │ │ │ ├── last_message_time_widget.dart
│ │ │ │ ├── last_message_widget.dart
│ │ │ │ ├── mute_icon_widget.dart
│ │ │ │ ├── typing_indicator.dart
│ │ │ │ └── unread_count_widget.dart
│ │ │ │ ├── chat_messages.dart
│ │ │ │ ├── chat_room
│ │ │ │ └── app_bar_widget.dart
│ │ │ │ ├── events
│ │ │ │ ├── chat_event.dart
│ │ │ │ ├── file_message_event.dart
│ │ │ │ ├── general_message_event_widget.dart
│ │ │ │ ├── image_message_event.dart
│ │ │ │ ├── media_meessage_event_widget.dart
│ │ │ │ ├── message_event_item.dart
│ │ │ │ ├── profile_changes_event_widget.dart
│ │ │ │ ├── replied_to_event.dart
│ │ │ │ ├── room_membership_event_widget.dart
│ │ │ │ ├── room_message_event_widget.dart
│ │ │ │ ├── room_update_event.dart
│ │ │ │ ├── state_event_container_widget.dart
│ │ │ │ ├── text_message_event.dart
│ │ │ │ ├── text_message_widget.dart
│ │ │ │ └── video_message_event.dart
│ │ │ │ ├── message_actions_widget.dart
│ │ │ │ ├── message_timestamp_widget.dart
│ │ │ │ ├── reactions
│ │ │ │ ├── reaction_chips_widget.dart
│ │ │ │ ├── reaction_detail_sheet.dart
│ │ │ │ ├── reaction_selector.dart
│ │ │ │ └── reactions_list.dart
│ │ │ │ ├── read_receipts_widget.dart
│ │ │ │ ├── replied_to_preview.dart
│ │ │ │ ├── sending_error_dialog.dart
│ │ │ │ └── sending_state_widget.dart
│ │ ├── chat_ui_showcase
│ │ │ ├── mocks
│ │ │ │ ├── convo
│ │ │ │ │ ├── mock_convo.dart
│ │ │ │ │ ├── mock_membership_content.dart
│ │ │ │ │ ├── mock_profile_content.dart
│ │ │ │ │ └── timeline
│ │ │ │ │ │ ├── mock_ffi_list_reaction_record.dart
│ │ │ │ │ │ ├── mock_ffi_list_timeline_item.dart
│ │ │ │ │ │ ├── mock_reaction_record.dart
│ │ │ │ │ │ ├── mock_timeline_event_item.dart
│ │ │ │ │ │ ├── mock_timeline_item.dart
│ │ │ │ │ │ ├── mock_timeline_item_diff.dart
│ │ │ │ │ │ └── mock_timeline_stream.dart
│ │ │ │ ├── general
│ │ │ │ │ ├── mock_ffi_list_ffi_string.dart
│ │ │ │ │ ├── mock_ffi_string.dart
│ │ │ │ │ ├── mock_msg_content.dart
│ │ │ │ │ ├── mock_option_compose_draft.dart
│ │ │ │ │ ├── mock_option_string.dart
│ │ │ │ │ └── mock_userId.dart
│ │ │ │ ├── providers
│ │ │ │ │ └── mock_chats_provider.dart
│ │ │ │ ├── room
│ │ │ │ │ ├── mock_member.dart
│ │ │ │ │ └── mock_room.dart
│ │ │ │ ├── showcase
│ │ │ │ │ ├── convo_showcase_data.dart
│ │ │ │ │ └── data
│ │ │ │ │ │ ├── general_usecases.dart
│ │ │ │ │ │ ├── membership_usecases.dart
│ │ │ │ │ │ ├── profile_change_usecases.dart
│ │ │ │ │ │ └── text_and_media_usecases.dart
│ │ │ │ └── user
│ │ │ │ │ └── mock_user.dart
│ │ │ └── pages
│ │ │ │ └── chat_list_showcase_page.dart
│ │ ├── cli
│ │ │ ├── commands
│ │ │ │ ├── backup-and-reset.dart
│ │ │ │ ├── info.dart
│ │ │ │ └── settings.dart
│ │ │ ├── main.dart
│ │ │ └── util.dart
│ │ ├── comments
│ │ │ ├── actions
│ │ │ │ └── submit_comment.dart
│ │ │ ├── providers
│ │ │ │ └── comments_providers.dart
│ │ │ ├── types.dart
│ │ │ └── widgets
│ │ │ │ ├── add_comment_widget.dart
│ │ │ │ ├── comment_item_widget.dart
│ │ │ │ ├── comment_list_empty_state_widget.dart
│ │ │ │ ├── comment_list_widget.dart
│ │ │ │ ├── comments_section_widget.dart
│ │ │ │ ├── skeletons
│ │ │ │ ├── comment_item_skeleton_widget.dart
│ │ │ │ └── comment_list_skeleton_widget.dart
│ │ │ │ └── time_ago_widget.dart
│ │ ├── cross_signing
│ │ │ ├── providers
│ │ │ │ ├── notifiers
│ │ │ │ │ └── verification_notifiers.dart
│ │ │ │ └── verification_providers.dart
│ │ │ ├── views
│ │ │ │ ├── request_cancelled.dart
│ │ │ │ ├── request_created.dart
│ │ │ │ ├── request_done.dart
│ │ │ │ ├── request_ready.dart
│ │ │ │ ├── sas_accepted.dart
│ │ │ │ ├── sas_cancelled.dart
│ │ │ │ ├── sas_keys_exchanged.dart
│ │ │ │ ├── sas_started.dart
│ │ │ │ └── verification_request.dart
│ │ │ └── widgets
│ │ │ │ └── cross_signing.dart
│ │ ├── datetime
│ │ │ └── providers
│ │ │ │ ├── notifiers
│ │ │ │ └── now_notifier.dart
│ │ │ │ └── utc_now_provider.dart
│ │ ├── deep_linking
│ │ │ ├── actions
│ │ │ │ ├── forward_to_object.dart
│ │ │ │ ├── handle_deep_link_uri.dart
│ │ │ │ ├── show_item_preview.dart
│ │ │ │ └── show_qr_code.dart
│ │ │ ├── pages
│ │ │ │ └── scan_qr_code.dart
│ │ │ ├── parse_acter_uri.dart
│ │ │ ├── types.dart
│ │ │ ├── util.dart
│ │ │ └── widgets
│ │ │ │ ├── inline_item_preview.dart
│ │ │ │ ├── item_preview_card.dart
│ │ │ │ ├── qr_code_button.dart
│ │ │ │ └── reference_details_item.dart
│ │ ├── desktop_setup
│ │ │ ├── pages
│ │ │ │ └── desktop_setup_page.dart
│ │ │ └── providers
│ │ │ │ └── desktop_setup_provider.dart
│ │ ├── device_permissions
│ │ │ ├── calendar.dart
│ │ │ └── notification.dart
│ │ ├── encryption_backup_feature
│ │ │ ├── actions
│ │ │ │ └── external_storing.dart
│ │ │ └── widgets
│ │ │ │ └── encryption_backup_widget.dart
│ │ ├── events
│ │ │ ├── actions
│ │ │ │ └── sort_event_list.dart
│ │ │ ├── model
│ │ │ │ └── keys.dart
│ │ │ ├── pages
│ │ │ │ ├── create_event_page.dart
│ │ │ │ ├── event_details_page.dart
│ │ │ │ └── event_list_page.dart
│ │ │ ├── providers
│ │ │ │ ├── event_providers.dart
│ │ │ │ ├── event_type_provider.dart
│ │ │ │ └── notifiers
│ │ │ │ │ ├── event_notifiers.dart
│ │ │ │ │ ├── participants_notifier.dart
│ │ │ │ │ └── rsvp_notifier.dart
│ │ │ ├── utils
│ │ │ │ └── events_utils.dart
│ │ │ └── widgets
│ │ │ │ ├── change_date_sheet.dart
│ │ │ │ ├── event_date_widget.dart
│ │ │ │ ├── event_item.dart
│ │ │ │ ├── event_list_empty_state.dart
│ │ │ │ ├── event_list_widget.dart
│ │ │ │ ├── participants_list.dart
│ │ │ │ └── skeletons
│ │ │ │ ├── event_details_skeleton_widget.dart
│ │ │ │ ├── event_item_skeleton_widget.dart
│ │ │ │ └── event_list_skeleton_widget.dart
│ │ ├── files
│ │ │ ├── actions
│ │ │ │ ├── download_file.dart
│ │ │ │ ├── file_share.dart
│ │ │ │ ├── pick_avatar.dart
│ │ │ │ └── pick_image.dart
│ │ │ └── widgets
│ │ │ │ └── share_file_button.dart
│ │ ├── home
│ │ │ ├── data
│ │ │ │ ├── keys.dart
│ │ │ │ └── models
│ │ │ │ │ └── nav_item.dart
│ │ │ ├── pages
│ │ │ │ └── dashboard.dart
│ │ │ ├── providers
│ │ │ │ ├── client_providers.dart
│ │ │ │ ├── events.dart
│ │ │ │ ├── navigation.dart
│ │ │ │ ├── notifiers
│ │ │ │ │ ├── always_client_notifier.dart
│ │ │ │ │ └── client_notifier.dart
│ │ │ │ └── task_providers.dart
│ │ │ └── widgets
│ │ │ │ ├── activities_icon.dart
│ │ │ │ ├── badged_icon.dart
│ │ │ │ ├── chats_icon.dart
│ │ │ │ ├── custom_selected_icon.dart
│ │ │ │ ├── features_nav_widget.dart
│ │ │ │ ├── important_activities_section.dart
│ │ │ │ ├── in_dashboard.dart
│ │ │ │ ├── my_events.dart
│ │ │ │ ├── my_spaces_section.dart
│ │ │ │ ├── my_tasks.dart
│ │ │ │ ├── quick_action_buttons.dart
│ │ │ │ ├── sidebar_widget.dart
│ │ │ │ └── space_chip.dart
│ │ ├── intro
│ │ │ └── pages
│ │ │ │ ├── intro_page.dart
│ │ │ │ └── intro_profile.dart
│ │ ├── invitations
│ │ │ ├── pages
│ │ │ │ └── invites_page.dart
│ │ │ ├── providers
│ │ │ │ ├── invitations_providers.dart
│ │ │ │ └── notifiers
│ │ │ │ │ └── invitation_manager_notifier.dart
│ │ │ └── widgets
│ │ │ │ ├── has_invites_tile.dart
│ │ │ │ └── invitation_item_widget.dart
│ │ ├── invite_members
│ │ │ ├── pages
│ │ │ │ ├── invite_individual_users.dart
│ │ │ │ ├── invite_page.dart
│ │ │ │ ├── invite_pending.dart
│ │ │ │ ├── invite_space_members.dart
│ │ │ │ └── share_invite_code.dart
│ │ │ ├── providers
│ │ │ │ └── other_spaces_for_invite_members.dart
│ │ │ └── widgets
│ │ │ │ ├── direct_invite.dart
│ │ │ │ ├── invite_code_ui.dart
│ │ │ │ └── space_member_invite_card.dart
│ │ ├── labs
│ │ │ ├── feature_flagger.dart
│ │ │ ├── model
│ │ │ │ └── labs_features.dart
│ │ │ └── providers
│ │ │ │ ├── labs_providers.dart
│ │ │ │ └── notifiers
│ │ │ │ └── labs_features.dart
│ │ ├── link_room
│ │ │ ├── actions
│ │ │ │ └── unlink_child_room.dart
│ │ │ ├── pages
│ │ │ │ └── link_room_page.dart
│ │ │ ├── providers
│ │ │ │ └── link_room_providers.dart
│ │ │ ├── types.dart
│ │ │ └── widgets
│ │ │ │ ├── link_room_trailing.dart
│ │ │ │ └── link_space_list_item.dart
│ │ ├── main
│ │ │ ├── app_shell.dart
│ │ │ ├── providers
│ │ │ │ └── main_providers.dart
│ │ │ └── widgets
│ │ │ │ └── bottom_navigation_widget.dart
│ │ ├── member
│ │ │ ├── dialogs
│ │ │ │ ├── show_block_user_dialog.dart
│ │ │ │ ├── show_change_power_level_dialog.dart
│ │ │ │ ├── show_kick_and_ban_user_dialog.dart
│ │ │ │ ├── show_kick_user_dialog.dart
│ │ │ │ ├── show_member_info_drawer.dart
│ │ │ │ └── show_unblock_user_dialog.dart
│ │ │ ├── providers
│ │ │ │ └── invite_providers.dart
│ │ │ └── widgets
│ │ │ │ ├── member_info_drawer.dart
│ │ │ │ ├── member_info_skeleton.dart
│ │ │ │ ├── member_list_entry.dart
│ │ │ │ ├── user_builder.dart
│ │ │ │ └── user_search_results.dart
│ │ ├── news
│ │ │ ├── actions
│ │ │ │ ├── make_image_slide.dart
│ │ │ │ ├── make_text_slide.dart
│ │ │ │ ├── make_video_slide.dart
│ │ │ │ ├── submit_news.dart
│ │ │ │ └── submit_story.dart
│ │ │ ├── model
│ │ │ │ ├── keys.dart
│ │ │ │ ├── news_post_color_data.dart
│ │ │ │ ├── news_post_state.dart
│ │ │ │ ├── news_post_state.freezed.dart
│ │ │ │ ├── news_references_model.dart
│ │ │ │ ├── news_slide_model.dart
│ │ │ │ └── type
│ │ │ │ │ ├── update_entry.dart
│ │ │ │ │ └── update_slide.dart
│ │ │ ├── news_utils
│ │ │ │ └── news_utils.dart
│ │ │ ├── pages
│ │ │ │ ├── add_news
│ │ │ │ │ ├── add_news_page.dart
│ │ │ │ │ └── add_news_post_to_page.dart
│ │ │ │ └── news_list_page.dart
│ │ │ ├── providers
│ │ │ │ ├── news_post_editor_providers.dart
│ │ │ │ ├── news_providers.dart
│ │ │ │ └── notifiers
│ │ │ │ │ ├── news_list_notifier.dart
│ │ │ │ │ └── story_list_notifier.dart
│ │ │ └── widgets
│ │ │ │ ├── news_full_view.dart
│ │ │ │ ├── news_grid_view.dart
│ │ │ │ ├── news_item
│ │ │ │ ├── news_item.dart
│ │ │ │ ├── news_post_time_widget.dart
│ │ │ │ └── news_side_bar.dart
│ │ │ │ ├── news_item_slide
│ │ │ │ ├── image_slide.dart
│ │ │ │ ├── news_filter_buttons.dart
│ │ │ │ ├── news_media_error_widget.dart
│ │ │ │ ├── news_slide_actions.dart
│ │ │ │ ├── news_slide_item.dart
│ │ │ │ ├── text_slide.dart
│ │ │ │ └── video_slide.dart
│ │ │ │ ├── news_post_editor
│ │ │ │ ├── news_slide_options.dart
│ │ │ │ ├── post_attachment_options.dart
│ │ │ │ ├── select_action_item.dart
│ │ │ │ └── selected_action_button.dart
│ │ │ │ └── news_skeleton_widget.dart
│ │ ├── notifications
│ │ │ ├── actions
│ │ │ │ ├── autosubscribe.dart
│ │ │ │ ├── notification_sync_actions.dart
│ │ │ │ ├── subscribe_object_push.dart
│ │ │ │ ├── unsubscribe_object_push.dart
│ │ │ │ └── update_autosubscribe.dart
│ │ │ ├── pages
│ │ │ │ ├── notification_permission_page.dart
│ │ │ │ └── notifications_page.dart
│ │ │ ├── providers
│ │ │ │ ├── notification_settings_providers.dart
│ │ │ │ ├── notifiers
│ │ │ │ │ └── notification_settings_notifier.dart
│ │ │ │ └── object_notifications_settings_provider.dart
│ │ │ ├── types.dart
│ │ │ └── widgets
│ │ │ │ ├── labs_notifications_settings_tile.dart
│ │ │ │ └── object_notification_status.dart
│ │ ├── onboarding
│ │ │ ├── actions
│ │ │ │ ├── create_new_space_onboarding_actions.dart
│ │ │ │ ├── customization_actions.dart
│ │ │ │ ├── generate_invitecode_externally_actions.dart
│ │ │ │ └── recommended_space_actions.dart
│ │ │ ├── pages
│ │ │ │ ├── customization_page.dart
│ │ │ │ ├── encrption_backup_page.dart
│ │ │ │ ├── link_email_page.dart
│ │ │ │ ├── onboarding_encryption_recovery_page.dart
│ │ │ │ ├── onboarding_page.dart
│ │ │ │ ├── onboarding_space_creation_page.dart
│ │ │ │ ├── recommended_spaces_page.dart
│ │ │ │ ├── redeem_invitations_page.dart
│ │ │ │ ├── save_username_page.dart
│ │ │ │ └── upload_avatar_page.dart
│ │ │ ├── providers
│ │ │ │ └── onboarding_provider.dart
│ │ │ ├── types.dart
│ │ │ └── widgets
│ │ │ │ ├── create_new_space_widget.dart
│ │ │ │ ├── expect_decryption_failures_widget.dart
│ │ │ │ ├── missing_encryption_backup_widget.dart
│ │ │ │ ├── onboarding_notification_skeleton.dart
│ │ │ │ └── remindme_key_dialog.dart
│ │ ├── pins
│ │ │ ├── actions
│ │ │ │ ├── attachment_leading_icon.dart
│ │ │ │ ├── edit_pin_actions.dart
│ │ │ │ ├── pin_update_actions.dart
│ │ │ │ ├── reduct_pin_action.dart
│ │ │ │ ├── report_pin_action.dart
│ │ │ │ ├── select_pin_attachments.dart
│ │ │ │ ├── set_pin_description.dart
│ │ │ │ └── set_pin_links.dart
│ │ │ ├── models
│ │ │ │ ├── create_pin_state
│ │ │ │ │ ├── create_pin_state.dart
│ │ │ │ │ ├── create_pin_state.freezed.dart
│ │ │ │ │ └── pin_attachment_model.dart
│ │ │ │ └── pin_edit_state
│ │ │ │ │ ├── pin_edit_state.dart
│ │ │ │ │ └── pin_edit_state.freezed.dart
│ │ │ ├── pages
│ │ │ │ ├── create_pin_page.dart
│ │ │ │ ├── pin_details_page.dart
│ │ │ │ └── pins_list_page.dart
│ │ │ ├── providers
│ │ │ │ ├── notifiers
│ │ │ │ │ ├── create_pin_notifier.dart
│ │ │ │ │ ├── edit_state_notifier.dart
│ │ │ │ │ └── pins_notifiers.dart
│ │ │ │ └── pins_provider.dart
│ │ │ └── widgets
│ │ │ │ ├── fake_link_attachment_item.dart
│ │ │ │ ├── pin_attachment_options.dart
│ │ │ │ ├── pin_list_empty_state.dart
│ │ │ │ ├── pin_list_item_widget.dart
│ │ │ │ ├── pin_list_skeleton.dart
│ │ │ │ └── pin_list_widget.dart
│ │ ├── preview
│ │ │ ├── actions
│ │ │ │ └── show_room_preview.dart
│ │ │ ├── types.dart
│ │ │ └── widgets
│ │ │ │ └── room_preview.dart
│ │ ├── profile
│ │ │ ├── pages
│ │ │ │ └── my_profile_page.dart
│ │ │ └── widgets
│ │ │ │ └── skeletons
│ │ │ │ └── my_profile_skeletons_widget.dart
│ │ ├── public_room_search
│ │ │ ├── models
│ │ │ │ ├── public_search_filters.dart
│ │ │ │ ├── public_search_filters.freezed.dart
│ │ │ │ └── publiic_search_result_state.dart
│ │ │ ├── pages
│ │ │ │ └── search_public_directory.dart
│ │ │ ├── providers
│ │ │ │ ├── notifiers
│ │ │ │ │ ├── public_search_filters_notifier.dart
│ │ │ │ │ └── public_spaces_notifier.dart
│ │ │ │ ├── public_search_providers.dart
│ │ │ │ └── public_space_info_provider.dart
│ │ │ ├── types.dart
│ │ │ └── widgets
│ │ │ │ ├── maybe_direct_room_action_widget.dart
│ │ │ │ ├── public_room_item.dart
│ │ │ │ ├── public_room_search.dart
│ │ │ │ └── server_selection_field.dart
│ │ ├── read_receipts
│ │ │ ├── providers
│ │ │ │ └── read_receipts.dart
│ │ │ └── widgets
│ │ │ │ └── read_counter.dart
│ │ ├── room
│ │ │ ├── actions
│ │ │ │ ├── avatar_upload.dart
│ │ │ │ └── join_room.dart
│ │ │ ├── join_rule
│ │ │ │ ├── join_rule_chip.dart
│ │ │ │ ├── room_join_rule_item.dart
│ │ │ │ ├── room_join_rule_selector.dart
│ │ │ │ └── room_join_rule_type.dart
│ │ │ ├── model
│ │ │ │ └── room_join_rule.dart
│ │ │ ├── providers
│ │ │ │ ├── notifiers
│ │ │ │ │ └── user_settings_notifier.dart
│ │ │ │ ├── room_preview_provider.dart
│ │ │ │ └── user_settings_provider.dart
│ │ │ └── widgets
│ │ │ │ ├── notifications_settings_tile.dart
│ │ │ │ └── room_chip.dart
│ │ ├── search
│ │ │ ├── model
│ │ │ │ └── keys.dart
│ │ │ ├── pages
│ │ │ │ └── quick_search_page.dart
│ │ │ ├── providers
│ │ │ │ └── quick_search_providers.dart
│ │ │ └── widgets
│ │ │ │ └── chat_list_widget.dart
│ │ ├── settings
│ │ │ ├── model
│ │ │ │ └── language_model.dart
│ │ │ ├── pages
│ │ │ │ ├── backup_page.dart
│ │ │ │ ├── blocked_users.dart
│ │ │ │ ├── calendar_settings_page.dart
│ │ │ │ ├── change_password.dart
│ │ │ │ ├── chat_settings_page.dart
│ │ │ │ ├── customizations_settings_page.dart
│ │ │ │ ├── email_addresses.dart
│ │ │ │ ├── info_page.dart
│ │ │ │ ├── labs_page.dart
│ │ │ │ ├── language_select_page.dart
│ │ │ │ ├── licenses_page.dart
│ │ │ │ ├── sessions_page.dart
│ │ │ │ └── settings_page.dart
│ │ │ ├── providers
│ │ │ │ ├── app_settings_provider.dart
│ │ │ │ ├── notifications_mode_provider.dart
│ │ │ │ ├── notifiers
│ │ │ │ │ ├── app_settings_notifier.dart
│ │ │ │ │ ├── devices_notifier.dart
│ │ │ │ │ └── locale_notifier.dart
│ │ │ │ ├── session_providers.dart
│ │ │ │ └── settings_providers.dart
│ │ │ └── widgets
│ │ │ │ ├── app_notifications_settings_tile.dart
│ │ │ │ ├── auto_download_tile.dart
│ │ │ │ ├── custom_settings_tile.dart
│ │ │ │ ├── email_address_card.dart
│ │ │ │ ├── options_settings_tile.dart
│ │ │ │ ├── session_card.dart
│ │ │ │ ├── settings_menu.dart
│ │ │ │ ├── settings_section_with_title_actions.dart
│ │ │ │ └── typing_notice_tile.dart
│ │ ├── share
│ │ │ ├── action
│ │ │ │ ├── mail_to.dart
│ │ │ │ ├── shareTo.dart
│ │ │ │ └── share_space_object_action.dart
│ │ │ └── widgets
│ │ │ │ ├── attach_options.dart
│ │ │ │ ├── external_share_options.dart
│ │ │ │ └── file_share_options.dart
│ │ ├── showcases
│ │ │ ├── pages
│ │ │ │ ├── invitations
│ │ │ │ │ ├── invitations_section.dart
│ │ │ │ │ └── mock_invitations.dart
│ │ │ │ └── showcase_list_page.dart
│ │ │ └── routes.dart
│ │ ├── space
│ │ │ ├── actions
│ │ │ │ ├── activate_feature.dart
│ │ │ │ ├── convert_into_acter_space.dart
│ │ │ │ ├── has_seen_suggested.dart
│ │ │ │ ├── set_acter_feature.dart
│ │ │ │ ├── set_child_room_suggested.dart
│ │ │ │ ├── set_space_title.dart
│ │ │ │ ├── set_space_topic.dart
│ │ │ │ └── update_feature_power_level.dart
│ │ │ ├── dialogs
│ │ │ │ ├── leave_space.dart
│ │ │ │ └── suggested_rooms.dart
│ │ │ ├── pages
│ │ │ │ ├── members_page.dart
│ │ │ │ └── space_details_page.dart
│ │ │ ├── providers
│ │ │ │ ├── notifiers
│ │ │ │ │ └── relations_notifier.dart
│ │ │ │ ├── space_navbar_provider.dart
│ │ │ │ ├── suggested_provider.dart
│ │ │ │ └── topic_provider.dart
│ │ │ ├── settings
│ │ │ │ ├── pages
│ │ │ │ │ ├── apps_settings_page.dart
│ │ │ │ │ ├── index_page.dart
│ │ │ │ │ ├── notification_configuration_page.dart
│ │ │ │ │ └── visibility_accessibility_page.dart
│ │ │ │ └── widgets
│ │ │ │ │ └── space_settings_menu.dart
│ │ │ └── widgets
│ │ │ │ ├── loading_convo_card.dart
│ │ │ │ ├── member_avatar.dart
│ │ │ │ ├── related
│ │ │ │ ├── chats_helpers.dart
│ │ │ │ ├── spaces_helpers.dart
│ │ │ │ └── util.dart
│ │ │ │ ├── skeletons
│ │ │ │ └── space_details_skeletons.dart
│ │ │ │ ├── space_header.dart
│ │ │ │ ├── space_header_profile.dart
│ │ │ │ ├── space_info.dart
│ │ │ │ ├── space_sections
│ │ │ │ ├── about_section.dart
│ │ │ │ ├── members_section.dart
│ │ │ │ ├── news_section.dart
│ │ │ │ ├── other_chats_section.dart
│ │ │ │ ├── other_sub_spaces_section.dart
│ │ │ │ ├── section_header.dart
│ │ │ │ ├── space_actions_section.dart
│ │ │ │ ├── spaces_loading_error_section.dart
│ │ │ │ ├── suggested_chats_section.dart
│ │ │ │ └── suggested_spaces_section.dart
│ │ │ │ └── space_toolbar.dart
│ │ ├── spaces
│ │ │ ├── actions
│ │ │ │ ├── create_space.dart
│ │ │ │ └── select_permission.dart
│ │ │ ├── model
│ │ │ │ ├── default_space_feature_settings.dart
│ │ │ │ ├── keys.dart
│ │ │ │ ├── permission_config.dart
│ │ │ │ └── space_feature_state.dart
│ │ │ ├── pages
│ │ │ │ ├── create_space_page.dart
│ │ │ │ ├── space_list_page.dart
│ │ │ │ └── sub_spaces_page.dart
│ │ │ ├── providers
│ │ │ │ ├── space_creation_providers.dart
│ │ │ │ └── space_list_provider.dart
│ │ │ └── widgets
│ │ │ │ ├── create_space
│ │ │ │ ├── space_configuration_widget.dart
│ │ │ │ └── space_features_widget.dart
│ │ │ │ ├── space_list_empty_state.dart
│ │ │ │ ├── space_list_skeleton.dart
│ │ │ │ └── space_list_widget.dart
│ │ ├── super_invites
│ │ │ ├── dialogs
│ │ │ │ └── redeem_dialog.dart
│ │ │ ├── pages
│ │ │ │ ├── create_super_invite_page.dart
│ │ │ │ └── invite_list_page.dart
│ │ │ ├── providers
│ │ │ │ └── super_invites_providers.dart
│ │ │ ├── utils.dart
│ │ │ └── widgets
│ │ │ │ ├── invite_list_item.dart
│ │ │ │ ├── invite_list_skeleton.dart
│ │ │ │ ├── invite_list_widget.dart
│ │ │ │ └── redeem_token_widget.dart
│ │ ├── tasks
│ │ │ ├── actions
│ │ │ │ ├── add_task.dart
│ │ │ │ ├── create_task.dart
│ │ │ │ ├── my_task_actions.dart
│ │ │ │ ├── select_tasklist.dart
│ │ │ │ └── update_tasklist.dart
│ │ │ ├── models
│ │ │ │ └── tasks.dart
│ │ │ ├── pages
│ │ │ │ ├── my_tasks_page.dart
│ │ │ │ ├── task_item_detail_page.dart
│ │ │ │ ├── task_list_details_page.dart
│ │ │ │ └── tasks_list_page.dart
│ │ │ ├── providers
│ │ │ │ ├── notifiers.dart
│ │ │ │ ├── task_items_providers.dart
│ │ │ │ └── tasklists_providers.dart
│ │ │ ├── sheets
│ │ │ │ └── create_update_task_list.dart
│ │ │ └── widgets
│ │ │ │ ├── all_tasks_done.dart
│ │ │ │ ├── due_chip.dart
│ │ │ │ ├── due_picker.dart
│ │ │ │ ├── empty_task_list.dart
│ │ │ │ ├── skeleton
│ │ │ │ ├── task_item_detail_page_skeleton.dart
│ │ │ │ ├── task_items_skeleton.dart
│ │ │ │ └── tasks_list_skeleton.dart
│ │ │ │ ├── task_item.dart
│ │ │ │ ├── task_items_list_widget.dart
│ │ │ │ ├── task_list_item_card.dart
│ │ │ │ ├── task_list_widget.dart
│ │ │ │ ├── task_lists_empty.dart
│ │ │ │ └── task_status_widget.dart
│ │ └── users
│ │ │ ├── actions
│ │ │ └── show_global_user_dialog.dart
│ │ │ ├── providers
│ │ │ └── user_profile_provider.dart
│ │ │ └── widgets
│ │ │ ├── message_user_button.dart
│ │ │ └── user_info_drawer.dart
│ ├── l10n
│ │ ├── app_ar.arb
│ │ ├── app_da.arb
│ │ ├── app_de.arb
│ │ ├── app_en.arb
│ │ ├── app_es.arb
│ │ ├── app_fr.arb
│ │ ├── app_pl.arb
│ │ ├── app_sw.arb
│ │ └── app_ur.arb
│ ├── main.dart
│ └── router
│ │ ├── general_router.dart
│ │ ├── providers
│ │ └── router_providers.dart
│ │ ├── router.dart
│ │ ├── routes.dart
│ │ ├── shell_routers
│ │ ├── activities_shell_router.dart
│ │ ├── chat_shell_router.dart
│ │ ├── home_shell_router.dart
│ │ ├── search_shell_router.dart
│ │ └── update_shell_router.dart
│ │ └── utils.dart
├── linux
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── flutter
│ │ └── CMakeLists.txt
│ ├── icons
│ │ └── app_icon.png
│ ├── main.cc
│ ├── my_application.cc
│ ├── my_application.h
│ └── packaging
│ │ ├── aur
│ │ ├── .SRCINFO
│ │ └── PKGBUILD
│ │ └── global.acter.a3.desktop
├── macos
│ ├── .gitignore
│ ├── Flutter
│ │ ├── Flutter-Debug.xcconfig
│ │ └── Flutter-Release.xcconfig
│ ├── Podfile
│ ├── Podfile.lock
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── swiftpm
│ │ │ │ └── Package.resolved
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcsharedata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── swiftpm
│ │ │ └── Package.resolved
│ ├── 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
│ └── codesign-release.sh
├── pubspec.lock
├── pubspec.yaml
├── test
│ ├── .gitignore
│ ├── common
│ │ ├── mock_data
│ │ │ ├── mock_avatar_info.dart
│ │ │ └── mock_user_id.dart
│ │ ├── option_extension_test.dart
│ │ ├── providers
│ │ │ ├── client_providers_test.dart
│ │ │ └── space_providers_test.dart
│ │ ├── toolkit
│ │ │ └── widgets
│ │ │ │ ├── acter_selection_area_test.dart
│ │ │ │ └── pulsating_icon_test.dart
│ │ ├── utils
│ │ │ └── utils_test.dart
│ │ └── widgets
│ │ │ ├── acter_icon_picker_widget_test.dart
│ │ │ ├── acter_icon_widget_test.dart
│ │ │ ├── acter_search_widget_test.dart
│ │ │ ├── has_space_permission_test.dart
│ │ │ └── typing_indicator_test.dart
│ ├── features
│ │ ├── activities
│ │ │ └── widgets
│ │ │ │ └── invitation_section
│ │ │ │ └── invitation_section_widget_test.dart
│ │ ├── activity
│ │ │ ├── activity_item_widget_test.dart
│ │ │ ├── activity_section_item_widget_test.dart
│ │ │ ├── invitation_item_widget_test.dart
│ │ │ ├── item_widgets
│ │ │ │ ├── activity_attachment_item_widget_test.dart
│ │ │ │ ├── activity_comment_item_widget_test.dart
│ │ │ │ ├── activity_event_item_widget_test.dart
│ │ │ │ ├── activity_membership_item_widget_test.dart
│ │ │ │ ├── activity_reaction_item_widget_test.dart
│ │ │ │ ├── activity_reference_item_widget_test.dart
│ │ │ │ ├── activity_space_item_widget_test.dart
│ │ │ │ └── activity_task_item_widget_test.dart
│ │ │ ├── mock_data
│ │ │ │ ├── mock_activity.dart
│ │ │ │ ├── mock_activity_object.dart
│ │ │ │ ├── mock_membership_change.dart
│ │ │ │ ├── mock_msg_content.dart
│ │ │ │ ├── mock_ref_details.dart
│ │ │ │ ├── mock_room_avatar_change.dart
│ │ │ │ ├── mock_room_name_change.dart
│ │ │ │ └── mock_room_topic_change.dart
│ │ │ ├── providers
│ │ │ │ ├── activity_dates_providers_test.dart
│ │ │ │ └── room_ids_by_date_provider_test.dart
│ │ │ └── store_encryption_widgets
│ │ │ │ ├── remindme_key_dialog_test.dart
│ │ │ │ ├── show_recovery_key_widget_test.dart
│ │ │ │ └── store_the_key_securely_widget_test.dart
│ │ ├── analytics
│ │ │ └── pages
│ │ │ │ └── analytics_opt_in_page_test.dart
│ │ ├── attachments
│ │ │ ├── golden_attachment_selection_modal_test.dart
│ │ │ └── goldens
│ │ │ │ └── attachment_selection_modal.png
│ │ ├── auth
│ │ │ ├── onboarding
│ │ │ │ ├── customization_page_test.dart
│ │ │ │ ├── encryption_backup_page_test.dart
│ │ │ │ ├── onboarding_encryption_key_backup_page_test.dart
│ │ │ │ ├── onboarding_page_test.dart
│ │ │ │ ├── onboarding_space_creation_page_test.dart
│ │ │ │ ├── recommended_spaces_page_test.dart
│ │ │ │ └── redeem_invitations_page_test.dart
│ │ │ ├── pages
│ │ │ │ ├── login_page_test.dart
│ │ │ │ └── register_page_test.dart
│ │ │ └── widgets
│ │ │ │ ├── create_new_space_widget_test.dart
│ │ │ │ ├── encryption_backup_widget_test.dart
│ │ │ │ ├── expect_descryption_failures_widget_test.dart
│ │ │ │ └── missing_encryption_backup_key_widget_test.dart
│ │ ├── backup
│ │ │ ├── backup_page_test.dart
│ │ │ └── backup_state_widget_test.dart
│ │ ├── bookmarks
│ │ │ ├── bookmark_action_test.dart
│ │ │ └── bookmarks_are_first_provider_test.dart
│ │ ├── calendar_sync
│ │ │ ├── calendar_sync_permission_page_test.dart
│ │ │ └── calendar_sync_test.dart
│ │ ├── chat
│ │ │ ├── chat_listing_search_test.dart
│ │ │ ├── custom_input_test.dart
│ │ │ └── messages
│ │ │ │ ├── chat_message_test.dart
│ │ │ │ └── image_message_test.dart
│ │ ├── chat_ng
│ │ │ ├── chat_room_page
│ │ │ │ ├── golden_chat_room_page_test.dart
│ │ │ │ └── goldens_images
│ │ │ │ │ └── chat_room_page.png
│ │ │ ├── dialogs
│ │ │ │ ├── goldens
│ │ │ │ │ ├── message_actions_other_long.png
│ │ │ │ │ ├── message_actions_other_medium.png
│ │ │ │ │ ├── message_actions_other_short.png
│ │ │ │ │ ├── message_actions_own_long.png
│ │ │ │ │ ├── message_actions_own_medium.png
│ │ │ │ │ └── message_actions_own_short.png
│ │ │ │ └── message_actions_test.dart
│ │ │ ├── diff_applier_test.dart
│ │ │ ├── messages
│ │ │ │ └── chat_message_test.dart
│ │ │ ├── reactions
│ │ │ │ └── reactions_test.dart
│ │ │ ├── room_list
│ │ │ │ └── chatng_listing_search_test.dart
│ │ │ ├── utils_test.dart
│ │ │ └── widgets
│ │ │ │ ├── chat_bubble_test.dart
│ │ │ │ ├── chat_editor
│ │ │ │ ├── chat_editor_mentions_test.dart
│ │ │ │ ├── chat_editor_test.dart
│ │ │ │ ├── editor_height-auto-scroll_test.dart
│ │ │ │ └── goldens
│ │ │ │ │ ├── editor_default_height.png
│ │ │ │ │ ├── editor_long_text_without_breaks.png
│ │ │ │ │ ├── editor_multiline_height.png
│ │ │ │ │ ├── editor_multiline_with_keyboard.png
│ │ │ │ │ └── editor_with_keyboard_visible.png
│ │ │ │ ├── chat_event_item_test.dart
│ │ │ │ ├── chat_item
│ │ │ │ ├── bookmark_icon_widget_test.dart
│ │ │ │ ├── display_name_widget_test.dart
│ │ │ │ ├── goldens
│ │ │ │ │ ├── typing_indicator_test_long_display_name.png
│ │ │ │ │ ├── typing_indicator_visible_on_selection.png
│ │ │ │ │ └── unread_counter_visible_on_selection.png
│ │ │ │ ├── last_message_time_widget_test.dart
│ │ │ │ ├── last_message_widget_test.dart
│ │ │ │ ├── last_message_widgets
│ │ │ │ │ ├── golden_profile_changes_message_event_test.dart
│ │ │ │ │ ├── golden_room_message_event_widget_test.dart
│ │ │ │ │ ├── golden_text_and_media_message_event_test.dart
│ │ │ │ │ ├── goldens
│ │ │ │ │ │ ├── profile_changes_message_event.png
│ │ │ │ │ │ ├── room_message_event_widget.png
│ │ │ │ │ │ └── text_and_media_message_event.png
│ │ │ │ │ ├── profile_changes_event_widget_test.dart
│ │ │ │ │ └── room_membership_event_widget_test.dart
│ │ │ │ ├── mute_icon_widget_test.dart
│ │ │ │ ├── selected_chat_item_test.dart
│ │ │ │ ├── selected_chat_typing_indicator_test.dart
│ │ │ │ ├── typing_indicator_test.dart
│ │ │ │ └── unread_count_widget_test.dart
│ │ │ │ ├── chat_messages_list_test.dart
│ │ │ │ ├── chat_room
│ │ │ │ ├── app_bar_widget_test.dart
│ │ │ │ └── chat_event_messages
│ │ │ │ │ ├── golden_chat_event_code_message_event_test.dart
│ │ │ │ │ ├── golden_chat_event_link_message_event_test.dart
│ │ │ │ │ ├── golden_chat_event_reactions_message_event_dm_chat_test.dart
│ │ │ │ │ ├── golden_chat_event_reactions_message_event_test.dart
│ │ │ │ │ ├── golden_chat_event_reply_message_event_test.dart
│ │ │ │ │ ├── golden_chat_event_reply_with_emojis_only_test.dart
│ │ │ │ │ ├── golden_chat_event_user_mention_message_event_test.dart
│ │ │ │ │ ├── goldens_images
│ │ │ │ │ ├── chat_event_autolink_message_event.png
│ │ │ │ │ ├── chat_event_autolink_message_event_html_next.png
│ │ │ │ │ ├── chat_event_code_message_event.png
│ │ │ │ │ ├── chat_event_code_message_event_html_next.png
│ │ │ │ │ ├── chat_event_link_message_event.png
│ │ │ │ │ ├── chat_event_link_message_event_html_next.png
│ │ │ │ │ ├── chat_event_reactions_message_event.png
│ │ │ │ │ ├── chat_event_reactions_message_event_dm_chat.png
│ │ │ │ │ ├── chat_event_reactions_message_event_dm_chat_html_next.png
│ │ │ │ │ ├── chat_event_reactions_message_event_html_next.png
│ │ │ │ │ ├── chat_event_reactions_message_event_legacy_html.png
│ │ │ │ │ ├── chat_event_reply_message_event.png
│ │ │ │ │ ├── chat_event_reply_message_event_html_next.png
│ │ │ │ │ ├── chat_event_reply_with_emoji_only_html_next.png
│ │ │ │ │ ├── chat_event_reply_with_emoji_only_legacy_html.png
│ │ │ │ │ ├── chat_event_user_mention_message_event.png
│ │ │ │ │ └── chat_event_user_mention_message_event_html_next.png
│ │ │ │ │ └── replied_to_preview_test.dart
│ │ │ │ ├── chat_typing_indicator_test.dart
│ │ │ │ ├── message_event_item_sending_state_test.dart
│ │ │ │ ├── message_timestamp_test.dart
│ │ │ │ ├── read_receipts_widget_test.dart
│ │ │ │ └── sending_state_widget_test.dart
│ │ ├── comments
│ │ │ ├── add_comment_test.dart
│ │ │ ├── comment_item_test.dart
│ │ │ ├── comment_list_test.dart
│ │ │ ├── mock_data
│ │ │ │ ├── mock_comment.dart
│ │ │ │ ├── mock_comments_manager.dart
│ │ │ │ └── mock_message_content.dart
│ │ │ └── mock_providers
│ │ │ │ └── comment_mock_providers.dart
│ │ ├── deep_linking
│ │ │ └── parse_acter_uri_test.dart
│ │ ├── desktop_setup
│ │ │ ├── desktop_setup_page_test.dart
│ │ │ └── mocks
│ │ │ │ └── desktop_setup_mocks.dart
│ │ ├── events
│ │ │ ├── error_pages_test.dart
│ │ │ ├── event_item_test.dart
│ │ │ ├── event_list_widget_test.dart
│ │ │ └── event_providers_test.dart
│ │ ├── general
│ │ │ └── url_validation_test.dart
│ │ ├── home
│ │ │ └── my_spaces_section_test.dart
│ │ ├── invite_members
│ │ │ ├── direct_invite_test.dart
│ │ │ ├── invite_code_ui_test.dart
│ │ │ ├── invite_individual_users_test.dart
│ │ │ ├── invite_page_test.dart
│ │ │ ├── providers
│ │ │ │ └── other_spaces_for_invite_members_test.dart
│ │ │ └── share_invite_code_test.dart
│ │ ├── link_room
│ │ │ ├── link_room_page_test.dart
│ │ │ └── link_room_trailing_test.dart
│ │ ├── notifications
│ │ │ └── notification_permission_page_test.dart
│ │ ├── pins
│ │ │ ├── error_pages_test.dart
│ │ │ ├── pin_item_test.dart
│ │ │ └── pin_list_widget_test.dart
│ │ ├── read_receipts
│ │ │ └── read_widget_test.dart
│ │ ├── room
│ │ │ ├── actions
│ │ │ │ └── join_room_test.dart
│ │ │ ├── providers
│ │ │ │ └── room_providers_test.dart
│ │ │ ├── room_avatar_builder_widget_test.dart
│ │ │ ├── room_card_widget_test.dart
│ │ │ ├── room_preview_widget_test.dart
│ │ │ ├── room_profile_header_widget_test.dart
│ │ │ └── room_with_profile_card_widget_test.dart
│ │ ├── search
│ │ │ └── chat_list_widget_test.dart
│ │ ├── space
│ │ │ ├── pages
│ │ │ │ └── space_details_page_test.dart
│ │ │ └── widgets
│ │ │ │ └── space_sections
│ │ │ │ └── about_section_test.dart
│ │ ├── spaces
│ │ │ ├── actions
│ │ │ │ └── create_space_test.dart
│ │ │ ├── other_chats_section_test.dart
│ │ │ ├── other_spaces_section_test.dart
│ │ │ ├── provider
│ │ │ │ ├── space_hierarchy_providers_test.dart
│ │ │ │ └── space_navabar_provider_test.dart
│ │ │ ├── search_provider_test.dart
│ │ │ ├── space_section_calculator_tests.dart
│ │ │ ├── spacechats_test.dart
│ │ │ ├── subspaces_test.dart
│ │ │ ├── suggested_chats_section_test.dart
│ │ │ ├── suggested_spaces_section_test.dart
│ │ │ ├── utils.dart
│ │ │ └── widgets
│ │ │ │ └── select_permission_test.dart
│ │ ├── super_invites
│ │ │ ├── create_super_invite_page_test.dart
│ │ │ ├── invite_list_item_widget_test.dart
│ │ │ ├── invite_list_widget_test.dart
│ │ │ └── mock_data
│ │ │ │ └── mock_super_invites.dart
│ │ ├── tasks
│ │ │ ├── actions
│ │ │ │ ├── my_task_actions_test.dart
│ │ │ │ └── sorted_tasks_test.dart
│ │ │ ├── error_pages_test.dart
│ │ │ ├── my_task_test.dart
│ │ │ ├── pages
│ │ │ │ └── my_tasks_page_test.dart
│ │ │ ├── task_item_test.dart
│ │ │ ├── task_list_item_card_test.dart
│ │ │ └── tasks_adding_test.dart
│ │ └── update
│ │ │ ├── image_slide_widget_test.dart
│ │ │ ├── news_editor_test.dart
│ │ │ ├── post_to_page_test.dart
│ │ │ ├── update_lists_test.dart
│ │ │ └── video_slide_widget_test.dart
│ ├── flutter_test_config.dart
│ ├── helpers
│ │ ├── error_helpers.dart
│ │ ├── font_loader.dart
│ │ ├── mock_a3sdk.dart
│ │ ├── mock_app_settings.dart
│ │ ├── mock_basics.dart
│ │ ├── mock_bookmarks.dart
│ │ ├── mock_chat_providers.dart
│ │ ├── mock_client_provider.dart
│ │ ├── mock_event_providers.dart
│ │ ├── mock_go_router.dart
│ │ ├── mock_image_provider.dart
│ │ ├── mock_invites.dart
│ │ ├── mock_membership.dart
│ │ ├── mock_pins_providers.dart
│ │ ├── mock_pref_notifier.dart
│ │ ├── mock_preferences.dart
│ │ ├── mock_read_receipt_providers.dart
│ │ ├── mock_relations.dart
│ │ ├── mock_room_providers.dart
│ │ ├── mock_space_providers.dart
│ │ ├── mock_tasks_providers.dart
│ │ ├── mock_updates_providers.dart
│ │ ├── room_test_wrapper.dart
│ │ ├── shared_prefs.dart
│ │ ├── test_util.dart
│ │ ├── test_wrapper_widget.dart
│ │ └── utils.dart
│ ├── lib
│ │ └── features
│ │ │ └── labs
│ │ │ └── providers
│ │ │ └── labs_providers_test.dart
│ └── toolkit
│ │ ├── html
│ │ ├── goldens
│ │ │ ├── html_rendering_ng_accepts_renamed_objects.png
│ │ │ ├── html_rendering_ng_calendar_event.png
│ │ │ ├── html_rendering_ng_code_block_dart.png
│ │ │ ├── html_rendering_ng_code_block_large.png
│ │ │ ├── html_rendering_ng_many.png
│ │ │ ├── html_rendering_ng_many_max_2_lines.png
│ │ │ ├── html_rendering_ng_many_max_4_lines.png
│ │ │ ├── html_rendering_ng_one_line_max_lines.png
│ │ │ ├── html_rendering_ng_pin.png
│ │ │ ├── html_rendering_ng_regular_autodetect_acter_pin.png
│ │ │ ├── html_rendering_ng_regular_autodetect_acter_user.png
│ │ │ ├── html_rendering_ng_regular_autodetect_calendar_event.png
│ │ │ ├── html_rendering_ng_regular_autodetect_links.png
│ │ │ ├── html_rendering_ng_regular_autodetect_links_custom_font.png
│ │ │ ├── html_rendering_ng_regular_autodetect_matrix.png
│ │ │ ├── html_rendering_ng_regular_autodetect_matrix_to.png
│ │ │ ├── html_rendering_ng_regular_autodetect_title_only.png
│ │ │ ├── html_rendering_ng_regular_links.png
│ │ │ ├── html_rendering_ng_regular_links_custom_font.png
│ │ │ ├── html_rendering_ng_text_line_breaks.png
│ │ │ └── html_rendering_ng_title_only.png
│ │ └── rendering_ng_test.dart
│ │ └── html_editor
│ │ └── html_editor_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
│ └── 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
├── docs
├── .gitignore
├── api
│ └── main
│ │ └── .gitkeep
├── index.html
└── static
│ └── CNAME
├── native
├── acter
│ ├── Cargo.toml
│ ├── api.rsh
│ ├── build.rs
│ ├── cbindgen.toml
│ ├── ffi_bindings_extra.dart
│ ├── src
│ │ ├── acter.udl
│ │ ├── api.rs
│ │ ├── api
│ │ │ ├── account.rs
│ │ │ ├── account
│ │ │ │ └── three_pid.rs
│ │ │ ├── activities.rs
│ │ │ ├── attachments.rs
│ │ │ ├── auth.rs
│ │ │ ├── backup.rs
│ │ │ ├── bookmarks.rs
│ │ │ ├── calendar_events.rs
│ │ │ ├── categories.rs
│ │ │ ├── client.rs
│ │ │ ├── client
│ │ │ │ ├── models.rs
│ │ │ │ ├── sync.rs
│ │ │ │ └── url_preview.rs
│ │ │ ├── comments.rs
│ │ │ ├── common.rs
│ │ │ ├── convo.rs
│ │ │ ├── deep_linking.rs
│ │ │ ├── device.rs
│ │ │ ├── invitations
│ │ │ │ ├── client.rs
│ │ │ │ ├── manager.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── object_manager.rs
│ │ │ │ └── room_invitation.rs
│ │ │ ├── news.rs
│ │ │ ├── pins.rs
│ │ │ ├── profile.rs
│ │ │ ├── push.rs
│ │ │ ├── push
│ │ │ │ ├── client.rs
│ │ │ │ ├── notification_item.rs
│ │ │ │ ├── notification_settings.rs
│ │ │ │ └── pusher.rs
│ │ │ ├── reactions.rs
│ │ │ ├── read_receipts.rs
│ │ │ ├── room.rs
│ │ │ ├── room
│ │ │ │ ├── account_data.rs
│ │ │ │ ├── preview.rs
│ │ │ │ └── subscription.rs
│ │ │ ├── rsvp.rs
│ │ │ ├── search.rs
│ │ │ ├── settings.rs
│ │ │ ├── settings
│ │ │ │ ├── space.rs
│ │ │ │ └── user.rs
│ │ │ ├── spaces.rs
│ │ │ ├── spaces
│ │ │ │ └── categories.rs
│ │ │ ├── stories.rs
│ │ │ ├── super_invites.rs
│ │ │ ├── tasks.rs
│ │ │ ├── timeline
│ │ │ │ ├── item.rs
│ │ │ │ ├── mod.rs
│ │ │ │ ├── msg_content.rs
│ │ │ │ ├── msg_draft.rs
│ │ │ │ ├── room_event.rs
│ │ │ │ └── stream.rs
│ │ │ ├── typing.rs
│ │ │ ├── utils.rs
│ │ │ └── verification.rs
│ │ ├── api_next
│ │ │ ├── client.rs
│ │ │ ├── error.rs
│ │ │ ├── mod.rs
│ │ │ ├── notification.rs
│ │ │ └── support.rs
│ │ ├── lib.rs
│ │ ├── platform
│ │ │ ├── android.rs
│ │ │ ├── desktop.rs
│ │ │ ├── ios.rs
│ │ │ ├── mod.rs
│ │ │ └── native.rs
│ │ ├── templates
│ │ │ └── onboarding.toml
│ │ ├── testing.rs
│ │ └── uniffi-bindgen.rs
│ └── uniffi.toml
├── cli
│ ├── Cargo.toml
│ └── src
│ │ ├── action.rs
│ │ ├── action
│ │ ├── execute.rs
│ │ ├── history.rs
│ │ ├── list.rs
│ │ └── manage.rs
│ │ ├── config.rs
│ │ └── main.rs
├── core
│ ├── Cargo.toml
│ └── src
│ │ ├── activities.rs
│ │ ├── activities
│ │ ├── object.rs
│ │ └── status.rs
│ │ ├── client.rs
│ │ ├── error.rs
│ │ ├── events.rs
│ │ ├── events
│ │ ├── attachments.rs
│ │ ├── bookmarks.rs
│ │ ├── calendar.rs
│ │ ├── comments.rs
│ │ ├── common.rs
│ │ ├── common
│ │ │ ├── categories.rs
│ │ │ ├── color.rs
│ │ │ ├── display.rs
│ │ │ ├── labels.rs
│ │ │ ├── object_reference.rs
│ │ │ └── rendering.rs
│ │ ├── explicit_invites.rs
│ │ ├── news.rs
│ │ ├── pins.rs
│ │ ├── read_receipt.rs
│ │ ├── room.rs
│ │ ├── rsvp.rs
│ │ ├── settings.rs
│ │ ├── settings
│ │ │ ├── space.rs
│ │ │ └── user.rs
│ │ ├── stories.rs
│ │ ├── subscription.rs
│ │ ├── tasks.rs
│ │ └── three_pid.rs
│ │ ├── executor.rs
│ │ ├── lib.rs
│ │ ├── models.rs
│ │ ├── models
│ │ ├── any.rs
│ │ ├── attachments.rs
│ │ ├── calendar.rs
│ │ ├── calendar
│ │ │ └── event.rs
│ │ ├── capabilities.rs
│ │ ├── comments.rs
│ │ ├── common.rs
│ │ ├── conversion.rs
│ │ ├── execution.rs
│ │ ├── invites.rs
│ │ ├── meta.rs
│ │ ├── news.rs
│ │ ├── pins.rs
│ │ ├── reactions.rs
│ │ ├── read_receipts.rs
│ │ ├── redaction.rs
│ │ ├── rsvp.rs
│ │ ├── status
│ │ │ ├── membership.rs
│ │ │ ├── mod.rs
│ │ │ ├── profile.rs
│ │ │ └── room_state.rs
│ │ ├── stories.rs
│ │ ├── tag.rs
│ │ ├── tasks.rs
│ │ ├── tasks
│ │ │ ├── task.rs
│ │ │ └── task_list.rs
│ │ └── test.rs
│ │ ├── push.rs
│ │ ├── referencing.rs
│ │ ├── share_link.rs
│ │ ├── spaces.rs
│ │ ├── spaces
│ │ └── permissions.rs
│ │ ├── statics.rs
│ │ ├── store.rs
│ │ ├── store
│ │ └── index.rs
│ │ ├── super_invites.rs
│ │ ├── support.rs
│ │ ├── templates.rs
│ │ ├── templates
│ │ ├── filters.rs
│ │ ├── functions.rs
│ │ └── values.rs
│ │ └── util.rs
├── file-event-cache
│ ├── Cargo.toml
│ ├── Readme.md
│ └── src
│ │ ├── lib.rs
│ │ └── queued.rs
├── media-cache-wrapper
│ ├── Cargo.toml
│ ├── Readme.md
│ └── src
│ │ ├── lib.rs
│ │ └── queued.rs
└── test
│ ├── Cargo.toml
│ └── src
│ ├── lib.rs
│ ├── tests.rs
│ ├── tests
│ ├── activities
│ │ ├── attachments.rs
│ │ ├── calendar.rs
│ │ ├── comments.rs
│ │ ├── likes.rs
│ │ ├── mod.rs
│ │ ├── policy_rule_room.rs
│ │ ├── policy_rule_server.rs
│ │ ├── policy_rule_user.rs
│ │ ├── room_avatar.rs
│ │ ├── room_create.rs
│ │ ├── room_encryption.rs
│ │ ├── room_guest_access.rs
│ │ ├── room_history_visibility.rs
│ │ ├── room_join_rules.rs
│ │ ├── room_name.rs
│ │ ├── room_pinned_events.rs
│ │ ├── room_power_levels.rs
│ │ ├── room_server_acl.rs
│ │ ├── room_tombstone.rs
│ │ ├── room_topic.rs
│ │ ├── space.rs
│ │ ├── space_child.rs
│ │ ├── space_parent.rs
│ │ ├── status.rs
│ │ └── tasks.rs
│ ├── attachment.rs
│ ├── auth.rs
│ ├── backup.rs
│ ├── bookmarks.rs
│ ├── calendar.rs
│ ├── categories.rs
│ ├── fixtures
│ │ ├── PNG_transparency_demonstration_1.png
│ │ ├── big_buck_bunny.mp4
│ │ └── kingfisher.jpg
│ ├── formatted_body.rs
│ ├── invitation.rs
│ ├── media_msg
│ │ ├── blurhash.rs
│ │ ├── download.rs
│ │ ├── mod.rs
│ │ └── thumbnail.rs
│ ├── msg_draft.rs
│ ├── msg_edit.rs
│ ├── news.rs
│ ├── notifications
│ │ ├── attachments.rs
│ │ ├── comments.rs
│ │ ├── event.rs
│ │ ├── likes.rs
│ │ ├── mod.rs
│ │ ├── news.rs
│ │ ├── pins.rs
│ │ ├── references.rs
│ │ └── tasks.rs
│ ├── onboarding.rs
│ ├── pins.rs
│ ├── push.rs
│ ├── reaction.rs
│ ├── redact.rs
│ ├── ref_details.rs
│ ├── reply.rs
│ ├── room
│ │ ├── mod.rs
│ │ ├── policy_rule_room.rs
│ │ ├── policy_rule_server.rs
│ │ ├── policy_rule_user.rs
│ │ ├── room_avatar.rs
│ │ ├── room_create.rs
│ │ ├── room_encryption.rs
│ │ ├── room_guest_access.rs
│ │ ├── room_history_visibility.rs
│ │ ├── room_join_rules.rs
│ │ ├── room_name.rs
│ │ ├── room_pinned_events.rs
│ │ ├── room_power_levels.rs
│ │ ├── room_server_acl.rs
│ │ ├── room_tombstone.rs
│ │ ├── room_topic.rs
│ │ ├── space_child.rs
│ │ ├── space_parent.rs
│ │ └── user_settings.rs
│ ├── room_updates.rs
│ ├── rsvp.rs
│ ├── spaces.rs
│ ├── spaces
│ │ └── upgrades.rs
│ ├── stories.rs
│ ├── super_invites.rs
│ ├── sync.rs
│ ├── tasks.rs
│ ├── tasks
│ │ └── invitations.rs
│ ├── templates.rs
│ ├── typing.rs
│ ├── url_previews.rs
│ └── verification.rs
│ └── utils.rs
├── packages
├── acter_notifify
│ ├── .gitignore
│ ├── .metadata
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── analysis_options.yaml
│ ├── lib
│ │ ├── acter_notifify.dart
│ │ ├── local.dart
│ │ ├── matrix.dart
│ │ ├── model
│ │ │ └── push_styles.dart
│ │ ├── ntfy.dart
│ │ ├── platform
│ │ │ ├── android.dart
│ │ │ ├── darwin.dart
│ │ │ ├── linux.dart
│ │ │ └── windows.dart
│ │ ├── processing
│ │ │ ├── attachment.dart
│ │ │ ├── comment.dart
│ │ │ ├── description.dart
│ │ │ ├── event.dart
│ │ │ ├── object_creation.dart
│ │ │ ├── object_invitation.dart
│ │ │ ├── object_other_changes.dart
│ │ │ ├── object_redaction.dart
│ │ │ ├── reaction.dart
│ │ │ ├── references.dart
│ │ │ ├── task_item.dart
│ │ │ ├── task_list.dart
│ │ │ ├── title_change.dart
│ │ │ └── utils.dart
│ │ ├── push.dart
│ │ └── util.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── attachment_notification_test.dart
│ │ ├── comment_notification_test.dart
│ │ ├── description_change_notification_test.dart
│ │ ├── event_notification_test.dart
│ │ ├── invitations_notification_test.dart
│ │ ├── message_format_test.dart
│ │ ├── mock_data
│ │ ├── mock_activity_object.dart
│ │ ├── mock_notification_item.dart
│ │ ├── mock_notification_sender.dart
│ │ └── mock_object.dart
│ │ ├── object_creation_notification_test.dart
│ │ ├── object_other_changes_notification_test.dart
│ │ ├── object_redaction_notification_test.dart
│ │ ├── reaction_notification_test.dart
│ │ ├── references_notification_test.dart
│ │ ├── task_item_notification_test.dart
│ │ ├── task_list_notification_test.dart
│ │ └── title_change_notification_test.dart
├── acter_trigger_auto_complete
│ ├── .gitignore
│ ├── .metadata
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── analysis_options.yaml
│ ├── example
│ │ ├── .gitignore
│ │ ├── .metadata
│ │ ├── README.md
│ │ ├── analysis_options.yaml
│ │ ├── android
│ │ │ ├── .gitignore
│ │ │ ├── app
│ │ │ │ ├── build.gradle
│ │ │ │ └── src
│ │ │ │ │ ├── debug
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ │ ├── main
│ │ │ │ │ ├── AndroidManifest.xml
│ │ │ │ │ ├── kotlin
│ │ │ │ │ │ └── com
│ │ │ │ │ │ │ └── example
│ │ │ │ │ │ │ └── example
│ │ │ │ │ │ │ └── MainActivity.kt
│ │ │ │ │ └── res
│ │ │ │ │ │ ├── drawable-v21
│ │ │ │ │ │ └── launch_background.xml
│ │ │ │ │ │ ├── drawable
│ │ │ │ │ │ └── launch_background.xml
│ │ │ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ │ ├── values-night
│ │ │ │ │ │ └── styles.xml
│ │ │ │ │ │ └── values
│ │ │ │ │ │ └── styles.xml
│ │ │ │ │ └── profile
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle.properties
│ │ │ ├── gradle
│ │ │ │ └── wrapper
│ │ │ │ │ └── gradle-wrapper.properties
│ │ │ └── settings.gradle
│ │ ├── ios
│ │ │ ├── .gitignore
│ │ │ ├── Flutter
│ │ │ │ ├── AppFrameworkInfo.plist
│ │ │ │ ├── Debug.xcconfig
│ │ │ │ └── Release.xcconfig
│ │ │ ├── Podfile
│ │ │ ├── Runner.xcodeproj
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata
│ │ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ │ └── xcshareddata
│ │ │ │ │ └── xcschemes
│ │ │ │ │ └── Runner.xcscheme
│ │ │ ├── Runner.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ └── Runner
│ │ │ │ ├── AppDelegate.swift
│ │ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ │ │ └── LaunchImage.imageset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── LaunchImage.png
│ │ │ │ │ ├── LaunchImage@2x.png
│ │ │ │ │ ├── LaunchImage@3x.png
│ │ │ │ │ └── README.md
│ │ │ │ ├── Base.lproj
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── Main.storyboard
│ │ │ │ ├── Info.plist
│ │ │ │ └── Runner-Bridging-Header.h
│ │ ├── lib
│ │ │ ├── main.dart
│ │ │ └── src
│ │ │ │ ├── chat_message_list.dart
│ │ │ │ ├── chat_message_text_field.dart
│ │ │ │ ├── data.dart
│ │ │ │ ├── models.dart
│ │ │ │ └── options
│ │ │ │ ├── emoji_autocomplete_options.dart
│ │ │ │ ├── hashtag_autocomplete_options.dart
│ │ │ │ ├── mention_autocomplete_options.dart
│ │ │ │ └── options.dart
│ │ ├── pubspec.lock
│ │ └── pubspec.yaml
│ ├── lib
│ │ ├── acter_trigger_autocomplete.dart
│ │ └── src
│ │ │ ├── acter_trigger_autocomplete.dart
│ │ │ ├── acter_trigger_autocomplete_controller.dart
│ │ │ ├── autocomplete_query.dart
│ │ │ └── autocomplete_trigger.dart
│ ├── pubspec.yaml
│ └── test
│ │ ├── acter_trigger_autocomplete_test.dart
│ │ └── autocomplete_trigger_test.dart
├── rust_sdk
│ ├── .gitignore
│ ├── .metadata
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── analysis_options.yaml
│ ├── android
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── settings.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── .gitignore
│ │ │ ├── AndroidManifest.xml
│ │ │ └── kotlin
│ │ │ └── global
│ │ │ └── acter
│ │ │ └── acter_flutter_sdk
│ │ │ └── ActerFlutterSdkPlugin.kt
│ ├── ios
│ │ ├── .gitignore
│ │ ├── Assets
│ │ │ └── .gitkeep
│ │ ├── Classes
│ │ │ ├── ActerFlutterSdkPlugin.h
│ │ │ ├── ActerFlutterSdkPlugin.m
│ │ │ └── SwiftActerFlutterSdkPlugin.swift
│ │ └── acter_flutter_sdk.podspec
│ ├── lib
│ │ ├── acter.dart
│ │ ├── acter_flutter_sdk.dart
│ │ ├── acter_flutter_sdk_ffi.dart
│ │ ├── acter_flutter_sdk_method_channel.dart
│ │ ├── acter_flutter_sdk_platform_interface.dart
│ │ └── acter_flutter_sdk_web.dart
│ ├── linux
│ │ ├── CMakeLists.txt
│ │ ├── acter_flutter_sdk_plugin.cc
│ │ └── include
│ │ │ └── acter_flutter_sdk
│ │ │ └── acter_flutter_sdk_plugin.h
│ ├── macos
│ │ ├── Classes
│ │ │ ├── ActerFlutterSdkPlugin.h
│ │ │ └── ActerFlutterSdkPlugin.swift
│ │ └── acter_flutter_sdk.podspec
│ ├── pubspec.yaml
│ ├── test
│ │ ├── acter_flutter_sdk_method_channel_test.dart
│ │ └── acter_flutter_sdk_test.dart
│ └── windows
│ │ ├── .gitignore
│ │ ├── CMakeLists.txt
│ │ ├── acter_flutter_sdk_plugin.cpp
│ │ ├── acter_flutter_sdk_plugin.h
│ │ ├── acter_flutter_sdk_plugin_c_api.cpp
│ │ └── include
│ │ └── acter_flutter_sdk
│ │ ├── acter_flutter_sdk_plugin.h
│ │ └── acter_flutter_sdk_plugin_c_api.h
└── shake_detector
│ ├── .github
│ └── FUNDING.yml
│ ├── .gitignore
│ ├── .metadata
│ ├── .vscode
│ └── launch.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── analysis_options.yaml
│ ├── example
│ ├── .gitignore
│ ├── .metadata
│ ├── README.md
│ ├── analysis_options.yaml
│ ├── android
│ │ ├── .gitignore
│ │ ├── app
│ │ │ ├── build.gradle
│ │ │ └── src
│ │ │ │ ├── debug
│ │ │ │ └── AndroidManifest.xml
│ │ │ │ ├── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── kotlin
│ │ │ │ │ └── com
│ │ │ │ │ │ └── example
│ │ │ │ │ │ └── example
│ │ │ │ │ │ └── MainActivity.kt
│ │ │ │ └── res
│ │ │ │ │ ├── drawable-v21
│ │ │ │ │ └── launch_background.xml
│ │ │ │ │ ├── drawable
│ │ │ │ │ └── launch_background.xml
│ │ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── values-night
│ │ │ │ │ └── styles.xml
│ │ │ │ │ └── values
│ │ │ │ │ └── styles.xml
│ │ │ │ └── profile
│ │ │ │ └── AndroidManifest.xml
│ │ ├── build.gradle
│ │ ├── gradle.properties
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ └── gradle-wrapper.properties
│ │ └── settings.gradle
│ ├── ios
│ │ ├── .gitignore
│ │ ├── Flutter
│ │ │ ├── AppFrameworkInfo.plist
│ │ │ ├── Debug.xcconfig
│ │ │ └── Release.xcconfig
│ │ ├── Podfile
│ │ ├── Podfile.lock
│ │ ├── Runner.xcodeproj
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ └── xcshareddata
│ │ │ │ └── xcschemes
│ │ │ │ └── Runner.xcscheme
│ │ ├── Runner.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ ├── Runner
│ │ │ ├── AppDelegate.swift
│ │ │ ├── Assets.xcassets
│ │ │ │ ├── AppIcon.appiconset
│ │ │ │ │ ├── Contents.json
│ │ │ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ │ │ └── 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
│ │ └── RunnerTests
│ │ │ └── RunnerTests.swift
│ ├── lib
│ │ └── main.dart
│ ├── pubspec.lock
│ ├── pubspec.yaml
│ └── test
│ │ └── widget_test.dart
│ ├── lib
│ └── shake_detector.dart
│ └── pubspec.yaml
├── rust-toolchain
└── util
├── conv_test_man
├── .gitignore
├── .metadata
├── README.md
├── analysis_options.yaml
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── conv_test_man
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v21
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values-night
│ │ │ │ └── styles.xml
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Podfile
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ ├── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ │ └── LaunchImage.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── LaunchImage.png
│ │ │ │ ├── LaunchImage@2x.png
│ │ │ │ ├── LaunchImage@3x.png
│ │ │ │ └── README.md
│ │ ├── Base.lproj
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ └── Runner-Bridging-Header.h
│ └── RunnerTests
│ │ └── RunnerTests.swift
├── lib
│ └── main.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
│ ├── 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
│ └── RunnerTests
│ │ └── RunnerTests.swift
├── pubspec.lock
├── pubspec.yaml
├── 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
├── mr_minutes
├── Cargo.toml
└── src
│ └── main.rs
├── sari
├── Cargo.toml
└── src
│ ├── commands
│ ├── build.rs
│ └── mod.rs
│ └── main.rs
└── test_server
├── .config
├── acter-synapse-ci
│ ├── Dockerfile
│ └── ci-start.sh
├── nginx.conf
└── rageshake.yml
├── .gitignore
├── Vagrantfile
└── docker-compose.yml
/.changes/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/.changes/.gitkeep
--------------------------------------------------------------------------------
/.config/nextest.toml:
--------------------------------------------------------------------------------
1 | [profile.default]
2 | slow-timeout = { period = "2min", terminate-after = 5 }
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | .github/assets/provision_profiles/** filter=git-crypt diff=git-crypt
2 | .github/assets/*.p12 filter=git-crypt diff=git-crypt
3 |
--------------------------------------------------------------------------------
/.github/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## Thanks
2 |
3 | for considering to contribute to acter. Highly appreciated! Before you continue please read the
4 |
5 | [](https://docs.acter.global/docs/contributing/how-to-contribute/)
6 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | ko_fi: acter
2 |
--------------------------------------------------------------------------------
/.github/nextest-config.toml:
--------------------------------------------------------------------------------
1 | [profile.default]
2 | retries = 2
3 | slow-timeout = { period = "2min", terminate-after = 5 }
--------------------------------------------------------------------------------
/.github/templates/failure-report-template.md.tmpl:
--------------------------------------------------------------------------------
1 | ---
2 | title: Failed to build {{ env.NAME }} for {{ env.TAG }}.
3 | assignees: gnunicorn
4 | labels: bug, build
5 | ---
6 |
7 | - [Failed Run]({{ env.FAILED_RUN_URL }})
8 | - [Artifacts]({{ env.ARTIFACT_URL }})
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | target
2 | .env.sh
3 | .vscode
4 | .idea
5 | .local
6 | .DS_Store
7 | app/firebase.json
8 | Changes.md
9 | nightly-changes.md
10 | packages/rust_sdk/**/libacter.a
11 | native/acter/src/api_generated.rs
12 | native/acter/bindings.h
13 | native/acter/bindings.dart
14 | .github/assets/git-crypt-key
15 | app/lib/config/env.g.dart
16 | app/.env.*
17 | app/coverage
18 | devtools_options.yaml
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/.gitmodules
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | - Fix crash when picking an Avatar or image on older devices
2 | - Suggested spaces and chats are preferably now shown on the overview of a space, if configured
3 | - [Fix] you can now suggest chat rooms you are already in as well
4 | - Unified the way chats and spaces are shown in various lists for a cleaner UI and improved layout
5 | - Spaces and Chats are now separated on the invites editing page for easier and cleaner access
6 | - Empty lines are now preserved and rendered in chats when composing room message text.
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/README.md:
--------------------------------------------------------------------------------
1 | # acter
2 |
3 | A new Flutter project.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/app/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | linter:
4 | rules:
5 | prefer_single_quotes: true
6 | always_declare_return_types: true
7 | always_use_package_imports: true
8 | file_names: false
9 |
10 | analyzer:
11 | exclude:
12 | - packages/**
13 | - "**.g.dart"
14 | - "**_ffi.dart"
--------------------------------------------------------------------------------
/app/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 | *.hprof
15 |
--------------------------------------------------------------------------------
/app/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/android/app/src/main/drawable-hdpi/logo_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/drawable-hdpi/logo_notification.png
--------------------------------------------------------------------------------
/app/android/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/android/app/src/main/kotlin/global/acter/app/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package global.acter.app
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/app/android/app/src/main/logo_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/logo_notification.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/drawable-hdpi/logo_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/drawable-hdpi/logo_notification.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/drawable-mdpi/logo_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/drawable-mdpi/logo_notification.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/app/android/app/src/main/res/drawable-xhdpi/logo_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/drawable-xhdpi/logo_notification.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/drawable-xxhdpi/logo_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/drawable-xxhdpi/logo_notification.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/drawable-xxxhdpi/logo_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/drawable-xxxhdpi/logo_notification.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/drawable/app_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/drawable/app_icon.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/android/app/src/main/res/raw/keep.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/android/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | #9CCAFF
5 |
--------------------------------------------------------------------------------
/app/android/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #1B2941
4 |
--------------------------------------------------------------------------------
/app/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/android/build.gradle:
--------------------------------------------------------------------------------
1 | allprojects {
2 | repositories {
3 | google()
4 | mavenCentral()
5 | }
6 | }
7 |
8 | rootProject.buildDir = '../build'
9 | subprojects {
10 | project.buildDir = "${rootProject.buildDir}/${project.name}"
11 | }
12 | subprojects {
13 | project.evaluationDependsOn(':app')
14 | }
15 |
16 | tasks.register("clean", Delete) {
17 | delete rootProject.buildDir
18 | }
--------------------------------------------------------------------------------
/app/android/gradle.properties:
--------------------------------------------------------------------------------
1 | android.useAndroidX=true
2 | android.enableJetifier=true
3 | org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
4 | android.buildFeatures.buildConfig=true
5 | android.nonTransitiveRClass=false
6 | android.nonFinalResIds=false
7 | kotlin.incremental=true
8 | org.gradle.caching=true
9 |
--------------------------------------------------------------------------------
/app/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
8 |
--------------------------------------------------------------------------------
/app/assets/fonts/Inter.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/fonts/Inter.ttf
--------------------------------------------------------------------------------
/app/assets/fonts/Noto-COLRv1.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/fonts/Noto-COLRv1.ttf
--------------------------------------------------------------------------------
/app/assets/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/app/assets/fonts/RobotoMono-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/fonts/RobotoMono-Regular.ttf
--------------------------------------------------------------------------------
/app/assets/icon/ic_left_chat_bubble_corner.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/app/assets/icon/ic_right_chat_bubble_corner.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/app/assets/icon/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/icon/logo.png
--------------------------------------------------------------------------------
/app/assets/icon/logo_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/icon/logo_foreground.png
--------------------------------------------------------------------------------
/app/assets/icon/signal_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/icon/signal_logo.png
--------------------------------------------------------------------------------
/app/assets/icon/tray_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/icon/tray_icon.ico
--------------------------------------------------------------------------------
/app/assets/icon/tray_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/icon/tray_icon.png
--------------------------------------------------------------------------------
/app/assets/images/chat_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/chat_bg.png
--------------------------------------------------------------------------------
/app/assets/images/comms_onboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/comms_onboard.png
--------------------------------------------------------------------------------
/app/assets/images/encryptionkey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/encryptionkey.png
--------------------------------------------------------------------------------
/app/assets/images/intro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/intro.png
--------------------------------------------------------------------------------
/app/assets/images/modularity_onboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/modularity_onboard.png
--------------------------------------------------------------------------------
/app/assets/images/onboarding-collaboration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/onboarding-collaboration.png
--------------------------------------------------------------------------------
/app/assets/images/onboarding-train-station.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/onboarding-train-station.png
--------------------------------------------------------------------------------
/app/assets/images/onboarding-welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/onboarding-welcome.png
--------------------------------------------------------------------------------
/app/assets/images/sendIcon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/assets/images/spaces_onboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/spaces_onboard.png
--------------------------------------------------------------------------------
/app/assets/images/update_onboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/images/update_onboard.png
--------------------------------------------------------------------------------
/app/assets/videos/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/assets/videos/.gitkeep
--------------------------------------------------------------------------------
/app/build.yaml:
--------------------------------------------------------------------------------
1 | targets:
2 | $default:
3 | sources:
4 | - lib/**
5 | - pubspec.*
6 | - $package$
7 | # Allows the code generator to target files outside of the lib folder
8 | - integration_test/**.dart
9 |
--------------------------------------------------------------------------------
/app/devtools_options.yaml:
--------------------------------------------------------------------------------
1 | extensions:
2 |
--------------------------------------------------------------------------------
/app/ios/ActerPushServiceExtension/ActerLogger.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ActerLogger.swift
3 | // ActerPushServiceExtension
4 | //
5 | // Created by Benjamin Kampmann on 03/10/2023.
6 | //
7 | import OSLog
8 |
9 | extension Logger {
10 | /// Using your bundle identifier is a great way to ensure a unique identifier.
11 | private static var subsystem = Bundle.main.bundleIdentifier!
12 |
13 | /// Logs the view cycles like a view that appeared.
14 | static let push = Logger(subsystem: subsystem, category: "process")
15 | }
16 |
--------------------------------------------------------------------------------
/app/ios/ActerPushServiceExtension/ActerPushServiceExtension.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 | com.apple.security.network.client
8 |
9 | keychain-access-groups
10 |
11 | $(AppIdentifierPrefix)global.acter.a3
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/ios/ActerPushServiceExtension/Constants.swift:
--------------------------------------------------------------------------------
1 |
2 |
3 | import Foundation
4 |
5 | enum NotificationConstants {
6 | enum UserInfoKey {
7 | static let roomIdentifier = "room_id"
8 | static let eventIdentifier = "event_id"
9 | static let deviceIdentifier = "device_id"
10 | static let unreadCount = "unread_count"
11 | static let pusherNotificationClientIdentifier = "pusher_notification_client_identifier"
12 | static let receiverIdentifier = "receiver_id"
13 | static let notificationIdentifier = "notification_identifier"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/ios/ActerPushServiceExtension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSExtension
6 |
7 | NSExtensionPointIdentifier
8 | com.apple.usernotifications.service
9 | NSExtensionPrincipalClass
10 | $(PRODUCT_MODULE_NAME).NotificationService
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/app/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @main
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 |
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/app/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.
--------------------------------------------------------------------------------
/app/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/app/ios/acterFFI/module.modulemap:
--------------------------------------------------------------------------------
1 | // This file was autogenerated by some hot garbage in the `uniffi` crate.
2 | // Trust me, you don't want to mess with it!
3 | module acterFFI {
4 | header "acterFFI.h"
5 | export *
6 | }
--------------------------------------------------------------------------------
/app/l10n.yaml:
--------------------------------------------------------------------------------
1 | arb-dir: lib/l10n
2 | output-dir: lib/l10n/generated
3 | template-arb-file: app_en.arb
4 | output-localization-file: l10n.dart
5 | output-class: L10n
6 | preferred-supported-locales: ["en"]
7 | nullable-getter: false
8 | synthetic-package: false
--------------------------------------------------------------------------------
/app/lib/common/animations/like_animation.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class LikeAnimation {
4 | static AnimationController? controller;
5 | static bool isCliked = false;
6 | static Set likedIndex = {};
7 |
8 | static void run(int index) {
9 | likedIndex.add(index);
10 | isCliked = true;
11 | controller!.reset();
12 | controller!.forward();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/lib/common/models/keys.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class LogoutDialogKeys {
4 | static const confirm = Key('logout-dialog-confirm');
5 | static const cancel = Key('logout-dialog-cancel');
6 | }
7 |
--------------------------------------------------------------------------------
/app/lib/common/models/sync_state/sync_state.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 | import 'package:flutter/foundation.dart';
3 |
4 | part 'sync_state.freezed.dart';
5 |
6 | @freezed
7 | class SyncState with _$SyncState {
8 | const factory SyncState({
9 | required bool initialSync,
10 | String? errorMsg,
11 | int? countDown,
12 | int? nextRetry,
13 | }) = _NewSyncState;
14 | }
15 |
--------------------------------------------------------------------------------
/app/lib/common/models/types.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 |
3 | typedef MemberInfo = ({String userId, String roomId});
4 | typedef ChatMessageInfo = ({String messageId, String roomId});
5 | typedef RoomQuery = ({String roomId, String query});
6 |
7 | enum AttachmentType { camera, image, audio, video, location, file, link }
8 |
9 | typedef AttachmentInfo = ({AttachmentType type, File file});
10 |
11 | enum UrgencyBadge { urgent, important, unread, read, none }
12 |
--------------------------------------------------------------------------------
/app/lib/common/providers/app_state_provider.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/widgets.dart';
2 | import 'package:flutter_riverpod/flutter_riverpod.dart';
3 |
4 | final appStateProvider = StateProvider(
5 | (ref) => AppLifecycleState.resumed,
6 | );
7 |
8 | final isAppInForeground = StateProvider(
9 | (ref) =>
10 | ref.watch(appStateProvider) ==
11 | AppLifecycleState.resumed, // this means we are running
12 | );
13 |
--------------------------------------------------------------------------------
/app/lib/common/providers/reactions_providers.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/providers/notifiers/reactions_notifiers.dart';
2 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
3 | import 'package:riverpod/riverpod.dart';
4 |
5 | /// Provider the profile data of a the given space, keeps up to date with underlying client
6 | final reactionManagerProvider = NotifierProvider.family<
7 | ReactionManagerNotifier,
8 | ReactionManager,
9 | ReactionManager
10 | >(() => ReactionManagerNotifier());
11 |
--------------------------------------------------------------------------------
/app/lib/common/providers/sdk_provider.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk.dart';
2 | import 'package:riverpod/riverpod.dart';
3 |
4 | final sdkProvider = FutureProvider((ref) async {
5 | return await ActerSdk.instance;
6 | });
7 |
--------------------------------------------------------------------------------
/app/lib/common/themes/components/bottom_sheet_theme.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/themes/colors/color_scheme.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | var bottomSheetTheme = BottomSheetThemeData(
5 | backgroundColor: surfaceColor,
6 | shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
7 | );
8 |
--------------------------------------------------------------------------------
/app/lib/common/themes/components/card_theme.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/themes/colors/color_scheme.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | var cardTheme = CardTheme(
5 | color: surfaceColor,
6 | elevation: 0,
7 | margin: const EdgeInsets.symmetric(horizontal: 15, vertical: 8),
8 | );
9 |
--------------------------------------------------------------------------------
/app/lib/common/themes/components/dialog_theme.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/themes/colors/color_scheme.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | var dialogTheme = DialogTheme(
5 | iconColor: const Color(0xFF67A24A),
6 | backgroundColor: surfaceColor,
7 | elevation: 0,
8 | shape: RoundedRectangleBorder(
9 | side: BorderSide.none,
10 | borderRadius: BorderRadius.circular(6),
11 | ),
12 | );
13 |
--------------------------------------------------------------------------------
/app/lib/common/themes/components/divider_theme.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | var dividerTheme = const DividerThemeData(
4 | indent: 75,
5 | endIndent: 15,
6 | thickness: 0.5,
7 | );
8 |
--------------------------------------------------------------------------------
/app/lib/common/themes/components/list_tile_Theme.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | var listTileTheme = const ListTileThemeData(
4 | contentPadding: EdgeInsets.symmetric(horizontal: 15, vertical: 5),
5 | );
6 |
--------------------------------------------------------------------------------
/app/lib/common/themes/components/progress_indicator_theme.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | var progressIndicatorTheme = const ProgressIndicatorThemeData(
4 | color: Color(0xffFF8E00),
5 | circularTrackColor: Colors.transparent,
6 | );
7 |
--------------------------------------------------------------------------------
/app/lib/common/toolkit/buttons/primary_action_button.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | /// ActionButton for primary actions
4 | ///
5 | /// This is an ElevatedButton using the primary-colors from the contextual theme
6 | /// to create a button that indicates a primary action. There should only ever
7 | /// be one primary action on a page. All input is as for [ElevatedButton].
8 | typedef ActerPrimaryActionButton = ElevatedButton;
9 |
--------------------------------------------------------------------------------
/app/lib/common/toolkit/html_editor/mentions/models/mention_attributes.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/toolkit/html_editor/mentions/models/mention_type.dart';
2 |
3 | class MentionAttributes {
4 | final String mentionId;
5 | final String? displayName;
6 | final MentionType type;
7 |
8 | const MentionAttributes({
9 | required this.mentionId,
10 | required this.type,
11 | this.displayName,
12 | });
13 | }
14 |
--------------------------------------------------------------------------------
/app/lib/common/toolkit/html_editor/mentions/models/mention_type.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/toolkit/html_editor/services/constants.dart';
2 |
3 | enum MentionType {
4 | user,
5 | room;
6 |
7 | static String toStr(MentionType type) => switch (type) {
8 | MentionType.user => userMentionChar,
9 | MentionType.room => roomMentionChar,
10 | };
11 | static MentionType fromStr(String str) => switch (str) {
12 | userMentionChar => MentionType.user,
13 | roomMentionChar => MentionType.room,
14 | _ => throw UnsupportedError('invalid string'),
15 | };
16 | }
17 |
--------------------------------------------------------------------------------
/app/lib/common/toolkit/html_editor/services/constants.dart:
--------------------------------------------------------------------------------
1 | const String userMentionChar = '@';
2 | const String roomMentionChar = '#';
3 | const userMentionMarker = '‖';
4 | final userMentionRegExp = RegExp(
5 | r'\[@([^\]]+)\]\(https:\/\/matrix\.to\/#\/(@[^)]+)\)',
6 | );
7 | final userMentionLinkRegExp = RegExp(
8 | r'https://matrix.to/#/(?@.+):(?.+)',
9 | );
10 |
--------------------------------------------------------------------------------
/app/lib/common/toolkit/skeletons/room_card_skeleton.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:skeletonizer/skeletonizer.dart';
3 |
4 | class RoomCardSkeleton extends StatelessWidget {
5 | const RoomCardSkeleton({super.key});
6 |
7 | @override
8 | Widget build(BuildContext context) {
9 | return Skeletonizer(
10 | child: Card(
11 | margin: const EdgeInsets.all(16),
12 | child: ListTile(
13 | leading: Bone.square(size: 48),
14 | title: Text('Room Card Skeleton'),
15 | ),
16 | ),
17 | );
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/lib/common/toolkit/widgets/acter_selection_area.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class ActerSelectionArea extends StatelessWidget {
4 | final Widget child;
5 | const ActerSelectionArea({super.key, required this.child});
6 |
7 | @override
8 | Widget build(BuildContext context) {
9 | return TextSelectionTheme(
10 | data: TextSelectionThemeData(
11 | selectionColor: Theme.of(
12 | context,
13 | ).colorScheme.secondary.withValues(alpha: 0.3),
14 | ),
15 | child: SelectionArea(child: child),
16 | );
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/lib/common/tutorial_dialogs/show_tutorials.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:tutorial_coach_mark/tutorial_coach_mark.dart';
3 |
4 | void showTutorials({
5 | required BuildContext context,
6 | required List targets,
7 | Function()? onFinish,
8 | Function(TargetFocus)? onClickTarget,
9 | bool Function()? onSkip,
10 | }) {
11 | TutorialCoachMark(
12 | targets: targets,
13 | onFinish: onFinish,
14 | onClickTarget: onClickTarget,
15 | onSkip: onSkip,
16 | alignSkip: Alignment.topRight,
17 | ).show(context: context);
18 | }
19 |
--------------------------------------------------------------------------------
/app/lib/common/utils/device.dart:
--------------------------------------------------------------------------------
1 | import 'package:device_info_plus/device_info_plus.dart';
2 | import 'dart:io';
3 |
4 | final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
5 |
6 | Future isRealPhone() async {
7 | if (Platform.isAndroid) {
8 | final androidInfo = await deviceInfo.androidInfo;
9 | return androidInfo.isPhysicalDevice;
10 | } else if (Platform.isIOS) {
11 | final iosInfo = await deviceInfo.iosInfo;
12 | return iosInfo.isPhysicalDevice;
13 | }
14 | return false;
15 | }
16 |
--------------------------------------------------------------------------------
/app/lib/common/widgets/acter_icon_picker/model/color_data.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | List iconPickerColors = [
4 | Colors.grey,
5 | Colors.greenAccent,
6 | Colors.redAccent,
7 | Colors.lightBlueAccent,
8 | Colors.orangeAccent,
9 | Colors.amberAccent,
10 | Colors.deepOrangeAccent,
11 | Colors.lightGreenAccent,
12 | Colors.tealAccent,
13 | Colors.purpleAccent,
14 | Colors.indigoAccent,
15 | Colors.pinkAccent,
16 | ];
17 |
--------------------------------------------------------------------------------
/app/lib/common/widgets/centered_page.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | const double maxWidth = 750;
4 |
5 | class CenteredPage extends StatelessWidget {
6 | final Widget child;
7 | const CenteredPage({super.key, required this.child});
8 |
9 | @override
10 | Widget build(BuildContext context) {
11 | return Center(
12 | child: ConstrainedBox(
13 | constraints: const BoxConstraints(maxWidth: maxWidth),
14 | child: child,
15 | ),
16 | );
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/lib/common/widgets/no_internet.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_easyloading/flutter_easyloading.dart';
2 | import 'package:acter/l10n/generated/l10n.dart';
3 |
4 | void showNoInternetNotification(L10n lang) {
5 | EasyLoading.showToast(lang.limitedInternConnection);
6 | }
7 |
--------------------------------------------------------------------------------
/app/lib/features/analytics/actions/telemetry_analytics.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/features/analytics/pages/analytics_opt_in_page.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | /// Internal function to handle analytics opt-in
5 | Future showAnalyticsOptIn(BuildContext context) async {
6 | if (context.mounted) {
7 | await showDialog(
8 | context: context,
9 | barrierDismissible: false,
10 | builder: (BuildContext context) {
11 | return Dialog.fullscreen(child: const AnalyticsOptInWidget());
12 | },
13 | );
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/lib/features/auth/providers/auth_providers.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/features/auth/providers/notifiers/auth_notifier.dart';
2 | import 'package:riverpod/riverpod.dart';
3 |
4 | final authLoadingStateProvider = Provider(
5 | (ref) => ref.watch(authStateProvider),
6 | );
7 |
8 | final authStateProvider = NotifierProvider(
9 | () => AuthNotifier(),
10 | );
11 |
--------------------------------------------------------------------------------
/app/lib/features/auth/widgets/logo_widget.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_svg/flutter_svg.dart';
3 |
4 | class LogoWidget extends StatelessWidget {
5 | final double height;
6 | final double width;
7 |
8 | const LogoWidget({super.key, this.height = 200, this.width = 200});
9 |
10 | @override
11 | Widget build(BuildContext context) {
12 | return SvgPicture.asset(
13 | 'assets/icon/logo_foreground.svg',
14 | height: height,
15 | width: width,
16 | );
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/lib/features/backups/types.dart:
--------------------------------------------------------------------------------
1 | enum RecoveryState { incomplete, enabled, disabled, unknown }
2 |
3 | RecoveryState stringToState(String s) {
4 | return switch (s) {
5 | 'incomplete' => RecoveryState.incomplete,
6 | 'enabled' => RecoveryState.enabled,
7 | 'disabled' => RecoveryState.disabled,
8 | _ => RecoveryState.unknown,
9 | };
10 | }
11 |
--------------------------------------------------------------------------------
/app/lib/features/bug_report/providers/bug_report_providers.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/config/env.g.dart';
2 | import 'package:riverpod/riverpod.dart';
3 |
4 | // Loading Providers
5 | final bugReporterLoadingProvider = StateProvider((ref) => false);
6 |
7 | const isBugReportingEnabled = Env.rageshakeUrl != '';
8 |
--------------------------------------------------------------------------------
/app/lib/features/calendar_sync/providers/calendar_sync_active_provider.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/providers/notifiers/client_pref_notifier.dart';
2 |
3 | final isCalendarSyncActiveProvider = createAsyncPrefProvider(
4 | prefKey: 'calendarSync',
5 | defaultValue: true,
6 | );
7 |
--------------------------------------------------------------------------------
/app/lib/features/categories/model/CategoryModelLocal.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/widgets/acter_icon_picker/model/acter_icons.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | class CategoryModelLocal {
5 | final String? title;
6 | final Color? color;
7 | final ActerIcon? icon;
8 | final List entries;
9 | final bool isUncategorized;
10 |
11 | const CategoryModelLocal({
12 | this.title,
13 | this.color,
14 | this.icon,
15 | required this.entries,
16 | this.isUncategorized = false,
17 | });
18 | }
19 |
--------------------------------------------------------------------------------
/app/lib/features/chat/pages/chat_select_page.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_riverpod/flutter_riverpod.dart';
3 | import 'package:acter/l10n/generated/l10n.dart';
4 |
5 | class ChatSelectPage extends ConsumerWidget {
6 | const ChatSelectPage({super.key});
7 |
8 | @override
9 | Widget build(BuildContext context, WidgetRef ref) {
10 | return Center(child: Text(L10n.of(context).selectAnyRoomToSeeIt));
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/lib/features/chat/providers/create_chat_providers.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart' as ffi;
2 | import 'package:riverpod/riverpod.dart';
3 |
4 | /// saves selected users from search result
5 | final createChatSelectedUsersProvider = StateProvider>(
6 | (ref) => [],
7 | );
8 |
--------------------------------------------------------------------------------
/app/lib/features/chat_ng/actions/copy_message_action.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter/services.dart';
3 | import 'package:flutter_easyloading/flutter_easyloading.dart';
4 | import 'package:acter/l10n/generated/l10n.dart';
5 |
6 | Future copyMessageAction(BuildContext context, String body) async {
7 | String msg = body.trim();
8 | await Clipboard.setData(ClipboardData(text: msg));
9 | if (context.mounted) {
10 | EasyLoading.showToast(L10n.of(context).messageCopiedToClipboard);
11 | Navigator.pop(context);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/lib/features/chat_ng/globals.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | final chatBucket = PageStorageBucket();
4 | // global key for determining build context of the editor
5 | final chatEditorKey = GlobalKey();
6 | // global key for determining build context of the chat room
7 | final chatRoomKey = GlobalKey();
8 |
--------------------------------------------------------------------------------
/app/lib/features/chat_ng/pages/chat_select_page.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_riverpod/flutter_riverpod.dart';
3 | import 'package:acter/l10n/generated/l10n.dart';
4 |
5 | class ChatNgSelectPage extends ConsumerWidget {
6 | const ChatNgSelectPage({super.key});
7 |
8 | @override
9 | Widget build(BuildContext context, WidgetRef ref) {
10 | return Center(child: Text(L10n.of(context).selectAnyRoomToSeeIt));
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/lib/features/chat_ui_showcase/mocks/general/mock_ffi_string.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockFfiString extends Mock implements FfiString {
5 | final String value;
6 |
7 | MockFfiString(this.value);
8 |
9 | @override
10 | String toDartString() => value;
11 |
12 | @override
13 | String toString() => value;
14 | }
15 |
--------------------------------------------------------------------------------
/app/lib/features/chat_ui_showcase/mocks/general/mock_msg_content.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockMsgContent extends Mock implements MsgContent {
5 | final String? mockBody;
6 | final String? mockFormattedBody;
7 |
8 | MockMsgContent({this.mockBody, this.mockFormattedBody});
9 |
10 | @override
11 | String body() => mockBody ?? 'body';
12 |
13 | @override
14 | String? formattedBody() => mockFormattedBody;
15 | }
16 |
--------------------------------------------------------------------------------
/app/lib/features/chat_ui_showcase/mocks/general/mock_option_string.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockOptionString extends Mock implements OptionString {
5 | final String? mockText;
6 |
7 | MockOptionString({this.mockText});
8 |
9 | @override
10 | String? text() => mockText;
11 | }
12 |
--------------------------------------------------------------------------------
/app/lib/features/chat_ui_showcase/mocks/general/mock_userId.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockUserId extends Mock implements UserId {
5 | final String? mockUserId;
6 | MockUserId({this.mockUserId});
7 |
8 | @override
9 | String toString() => mockUserId ?? 'userId';
10 | }
11 |
--------------------------------------------------------------------------------
/app/lib/features/chat_ui_showcase/mocks/user/mock_user.dart:
--------------------------------------------------------------------------------
1 | import 'package:mocktail/mocktail.dart';
2 | import 'package:flutter_chat_types/flutter_chat_types.dart';
3 |
4 | class MockUser extends Mock implements User {
5 | final String mockUserId;
6 | final String mockDisplayName;
7 |
8 | MockUser({required this.mockUserId, required this.mockDisplayName});
9 |
10 | @override
11 | String get id => mockUserId;
12 |
13 | String get displayName => mockDisplayName;
14 | }
15 |
--------------------------------------------------------------------------------
/app/lib/features/cross_signing/providers/verification_providers.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/features/cross_signing/providers/notifiers/verification_notifiers.dart';
2 | import 'package:riverpod/riverpod.dart';
3 |
4 | /// Provider of verification state
5 | final verificationStateProvider =
6 | NotifierProvider(
7 | () => VerificationNotifier(),
8 | );
9 |
--------------------------------------------------------------------------------
/app/lib/features/datetime/providers/notifiers/now_notifier.dart:
--------------------------------------------------------------------------------
1 | import 'dart:async';
2 |
3 | import 'package:flutter_riverpod/flutter_riverpod.dart';
4 |
5 | class UtcNowNotifier extends StateNotifier {
6 | late Timer _timer;
7 | UtcNowNotifier() : super(DateTime.now().toUtc()) {
8 | _timer = Timer.periodic(const Duration(seconds: 59), (t) {
9 | state = DateTime.now().toUtc();
10 | });
11 | }
12 |
13 | @override
14 | void dispose() {
15 | _timer.cancel();
16 | super.dispose();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/lib/features/datetime/providers/utc_now_provider.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/features/datetime/providers/notifiers/now_notifier.dart';
2 | import 'package:flutter_riverpod/flutter_riverpod.dart';
3 |
4 | /// Provides the "current" UTC datetime, automatically updating at least
5 | /// once a minute
6 | final utcNowProvider = StateNotifierProvider(
7 | (ref) => UtcNowNotifier(),
8 | );
9 |
--------------------------------------------------------------------------------
/app/lib/features/device_permissions/calendar.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io';
2 | import 'package:permission_handler/permission_handler.dart';
3 |
4 | /// Handles calendar permission request for both Android and iOS platforms
5 | Future shouldShowCalendarPermissionInfoPage() async {
6 | if (Platform.isAndroid || Platform.isIOS) {
7 | final status = await Permission.calendarFullAccess.status;
8 | return !status.isGranted;
9 | }
10 | return false;
11 | }
12 |
--------------------------------------------------------------------------------
/app/lib/features/files/actions/pick_avatar.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/features/files/actions/pick_image.dart';
2 | import 'package:file_picker/file_picker.dart';
3 | import 'package:flutter/material.dart';
4 | import 'package:acter/l10n/generated/l10n.dart';
5 |
6 | Future pickAvatar({required BuildContext context}) =>
7 | pickImage(
8 | lang: L10n.of(context),
9 | dialogTitle: L10n.of(context).uploadAvatar,
10 | );
11 |
--------------------------------------------------------------------------------
/app/lib/features/home/data/keys.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class MainNavKeys {
4 | static const dashboardHome = Key('main-nav-dashboard-home');
5 | static const chats = Key('main-nav-chats');
6 | static const updates = Key('main-nav-updates');
7 | static const quickJump = Key('main-nav-quick-jump');
8 | static const activities = Key('main-nav-activities');
9 | }
10 |
11 | class DashboardKeys {
12 | static const widgetMySpacesHeader = Key('dashboard-my-spaces-header');
13 | }
14 |
--------------------------------------------------------------------------------
/app/lib/features/home/providers/events.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/features/home/providers/client_providers.dart';
2 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
3 | import 'package:riverpod/riverpod.dart';
4 |
5 | final myEventsProvider = FutureProvider>((ref) async {
6 | final client = await ref.watch(alwaysClientProvider.future);
7 | // FIXME: how to get informed about updates!?!
8 | final calendarEvents = await client.calendarEvents();
9 | return calendarEvents.toList();
10 | });
11 |
--------------------------------------------------------------------------------
/app/lib/features/link_room/types.dart:
--------------------------------------------------------------------------------
1 | // ChildRoomType configures the sub child type of the `Spaces`
2 | enum ChildRoomType { chat, space }
3 |
--------------------------------------------------------------------------------
/app/lib/features/main/providers/main_providers.dart:
--------------------------------------------------------------------------------
1 | import 'package:app_links/app_links.dart';
2 | import 'package:flutter_riverpod/flutter_riverpod.dart';
3 |
4 | final quickActionVisibilityProvider = StateProvider.autoDispose(
5 | (ref) => false,
6 | );
7 |
8 | final appLinks = AppLinks(); // AppLinks is singleton
9 |
--------------------------------------------------------------------------------
/app/lib/features/news/model/news_post_state.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 | import 'package:acter/features/news/model/news_slide_model.dart';
3 |
4 | part 'news_post_state.freezed.dart';
5 |
6 | @freezed
7 | class NewsPostState with _$NewsPostState {
8 | const factory NewsPostState({
9 | UpdateSlideItem? currentUpdateSlide,
10 | @Default([]) List newsSlideList,
11 | String? newsPostSpaceId,
12 | }) = _NewsPostState;
13 | }
14 |
--------------------------------------------------------------------------------
/app/lib/features/notifications/types.dart:
--------------------------------------------------------------------------------
1 | enum SubscriptionStatus {
2 | subscribed,
3 | unsubscribed,
4 | parentSubscribed,
5 | parentUnsubscribed,
6 | none,
7 | }
8 |
9 | enum SubscriptionSubType {
10 | comments,
11 | attachments;
12 |
13 | String asType() => switch (this) {
14 | SubscriptionSubType.comments => 'global.acter.dev.comment',
15 | SubscriptionSubType.attachments => throw UnimplementedError(),
16 | };
17 | }
18 |
--------------------------------------------------------------------------------
/app/lib/features/onboarding/types.dart:
--------------------------------------------------------------------------------
1 |
2 | typedef CallNextPage = void Function();
--------------------------------------------------------------------------------
/app/lib/features/pins/models/pin_edit_state/pin_edit_state.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 |
3 | part 'pin_edit_state.freezed.dart';
4 |
5 | @freezed
6 | class PinEditState with _$PinEditState {
7 | const factory PinEditState({
8 | required String title,
9 | required String link,
10 | @Default('') String markdown,
11 | @Default(null) String? html,
12 | @Default(false) bool editMode,
13 | }) = _PinEditState;
14 | }
15 |
--------------------------------------------------------------------------------
/app/lib/features/preview/types.dart:
--------------------------------------------------------------------------------
1 | import 'dart:async';
2 |
3 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
4 | import 'package:flutter/widgets.dart';
5 | import 'package:flutter_riverpod/flutter_riverpod.dart';
6 |
7 | typedef OnForward = FutureOr Function(BuildContext, WidgetRef, Room);
8 |
--------------------------------------------------------------------------------
/app/lib/features/public_room_search/models/public_search_filters.dart:
--------------------------------------------------------------------------------
1 | import 'package:freezed_annotation/freezed_annotation.dart';
2 | import 'package:flutter/foundation.dart';
3 |
4 | part 'public_search_filters.freezed.dart';
5 |
6 | enum FilterBy { spaces, chats, both }
7 |
8 | @freezed
9 | class PublicSearchFilters with _$PublicSearchFilters {
10 | const factory PublicSearchFilters({
11 | String? searchTerm,
12 | String? server,
13 | @Default(FilterBy.both) FilterBy filterBy,
14 | }) = _NewPublicSearchFilters;
15 | }
16 |
--------------------------------------------------------------------------------
/app/lib/features/public_room_search/types.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 |
3 | typedef OnSelectedFn =
4 | void Function(
5 | PublicSearchResultItem spaceSearchResult,
6 | String? searchServerName,
7 | );
8 |
9 | typedef OnSelectedInnerFn =
10 | void Function(PublicSearchResultItem spaceSearchResult);
11 |
12 | class Next {
13 | final bool isStart;
14 | final String? next;
15 |
16 | const Next({this.isStart = false, this.next});
17 | }
18 |
--------------------------------------------------------------------------------
/app/lib/features/room/model/room_join_rule.dart:
--------------------------------------------------------------------------------
1 | // ignore: constant_identifier_names
2 | enum RoomJoinRule { Public, Invite, Restricted }
3 |
--------------------------------------------------------------------------------
/app/lib/features/room/providers/user_settings_provider.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/features/room/providers/notifiers/user_settings_notifier.dart';
2 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
3 | import 'package:flutter_riverpod/flutter_riverpod.dart';
4 |
5 | final roomUserSettingsProvider = AsyncNotifierProvider.autoDispose
6 | .family(
7 | () => AsyncUserRoomSettingsNotifier(),
8 | );
9 |
--------------------------------------------------------------------------------
/app/lib/features/search/providers/quick_search_providers.dart:
--------------------------------------------------------------------------------
1 | import 'package:riverpod/riverpod.dart';
2 |
3 | final quickSearchValueProvider = StateProvider.autoDispose((ref) => '');
4 |
--------------------------------------------------------------------------------
/app/lib/features/settings/pages/licenses_page.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/widgets/with_sidebar.dart';
2 | import 'package:acter/features/settings/pages/settings_page.dart';
3 | import 'package:flutter/material.dart';
4 |
5 | class SettingsLicensesPage extends StatelessWidget {
6 | const SettingsLicensesPage({super.key});
7 |
8 | @override
9 | Widget build(BuildContext context) {
10 | return const WithSidebar(sidebar: SettingsPage(), child: LicensePage());
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/lib/features/settings/providers/app_settings_provider.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/features/settings/providers/notifiers/app_settings_notifier.dart';
2 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
3 | import 'package:flutter_riverpod/flutter_riverpod.dart';
4 |
5 | final userAppSettingsProvider = AsyncNotifierProvider.autoDispose<
6 | UserAppSettingsNotifier,
7 | ActerUserAppSettings
8 | >(() => UserAppSettingsNotifier());
9 |
--------------------------------------------------------------------------------
/app/lib/features/settings/widgets/custom_settings_tile.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:settings_ui/settings_ui.dart';
3 |
4 | /// A wrapper for AbstractSettingsTiles
5 | class CustomSettingsTile extends StatelessWidget
6 | implements AbstractSettingsTile {
7 | final Widget child;
8 |
9 | const CustomSettingsTile({super.key, required this.child});
10 |
11 | @override
12 | Widget build(BuildContext context) => child;
13 | }
14 |
--------------------------------------------------------------------------------
/app/lib/features/share/action/mail_to.dart:
--------------------------------------------------------------------------------
1 | import 'package:url_launcher/url_launcher.dart';
2 |
3 | Future mailTo({required String toAddress, String? subject}) async {
4 | final emailLaunchUri = Uri(scheme: 'mailto', path: toAddress, query: subject);
5 | await launchUrl(emailLaunchUri);
6 | }
7 |
--------------------------------------------------------------------------------
/app/lib/features/space/providers/topic_provider.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/common/providers/room_providers.dart';
2 | import 'package:flutter_riverpod/flutter_riverpod.dart';
3 |
4 | final topicProvider = FutureProvider.family((
5 | ref,
6 | roomId,
7 | ) async {
8 | final room = await ref.watch(maybeRoomProvider(roomId).future);
9 | return room?.topic();
10 | });
11 |
--------------------------------------------------------------------------------
/app/lib/features/space/settings/pages/index_page.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/features/space/settings/widgets/space_settings_menu.dart';
2 | import 'package:flutter/material.dart';
3 |
4 | class SpaceSettingsMenuIndexPage extends StatelessWidget {
5 | final String spaceId;
6 | const SpaceSettingsMenuIndexPage({super.key, required this.spaceId});
7 |
8 | @override
9 | Widget build(BuildContext context) {
10 | return SpaceSettingsMenu(spaceId: spaceId, isFullPage: true);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/lib/features/spaces/model/keys.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/foundation.dart';
2 |
3 | class SpacesKeys {
4 | static const mainActions = Key('spaces-actions');
5 | static const actionCreate = Key('spaces-create');
6 | }
7 |
8 | class CreateSpaceKeys {
9 | static const titleField = Key('create-space-title-field');
10 | static const submitBtn = Key('create-space-submitBtn');
11 | }
12 |
--------------------------------------------------------------------------------
/app/lib/features/tasks/models/tasks.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | @immutable
4 | class TasksOverview {
5 | final List openTasks;
6 | final List doneTasks;
7 |
8 | const TasksOverview({required this.openTasks, required this.doneTasks});
9 | }
10 |
--------------------------------------------------------------------------------
/app/lib/router/shell_routers/search_shell_router.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter/router/routes.dart';
2 | import 'package:acter/features/search/pages/quick_search_page.dart';
3 | import 'package:acter/router/router.dart';
4 | import 'package:flutter/material.dart';
5 | import 'package:go_router/go_router.dart';
6 |
7 | final searchShellRoutes = [
8 | GoRoute(
9 | name: Routes.search.name,
10 | path: Routes.search.route,
11 | redirect: authGuardRedirect,
12 | pageBuilder: (context, state) {
13 | return MaterialPage(key: state.pageKey, child: const QuickSearchPage());
14 | },
15 | ),
16 | ];
17 |
--------------------------------------------------------------------------------
/app/linux/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral
2 | flutter/generated_plugin_registrant.cc
3 | flutter/generated_plugin_registrant.h
4 | flutter/generated_plugins.cmake
5 |
--------------------------------------------------------------------------------
/app/linux/icons/app_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/linux/icons/app_icon.png
--------------------------------------------------------------------------------
/app/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 |
--------------------------------------------------------------------------------
/app/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 |
--------------------------------------------------------------------------------
/app/linux/packaging/aur/.SRCINFO:
--------------------------------------------------------------------------------
1 | pkgbase = acter
2 | pkgdesc = Casual Community Organizing
3 | pkgver = 1.24.3516
4 | pkgrel = 1
5 | url = https://github.com/KRTirtho/spotube/
6 | arch = x86_64
7 | license = custom
8 | depends = mpv
9 | depends = libsecret
10 | depends = jsoncpp
11 | depends = xdg-user-dirs
12 | source = https://github.com/acterglobal/a3/archive/refs/tags/v1.24.3516.tar.gz
13 |
14 | pkgname = acter
--------------------------------------------------------------------------------
/app/linux/packaging/global.acter.a3.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Version=1.5
3 | Type=Application
4 |
5 | Name=Acter
6 | Comment=Casual Community Organizing
7 | Categories=Network;Office;Chat;ProjectManagement;
8 | MimeType=x-scheme-handler/acter;x-scheme-handler/matrix;
9 |
10 | Icon=acter
11 | Exec=acter %u
12 | Terminal=false
13 | StartupWMClass=acter
14 | SingleMainWindow=true
15 |
--------------------------------------------------------------------------------
/app/macos/.gitignore:
--------------------------------------------------------------------------------
1 | # Flutter-related
2 | **/Flutter/ephemeral/
3 | **/Flutter/GeneratedPluginRegistrant.swift
4 | **/Pods/
5 |
6 | # Xcode-related
7 | **/dgph
8 | **/xcuserdata/
9 |
--------------------------------------------------------------------------------
/app/macos/Flutter/Flutter-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/app/macos/Flutter/Flutter-Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved:
--------------------------------------------------------------------------------
1 | {
2 | "originHash" : "4ffd020922d5cb1e4bad73064b0d31b058749aa71ce2bf650dc9871b0d3d582e",
3 | "pins" : [
4 | {
5 | "identity" : "launchatlogin",
6 | "kind" : "remoteSourceControl",
7 | "location" : "https://github.com/sindresorhus/LaunchAtLogin",
8 | "state" : {
9 | "branch" : "main",
10 | "revision" : "9a894d799269cb591037f9f9cb0961510d4dca81"
11 | }
12 | }
13 | ],
14 | "version" : 3
15 | }
16 |
--------------------------------------------------------------------------------
/app/macos/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/macos/Runner.xcworkspace/xcsharedata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved:
--------------------------------------------------------------------------------
1 | {
2 | "originHash" : "4ffd020922d5cb1e4bad73064b0d31b058749aa71ce2bf650dc9871b0d3d582e",
3 | "pins" : [
4 | {
5 | "identity" : "launchatlogin",
6 | "kind" : "remoteSourceControl",
7 | "location" : "https://github.com/sindresorhus/LaunchAtLogin",
8 | "state" : {
9 | "branch" : "main",
10 | "revision" : "9a894d799269cb591037f9f9cb0961510d4dca81"
11 | }
12 | }
13 | ],
14 | "version" : 3
15 | }
16 |
--------------------------------------------------------------------------------
/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
--------------------------------------------------------------------------------
/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
--------------------------------------------------------------------------------
/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
--------------------------------------------------------------------------------
/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
--------------------------------------------------------------------------------
/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
--------------------------------------------------------------------------------
/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
--------------------------------------------------------------------------------
/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
--------------------------------------------------------------------------------
/app/macos/Runner/Configs/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Debug.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/app/macos/Runner/Configs/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Release.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/app/test/.gitignore:
--------------------------------------------------------------------------------
1 | **/failures/**.png
--------------------------------------------------------------------------------
/app/test/common/mock_data/mock_user_id.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockUserId extends Mock implements UserId {
5 | final String _value;
6 |
7 | MockUserId(this._value);
8 |
9 | @override
10 | String toString() => _value;
11 | }
12 |
13 | // Utility function to create mock user IDs from str
14 | MockUserId createMockUserId(String value) => MockUserId(value);
15 |
--------------------------------------------------------------------------------
/app/test/features/activity/mock_data/mock_membership_change.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 | import '../../../helpers/mock_basics.dart';
4 |
5 | class MockMembershipContent extends Mock implements MembershipContent {
6 | final String? mockUserId;
7 | final String? mockChange;
8 |
9 | MockMembershipContent({this.mockUserId, this.mockChange});
10 |
11 | @override
12 | String change() => mockChange ?? 'joined';
13 |
14 | @override
15 | UserId userId() => MockUserId(mockUserId ?? 'mock-user-id');
16 | }
17 |
--------------------------------------------------------------------------------
/app/test/features/activity/mock_data/mock_msg_content.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockMsgContent extends Mock implements MsgContent {
5 | final String? mockBody;
6 | final String? mockFormattedBody;
7 |
8 | MockMsgContent({required this.mockBody, this.mockFormattedBody});
9 |
10 | @override
11 | String body() => mockBody ?? 'message body';
12 |
13 | @override
14 | String? formattedBody() => mockFormattedBody;
15 | }
16 |
--------------------------------------------------------------------------------
/app/test/features/attachments/goldens/attachment_selection_modal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/attachments/goldens/attachment_selection_modal.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/chat_room_page/goldens_images/chat_room_page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/chat_room_page/goldens_images/chat_room_page.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/dialogs/goldens/message_actions_other_long.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/dialogs/goldens/message_actions_other_long.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/dialogs/goldens/message_actions_other_medium.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/dialogs/goldens/message_actions_other_medium.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/dialogs/goldens/message_actions_other_short.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/dialogs/goldens/message_actions_other_short.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/dialogs/goldens/message_actions_own_long.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/dialogs/goldens/message_actions_own_long.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/dialogs/goldens/message_actions_own_medium.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/dialogs/goldens/message_actions_own_medium.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/dialogs/goldens/message_actions_own_short.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/dialogs/goldens/message_actions_own_short.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_default_height.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_default_height.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_long_text_without_breaks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_long_text_without_breaks.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_multiline_height.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_multiline_height.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_multiline_with_keyboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_multiline_with_keyboard.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_with_keyboard_visible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_editor/goldens/editor_with_keyboard_visible.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_item/goldens/typing_indicator_test_long_display_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_item/goldens/typing_indicator_test_long_display_name.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_item/goldens/typing_indicator_visible_on_selection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_item/goldens/typing_indicator_visible_on_selection.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_item/goldens/unread_counter_visible_on_selection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_item/goldens/unread_counter_visible_on_selection.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_item/last_message_widgets/goldens/profile_changes_message_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_item/last_message_widgets/goldens/profile_changes_message_event.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_item/last_message_widgets/goldens/room_message_event_widget.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_item/last_message_widgets/goldens/room_message_event_widget.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_item/last_message_widgets/goldens/text_and_media_message_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_item/last_message_widgets/goldens/text_and_media_message_event.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_autolink_message_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_autolink_message_event.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_autolink_message_event_html_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_autolink_message_event_html_next.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_code_message_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_code_message_event.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_code_message_event_html_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_code_message_event_html_next.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_link_message_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_link_message_event.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_link_message_event_html_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_link_message_event_html_next.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event_dm_chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event_dm_chat.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event_dm_chat_html_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event_dm_chat_html_next.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event_html_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event_html_next.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event_legacy_html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reactions_message_event_legacy_html.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reply_message_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reply_message_event.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reply_message_event_html_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reply_message_event_html_next.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reply_with_emoji_only_html_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reply_with_emoji_only_html_next.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reply_with_emoji_only_legacy_html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_reply_with_emoji_only_legacy_html.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_user_mention_message_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_user_mention_message_event.png
--------------------------------------------------------------------------------
/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_user_mention_message_event_html_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/features/chat_ng/widgets/chat_room/chat_event_messages/goldens_images/chat_event_user_mention_message_event_html_next.png
--------------------------------------------------------------------------------
/app/test/features/comments/mock_data/mock_comments_manager.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockCommentsManager extends Mock implements CommentsManager {}
5 |
--------------------------------------------------------------------------------
/app/test/features/comments/mock_data/mock_message_content.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockMsgContent extends Mock implements MsgContent {
5 | final String bodyText;
6 |
7 | MockMsgContent({required this.bodyText});
8 |
9 | @override
10 | String body() => bodyText;
11 | }
12 |
--------------------------------------------------------------------------------
/app/test/features/desktop_setup/mocks/desktop_setup_mocks.dart:
--------------------------------------------------------------------------------
1 | import 'package:launch_at_startup/launch_at_startup.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockLaunchAtStartup extends Mock implements LaunchAtStartup {}
5 |
--------------------------------------------------------------------------------
/app/test/helpers/mock_image_provider.dart:
--------------------------------------------------------------------------------
1 | import 'package:image_picker/image_picker.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockImagePicker extends Mock implements ImagePicker {}
5 |
--------------------------------------------------------------------------------
/app/test/helpers/mock_invites.dart:
--------------------------------------------------------------------------------
1 | // Mock classes
2 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
3 | import 'package:mocktail/mocktail.dart';
4 |
5 | class MockInvitation extends Mock implements RoomInvitation {}
6 |
7 | class MockUserProfile extends Mock implements UserProfile {}
8 |
9 | class MockOptionBuffer extends Mock implements OptionBuffer {}
10 |
11 | class MockOptionString extends Mock implements OptionString {
12 | final String? _text;
13 |
14 | MockOptionString(this._text);
15 |
16 | @override
17 | String? text() => _text;
18 | }
19 |
--------------------------------------------------------------------------------
/app/test/helpers/mock_membership.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockMember with Mock implements Member {}
5 |
--------------------------------------------------------------------------------
/app/test/helpers/mock_preferences.dart:
--------------------------------------------------------------------------------
1 | import 'package:shared_preferences/shared_preferences.dart';
2 |
3 | import 'package:mocktail/mocktail.dart';
4 |
5 | class MockPreferences extends Fake implements SharedPreferences {}
6 |
--------------------------------------------------------------------------------
/app/test/helpers/shared_prefs.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk.dart';
2 | import 'package:shared_preferences/shared_preferences.dart';
3 |
4 | void mockSharedPrefs(Map value) async {
5 | try {
6 | SharedPreferences.setPrefix('dev.flutter');
7 | } catch (e) {
8 | // ignore
9 | }
10 | SharedPreferences.setMockInitialValues(value);
11 | await resetSharedPrefs();
12 | }
13 |
--------------------------------------------------------------------------------
/app/test/helpers/utils.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_chat_types/flutter_chat_types.dart';
2 |
3 | import 'mock_a3sdk.dart';
4 |
5 | int id = 0;
6 |
7 | /// builds dummy text message
8 | TextMessage buildMockTextMessage() {
9 | id += 1;
10 | return TextMessage(
11 | author: User(id: '$id-user'),
12 | id: '$id-msg',
13 | text: 'text of $id',
14 | );
15 | }
16 |
17 | MockComposeDraft buildMockDraft(String text) {
18 | var mockComposeDraft = MockComposeDraft();
19 | mockComposeDraft.setPlainText(text);
20 | return mockComposeDraft;
21 | }
22 |
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_accepts_renamed_objects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_accepts_renamed_objects.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_calendar_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_calendar_event.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_code_block_dart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_code_block_dart.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_code_block_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_code_block_large.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_many.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_many.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_many_max_2_lines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_many_max_2_lines.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_many_max_4_lines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_many_max_4_lines.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_one_line_max_lines.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_one_line_max_lines.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_pin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_pin.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_acter_pin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_acter_pin.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_acter_user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_acter_user.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_calendar_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_calendar_event.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_links.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_links.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_links_custom_font.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_links_custom_font.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_matrix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_matrix.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_matrix_to.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_matrix_to.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_title_only.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_autodetect_title_only.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_links.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_links.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_regular_links_custom_font.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_regular_links_custom_font.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_text_line_breaks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_text_line_breaks.png
--------------------------------------------------------------------------------
/app/test/toolkit/html/goldens/html_rendering_ng_title_only.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/test/toolkit/html/goldens/html_rendering_ng_title_only.png
--------------------------------------------------------------------------------
/app/web/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/web/favicon.png
--------------------------------------------------------------------------------
/app/web/icons/Icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/web/icons/Icon-192.png
--------------------------------------------------------------------------------
/app/web/icons/Icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/web/icons/Icon-512.png
--------------------------------------------------------------------------------
/app/web/icons/Icon-maskable-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/web/icons/Icon-maskable-192.png
--------------------------------------------------------------------------------
/app/web/icons/Icon-maskable-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/web/icons/Icon-maskable-512.png
--------------------------------------------------------------------------------
/app/windows/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral/
2 | flutter/generated_plugin_registrant.cc
3 | flutter/generated_plugin_registrant.h
4 | flutter/generated_plugins.cmake
5 |
6 | # Visual Studio user-specific files.
7 | *.suo
8 | *.user
9 | *.userosscache
10 | *.sln.docstates
11 |
12 | # Visual Studio build-related files.
13 | x64/
14 | x86/
15 |
16 | # Visual Studio cache files
17 | # files ending in .cache can be ignored
18 | *.[Cc]ache
19 | # but keep track of directories ending in .cache
20 | !*.[Cc]ache/
21 |
--------------------------------------------------------------------------------
/app/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 |
--------------------------------------------------------------------------------
/app/windows/runner/resources/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/app/windows/runner/resources/app_icon.ico
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | api/main/
2 | public
--------------------------------------------------------------------------------
/docs/api/main/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/docs/api/main/.gitkeep
--------------------------------------------------------------------------------
/docs/static/CNAME:
--------------------------------------------------------------------------------
1 | dev.acter.global
--------------------------------------------------------------------------------
/native/acter/ffi_bindings_extra.dart:
--------------------------------------------------------------------------------
1 | // These are dart extensions we add to the generated ffi bindings after
2 | // processing.
3 |
4 | extension AddressClientExtension on Client {
5 | int get address => _box.borrow();
6 | }
7 |
--------------------------------------------------------------------------------
/native/acter/src/acter.udl:
--------------------------------------------------------------------------------
1 | namespace acter { };
--------------------------------------------------------------------------------
/native/acter/src/api/invitations/client.rs:
--------------------------------------------------------------------------------
1 | use super::manager::InvitationsManager;
2 | use crate::Client;
3 |
4 | impl Client {
5 | pub fn invitations(&self) -> InvitationsManager {
6 | InvitationsManager::new(self.clone())
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/native/acter/src/api/invitations/mod.rs:
--------------------------------------------------------------------------------
1 | mod client;
2 | mod manager;
3 | mod object_manager;
4 | mod room_invitation;
5 |
6 | pub use manager::InvitationsManager;
7 | pub use object_manager::ObjectInvitationsManager;
8 | pub use room_invitation::RoomInvitation;
9 |
--------------------------------------------------------------------------------
/native/acter/src/api/push.rs:
--------------------------------------------------------------------------------
1 | pub mod client;
2 | mod notification_item;
3 | mod notification_settings;
4 | mod pusher;
5 |
6 | pub use notification_item::{NotificationItem, NotificationRoom, NotificationSender};
7 | pub(crate) use notification_settings::{notification_mode_from_input, room_notification_mode_name};
8 | pub use notification_settings::{NotificationSettings, SubscriptionStatus};
9 | pub use pusher::Pusher;
10 |
--------------------------------------------------------------------------------
/native/acter/src/api/room/subscription.rs:
--------------------------------------------------------------------------------
1 | use acter_core::referencing::ExecuteReference;
2 | use tokio::sync::broadcast::Receiver;
3 |
4 | use super::Room;
5 |
6 | impl Room {
7 | pub fn subscribe>(&self, key: K) -> Receiver<()> {
8 | self.core.subscribe(key)
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/native/acter/src/api/settings.rs:
--------------------------------------------------------------------------------
1 | mod space;
2 | mod user;
3 |
4 | pub use space::{
5 | ActerAppSettings, ActerAppSettingsBuilder, ActerAppSettingsContent, EventsSettings,
6 | NewsSettings, PinsSettings, RoomPowerLevels, SimpleOnOffSetting, SimpleOnOffSettingBuilder,
7 | SimpleSettingWithTurnOff, SimpleSettingWithTurnOffBuilder, StoriesSettings, TasksSettings,
8 | };
9 |
10 | pub use user::{ActerUserAppSettings, ActerUserAppSettingsBuilder};
11 |
--------------------------------------------------------------------------------
/native/acter/src/api/timeline/mod.rs:
--------------------------------------------------------------------------------
1 | mod item;
2 | mod msg_content;
3 | mod msg_draft;
4 | mod room_event;
5 | mod stream;
6 |
7 | pub use item::{EventSendState, TimelineEventItem, TimelineItem, TimelineVirtualItem};
8 | pub use msg_content::MsgContent;
9 | pub use msg_draft::MsgDraft;
10 | pub use room_event::TimelineEventContent;
11 | pub use stream::{TimelineItemDiff, TimelineStream};
12 |
--------------------------------------------------------------------------------
/native/acter/src/api_next/error.rs:
--------------------------------------------------------------------------------
1 | use core::result::Result as CoreResult;
2 |
3 | #[derive(Debug, uniffi::Error, thiserror::Error)]
4 | #[uniffi(flat_error)]
5 | pub enum ActerError {
6 | #[error("data store disconnected")]
7 | Disconnect(#[from] std::io::Error),
8 | #[error("unknown processing error")]
9 | Unknown,
10 | #[error("{0}")]
11 | Anyhow(#[from] anyhow::Error),
12 | }
13 |
14 | pub type Result = CoreResult;
15 |
--------------------------------------------------------------------------------
/native/acter/src/api_next/mod.rs:
--------------------------------------------------------------------------------
1 | uniffi::include_scaffolding!("acter");
2 |
3 | pub mod client;
4 | pub mod error;
5 | pub mod notification;
6 | pub mod support;
7 |
--------------------------------------------------------------------------------
/native/acter/src/api_next/support.rs:
--------------------------------------------------------------------------------
1 | use std::sync::Arc;
2 |
3 | use acter_core::client;
4 |
5 | use super::client::UniffiClient;
6 | use crate::api::Client;
7 | use std::os::raw::c_void;
8 |
9 | #[no_mangle]
10 | pub extern "C" fn acter_support_ffigen_client_to_uniffi_client(client_ref: isize) -> *const c_void {
11 | // manually convert the pointer to a Client, then wrap it into a uniffi client in an Arc
12 | let client = unsafe { &mut *(client_ref as *mut Client) };
13 | let uniffi_client = UniffiClient::wrap(client.clone());
14 | Arc::into_raw(Arc::new(uniffi_client)) as *const c_void
15 | }
16 |
--------------------------------------------------------------------------------
/native/acter/src/platform/mod.rs:
--------------------------------------------------------------------------------
1 | mod native;
2 |
3 | #[cfg(target_os = "android")]
4 | mod android;
5 |
6 | #[cfg(target_os = "android")]
7 | pub use android::*;
8 |
9 | #[cfg(target_os = "ios")]
10 | mod ios;
11 |
12 | #[cfg(target_os = "ios")]
13 | pub use ios::*;
14 |
15 | #[cfg(not(any(target_os = "android", target_os = "ios")))]
16 | mod desktop;
17 | #[cfg(not(any(target_os = "android", target_os = "ios")))]
18 | pub use desktop::*;
19 |
20 | pub use native::{rotate_log_file, sanitize, would_log, write_log};
21 |
--------------------------------------------------------------------------------
/native/acter/src/uniffi-bindgen.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | uniffi::uniffi_bindgen_main()
3 | }
4 |
--------------------------------------------------------------------------------
/native/acter/uniffi.toml:
--------------------------------------------------------------------------------
1 | [bindings.swift]
2 | cdylib_name = "acter"
3 | omit_argument_labels = true
4 | generate_module_map = true
5 |
6 | [bindings.dart]
7 | cdylib_name = "acter"
8 |
--------------------------------------------------------------------------------
/native/cli/src/main.rs:
--------------------------------------------------------------------------------
1 | #![recursion_limit = "256"]
2 | #![warn(clippy::all)]
3 |
4 | mod action;
5 | mod config;
6 |
7 | use anyhow::Result;
8 | use clap::Parser;
9 | use config::ActerCliConfig;
10 | use env_logger::Builder;
11 |
12 | #[tokio::main]
13 | async fn main() -> Result<()> {
14 | let cli = ActerCliConfig::parse();
15 | Builder::default().parse_filters(&cli.log).try_init()?;
16 | cli.action.run().await?;
17 | Ok(())
18 | }
19 |
--------------------------------------------------------------------------------
/native/core/src/activities/status.rs:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/native/core/src/models/calendar.rs:
--------------------------------------------------------------------------------
1 | mod event;
2 |
3 | pub use event::{CalendarEvent, CalendarEventUpdate};
4 |
--------------------------------------------------------------------------------
/native/core/src/models/capabilities.rs:
--------------------------------------------------------------------------------
1 | #[derive(Debug, Eq, PartialEq)]
2 | pub enum Capability {
3 | // someone can add reaction on this
4 | Reactable,
5 | // someone can add comment on this
6 | Commentable,
7 | // someone can add attachment on this
8 | Attachmentable,
9 | // users reads/views are being tracked
10 | ReadTracking,
11 | // someone can rsvp on this
12 | RSVPable,
13 | // someone can invite on this
14 | Inviteable,
15 | // another custom capability
16 | Custom(&'static str),
17 | }
18 |
--------------------------------------------------------------------------------
/native/core/src/models/tag.rs:
--------------------------------------------------------------------------------
1 | use crate::events::Color;
2 |
3 | #[derive(Clone)]
4 | pub struct Tag {
5 | pub(crate) title: String,
6 | pub(crate) color: Option,
7 | }
8 |
9 | impl Tag {
10 | pub fn title(&self) -> String {
11 | self.title.clone()
12 | }
13 |
14 | pub fn hash_tag(&self) -> String {
15 | self.title.to_lowercase()
16 | }
17 |
18 | pub fn color(&self) -> Option {
19 | self.color
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/native/core/src/models/tasks.rs:
--------------------------------------------------------------------------------
1 | mod task;
2 | mod task_list;
3 |
4 | pub use task::{Task, TaskSelfAssign, TaskSelfUnassign, TaskUpdate};
5 | pub use task_list::{TaskList, TaskListUpdate, TaskStats};
6 |
--------------------------------------------------------------------------------
/native/core/src/push.rs:
--------------------------------------------------------------------------------
1 | use matrix_sdk_base::ruma::push::{Action, NewConditionalPushRule, NewPushRule, PushCondition};
2 |
3 | pub fn default_rules() -> Vec {
4 | vec![
5 | // always notify about news as a default
6 | NewPushRule::Underride(NewConditionalPushRule::new(
7 | "global.acter.dev.news".to_owned(),
8 | vec![PushCondition::EventMatch {
9 | key: "type".to_owned(),
10 | pattern: "global.acter.dev.news".to_owned(),
11 | }],
12 | vec![Action::Notify],
13 | )),
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/native/core/src/templates/filters.rs:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/native/media-cache-wrapper/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "matrix-sdk-store-media-cache-wrapper"
3 | description = "Wrap any matrix-sdk State Store to store media files in a separate directory instead"
4 | version = "0.1.3+dev"
5 | edition = "2021"
6 | rust-version = "1.70"
7 | authors = ["Benjamin Kampmann ", "Acter Team "]
8 | repository = "https://github.com/acterglobal/a3/tree/main/native/media-cache-wrapper"
9 | keywords = ["matrix-sdk", "cache", "store"]
10 | readme = "Readme.md"
11 | license = "MIT OR Apache-2.0"
12 |
13 |
14 | [dependencies]
15 |
--------------------------------------------------------------------------------
/native/media-cache-wrapper/Readme.md:
--------------------------------------------------------------------------------
1 | # Matrix SDK Store Media Cache Wrapper
2 |
3 | ## Deprecated
4 |
5 | Since [the merge #3858 of into `main`](https://github.com/matrix-org/matrix-rust-sdk/pull/3858) splitting the media cache features off into its own trait, there is no need to wrap the matrix-sdk store anymore to do so. Thus this crate is no longer needed and won’t be maintained.
6 |
--------------------------------------------------------------------------------
/native/media-cache-wrapper/src/lib.rs:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/native/test/src/lib.rs:
--------------------------------------------------------------------------------
1 | #![recursion_limit = "256"]
2 | #[cfg(test)]
3 | mod tests;
4 |
5 | #[cfg(test)]
6 | mod utils;
7 |
--------------------------------------------------------------------------------
/native/test/src/tests/fixtures/PNG_transparency_demonstration_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/native/test/src/tests/fixtures/PNG_transparency_demonstration_1.png
--------------------------------------------------------------------------------
/native/test/src/tests/fixtures/big_buck_bunny.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/native/test/src/tests/fixtures/big_buck_bunny.mp4
--------------------------------------------------------------------------------
/native/test/src/tests/fixtures/kingfisher.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/native/test/src/tests/fixtures/kingfisher.jpg
--------------------------------------------------------------------------------
/native/test/src/tests/media_msg/mod.rs:
--------------------------------------------------------------------------------
1 | mod blurhash;
2 | mod download;
3 | mod thumbnail;
4 |
--------------------------------------------------------------------------------
/native/test/src/tests/notifications/mod.rs:
--------------------------------------------------------------------------------
1 | mod attachments;
2 | mod comments;
3 | mod event;
4 | mod likes;
5 | mod news;
6 | mod pins;
7 | mod references;
8 | mod tasks;
9 |
--------------------------------------------------------------------------------
/native/test/src/tests/room/mod.rs:
--------------------------------------------------------------------------------
1 | mod policy_rule_room;
2 | mod policy_rule_server;
3 | mod policy_rule_user;
4 | mod room_avatar;
5 | mod room_create;
6 | mod room_encryption;
7 | mod room_guest_access;
8 | mod room_history_visibility;
9 | mod room_join_rules;
10 | mod room_name;
11 | mod room_pinned_events;
12 | mod room_power_levels;
13 | mod room_server_acl;
14 | mod room_tombstone;
15 | mod room_topic;
16 | mod space_child;
17 | mod space_parent;
18 | mod user_settings;
19 |
--------------------------------------------------------------------------------
/packages/acter_notifify/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: "b0850beeb25f6d5b10426284f506557f66181b36"
8 | channel: "stable"
9 |
10 | project_type: package
11 |
--------------------------------------------------------------------------------
/packages/acter_notifify/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 0.0.1
2 |
3 | * TODO: Describe initial release.
4 |
--------------------------------------------------------------------------------
/packages/acter_notifify/LICENSE:
--------------------------------------------------------------------------------
1 | TODO: Add your license here.
2 |
--------------------------------------------------------------------------------
/packages/acter_notifify/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | # Additional information about this file can be found at
4 | # https://dart.dev/guides/language/analysis-options
5 |
--------------------------------------------------------------------------------
/packages/acter_notifify/lib/platform/linux.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:flutter_local_notifications/flutter_local_notifications.dart';
3 |
4 | Future genLinuxDetails(
5 | NotificationItem notification) async {
6 | return const LinuxNotificationDetails(
7 | category: LinuxNotificationCategory.imReceived,
8 | );
9 | }
10 |
--------------------------------------------------------------------------------
/packages/acter_notifify/test/mock_data/mock_activity_object.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockActivityObject extends Mock implements ActivityObject {}
5 |
--------------------------------------------------------------------------------
/packages/acter_notifify/test/mock_data/mock_notification_item.dart:
--------------------------------------------------------------------------------
1 | import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
2 | import 'package:mocktail/mocktail.dart';
3 |
4 | class MockNotificationItem extends Mock implements NotificationItem {}
5 |
--------------------------------------------------------------------------------
/packages/acter_notifify/test/mock_data/mock_object.dart:
--------------------------------------------------------------------------------
1 | //Object Emoji
2 | enum MockObject {
3 | //LIST OF OBJECT EMOJIS
4 | news('🚀'),
5 | story('📖'),
6 | pin('📌'),
7 | event('🗓️'),
8 | taskList('📋'),
9 | taskItem('☑️');
10 |
11 | const MockObject(this.emoji);
12 |
13 | final String emoji;
14 | }
15 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
8 | channel: stable
9 |
10 | project_type: package
11 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | linter:
4 | rules:
5 | prefer_single_quotes: true
6 | always_declare_return_types: true
7 | always_use_package_imports: true
8 | file_names: false
9 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/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 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.example
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/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 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/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 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/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 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/acter_trigger_auto_complete/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/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.
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/example/lib/src/options/options.dart:
--------------------------------------------------------------------------------
1 | export 'emoji_autocomplete_options.dart';
2 | export 'hashtag_autocomplete_options.dart';
3 | export 'mention_autocomplete_options.dart';
4 |
--------------------------------------------------------------------------------
/packages/acter_trigger_auto_complete/lib/acter_trigger_autocomplete.dart:
--------------------------------------------------------------------------------
1 | export 'package:flutter_portal/flutter_portal.dart' show Portal;
2 |
3 | export 'src/acter_trigger_autocomplete.dart';
4 | export 'src/autocomplete_trigger.dart';
5 | export 'src/autocomplete_query.dart';
6 | export 'src/acter_trigger_autocomplete_controller.dart';
7 |
--------------------------------------------------------------------------------
/packages/rust_sdk/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 0.0.1
2 |
3 | * TODO: Describe initial release.
4 |
--------------------------------------------------------------------------------
/packages/rust_sdk/LICENSE:
--------------------------------------------------------------------------------
1 | TODO: Add your license here.
2 |
--------------------------------------------------------------------------------
/packages/rust_sdk/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | linter:
4 | rules:
5 | prefer_single_quotes: true
6 | always_declare_return_types: true
7 | always_use_package_imports: true
8 | file_names: false
9 |
10 | analyzer:
11 | exclude:
12 | - lib/acter_flutter_sdk_ffi.dart
13 | - lib/acter.dart
14 |
15 |
--------------------------------------------------------------------------------
/packages/rust_sdk/android/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 |
--------------------------------------------------------------------------------
/packages/rust_sdk/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'a3sdk'
--------------------------------------------------------------------------------
/packages/rust_sdk/android/src/main/.gitignore:
--------------------------------------------------------------------------------
1 | jniLibs
--------------------------------------------------------------------------------
/packages/rust_sdk/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/rust_sdk/ios/Assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/rust_sdk/ios/Assets/.gitkeep
--------------------------------------------------------------------------------
/packages/rust_sdk/ios/Classes/ActerFlutterSdkPlugin.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | @interface ActerFlutterSdkPlugin : NSObject
4 | @end
--------------------------------------------------------------------------------
/packages/rust_sdk/macos/Classes/ActerFlutterSdkPlugin.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/rust_sdk/macos/Classes/ActerFlutterSdkPlugin.h
--------------------------------------------------------------------------------
/packages/rust_sdk/windows/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/
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 |
--------------------------------------------------------------------------------
/packages/rust_sdk/windows/acter_flutter_sdk_plugin_c_api.cpp:
--------------------------------------------------------------------------------
1 | #include "include/acter_flutter_sdk/acter_flutter_sdk_plugin_c_api.h"
2 |
3 | #include
4 |
5 | #include "acter_flutter_sdk_plugin.h"
6 |
7 | void ActerFlutterSdkPluginCApiRegisterWithRegistrar(
8 | FlutterDesktopPluginRegistrarRef registrar) {
9 | acter_flutter_sdk::ActerFlutterSdkPlugin::RegisterWithRegistrar(
10 | flutter::PluginRegistrarManager::GetInstance()
11 | ->GetRegistrar(registrar));
12 | }
13 |
--------------------------------------------------------------------------------
/packages/shake_detector/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: "c1df7d07ac60336309bae9dd2d48e7cb8844ec98"
8 | channel: "beta"
9 |
10 | project_type: package
11 |
--------------------------------------------------------------------------------
/packages/shake_detector/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:flutter_lints/flutter.yaml
2 |
3 | # Additional information about this file can be found at
4 | # https://dart.dev/guides/language/analysis-options
5 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/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 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.example
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity()
6 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/build.gradle:
--------------------------------------------------------------------------------
1 | allprojects {
2 | repositories {
3 | google()
4 | mavenCentral()
5 | }
6 | }
7 |
8 | rootProject.buildDir = '../build'
9 | subprojects {
10 | project.buildDir = "${rootProject.buildDir}/${project.name}"
11 | }
12 | subprojects {
13 | project.evaluationDependsOn(':app')
14 | }
15 |
16 | tasks.register("clean", Delete) {
17 | delete rootProject.buildDir
18 | }
19 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx4G
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
6 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/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 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/packages/shake_detector/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/packages/shake_detector/example/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.
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/packages/shake_detector/example/ios/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import Flutter
2 | import UIKit
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/rust-toolchain:
--------------------------------------------------------------------------------
1 | [toolchain]
2 | channel = "nightly-2025-04-22"
3 | components = ["rustfmt", "clippy", "rust-src"]
4 | targets = [
5 | "wasm32-unknown-unknown",
6 | "aarch64-linux-android",
7 | "armv7-linux-androideabi",
8 | "x86_64-linux-android",
9 | "i686-linux-android",
10 | "aarch64-apple-ios",
11 | "x86_64-apple-ios",
12 | "aarch64-apple-ios-sim",
13 | "aarch64-apple-darwin",
14 | "x86_64-apple-darwin",
15 | ]
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/main/kotlin/com/example/conv_test_man/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.conv_test_man
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/util/conv_test_man/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/util/conv_test_man/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/util/conv_test_man/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
6 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/util/conv_test_man/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.
--------------------------------------------------------------------------------
/util/conv_test_man/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/util/conv_test_man/ios/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import Flutter
2 | import UIKit
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/util/conv_test_man/linux/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral
2 |
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
10 | void fl_register_plugins(FlPluginRegistry* registry) {
11 | }
12 |
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/.gitignore:
--------------------------------------------------------------------------------
1 | # Flutter-related
2 | **/Flutter/ephemeral/
3 | **/Pods/
4 |
5 | # Xcode-related
6 | **/dgph
7 | **/xcuserdata/
8 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Flutter/Flutter-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Flutter/Flutter-Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Flutter/GeneratedPluginRegistrant.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | import FlutterMacOS
6 | import Foundation
7 |
8 | import file_picker
9 | import path_provider_foundation
10 |
11 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
12 | FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin"))
13 | PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
14 | }
15 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Configs/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Debug.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Configs/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Release.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/MainFlutterWindow.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | class MainFlutterWindow: NSWindow {
5 | override func awakeFromNib() {
6 | let flutterViewController = FlutterViewController()
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 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/Runner/Release.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/util/conv_test_man/macos/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import FlutterMacOS
2 | import Cocoa
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/util/conv_test_man/web/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/web/favicon.png
--------------------------------------------------------------------------------
/util/conv_test_man/web/icons/Icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/web/icons/Icon-192.png
--------------------------------------------------------------------------------
/util/conv_test_man/web/icons/Icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/web/icons/Icon-512.png
--------------------------------------------------------------------------------
/util/conv_test_man/web/icons/Icon-maskable-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/web/icons/Icon-maskable-192.png
--------------------------------------------------------------------------------
/util/conv_test_man/web/icons/Icon-maskable-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/web/icons/Icon-maskable-512.png
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/windows/flutter/generated_plugin_registrant.cc:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #include "generated_plugin_registrant.h"
8 |
9 |
10 | void RegisterPlugins(flutter::PluginRegistry* registry) {
11 | }
12 |
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/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 |
--------------------------------------------------------------------------------
/util/conv_test_man/windows/runner/resources/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/acterglobal/a3/18ae5091570c369de53d9bf765fdc4163cd1ad1f/util/conv_test_man/windows/runner/resources/app_icon.ico
--------------------------------------------------------------------------------
/util/mr_minutes/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "mr_minutes"
3 | version = "0.1.0"
4 | edition = "2021"
5 |
6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7 |
8 | [dependencies]
9 | git2 = "0.20.0"
10 | clap = { version = "4.3.15", features = ["derive"] }
11 | anyhow = "1.0.71"
12 | log = "0.4.19"
13 | env_logger = "0.11.7"
14 |
--------------------------------------------------------------------------------
/util/sari/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "sari"
3 | version = "0.1.0"
4 | edition = "2024"
5 | rust-version.workspace = true
6 |
7 | [dependencies]
8 |
9 | clap = { version = "4.3.15", features = ["derive"] }
10 | anyhow = "1.0.71"
11 | env_logger = "0.11.7"
12 | uniffi-dart = { workspace = true, features = ["build"] }
--------------------------------------------------------------------------------
/util/sari/src/commands/mod.rs:
--------------------------------------------------------------------------------
1 | pub mod build;
2 |
--------------------------------------------------------------------------------
/util/sari/src/main.rs:
--------------------------------------------------------------------------------
1 | use anyhow::Result;
2 | use clap::Parser;
3 |
4 | mod commands;
5 |
6 | #[derive(Parser, Debug)]
7 | enum Command {
8 | Build(commands::build::BuildOpts),
9 | }
10 |
11 | #[derive(Parser, Debug)]
12 | #[command(author, version, about, long_about = None)]
13 | struct Args {
14 | #[command(subcommand)]
15 | command: Command,
16 | }
17 |
18 | fn main() -> Result<()> {
19 | let args = Args::parse();
20 | let _ = env_logger::try_init();
21 | match args.command {
22 | Command::Build(opts) => commands::build::build(opts),
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/util/test_server/.config/acter-synapse-ci/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ghcr.io/element-hq/synapse:latest
2 | RUN apt-get update && apt-get install git -y
3 | RUN pip install git+https://github.com/acterglobal/synapse-super-invites/@ben-share-link-generator
4 | ADD ci-start.sh /ci-start.sh
5 | RUN chmod 770 /ci-start.sh
6 | ENTRYPOINT /ci-start.sh
--------------------------------------------------------------------------------
/util/test_server/.config/nginx.conf:
--------------------------------------------------------------------------------
1 | events {
2 | worker_connections 1024;
3 | }
4 |
5 | http {
6 | include mime.types;
7 | sendfile on;
8 |
9 | server {
10 | listen 8099;
11 | listen [::]:8099;
12 |
13 | resolver 127.0.0.11;
14 | autoindex off;
15 |
16 | server_name _;
17 | server_tokens off;
18 | gzip_static on;
19 |
20 | root /app/static;
21 |
22 | location /p/ {
23 | try_files $uri $uri.html =404;
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/util/test_server/.config/rageshake.yml:
--------------------------------------------------------------------------------
1 | allowed_app_names: ["acter-dev"]
--------------------------------------------------------------------------------
/util/test_server/.gitignore:
--------------------------------------------------------------------------------
1 | .local
2 | .vagrant
--------------------------------------------------------------------------------