├── .github
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ └── main.yaml
├── .gitignore
├── .idea
└── runConfigurations
│ ├── development.xml
│ ├── production.xml
│ └── staging.xml
├── .metadata
├── .vscode
├── extensions.json
└── launch.json
├── LICENSE
├── README.md
├── analysis_options.yaml
├── android
├── .gitignore
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── development
│ │ └── res
│ │ │ ├── drawable-hdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── drawable-mdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── drawable-v21
│ │ │ └── launch_background.xml
│ │ │ ├── drawable-xhdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── drawable-xxhdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── 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
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ │ └── values
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── annulus
│ │ │ │ └── pure
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-hdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── drawable-mdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── drawable-v21
│ │ │ └── launch_background.xml
│ │ │ ├── drawable-xhdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── drawable-xxhdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ └── ic_launch_image.png
│ │ │ ├── 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
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ │ └── values
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ ├── profile
│ │ └── AndroidManifest.xml
│ │ └── staging
│ │ └── res
│ │ ├── drawable-hdpi
│ │ └── ic_launch_image.png
│ │ ├── drawable-mdpi
│ │ └── ic_launch_image.png
│ │ ├── drawable-v21
│ │ └── launch_background.xml
│ │ ├── drawable-xhdpi
│ │ └── ic_launch_image.png
│ │ ├── drawable-xxhdpi
│ │ └── ic_launch_image.png
│ │ ├── drawable-xxxhdpi
│ │ └── ic_launch_image.png
│ │ ├── 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
│ │ ├── strings.xml
│ │ └── styles.xml
│ │ └── values
│ │ ├── strings.xml
│ │ └── styles.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
└── settings.gradle
├── assets
├── fonts
│ ├── Migra-Bold.otf
│ ├── PublicSans-Bold.otf
│ ├── PublicSans-Light.otf
│ ├── PublicSans-Medium.otf
│ ├── PublicSans-Regular.otf
│ └── PublicSans-SemiBold.otf
└── images
│ ├── 2.0
│ ├── notify_dark.png
│ └── notify_light.png
│ ├── 3.0
│ ├── notify_dark.png
│ └── notify_light.png
│ ├── apple.png
│ ├── calendar.png
│ ├── communities.png
│ ├── edit.png
│ ├── emptyMessageDark.png
│ ├── emptyMessageLight.png
│ ├── eye.png
│ ├── friends.png
│ ├── google.png
│ ├── guide.png
│ ├── help.png
│ ├── home.png
│ ├── location.png
│ ├── logo.png
│ ├── logout.png
│ ├── message.png
│ ├── notifications.png
│ ├── notify_dark.png
│ ├── notify_light.png
│ ├── privacy.png
│ ├── settings.png
│ ├── slide1_dark.png
│ ├── slide1_light.png
│ ├── slide2_dark.png
│ ├── slide2_light.png
│ ├── slide3_dark.png
│ ├── slide3_light.png
│ ├── sound.png
│ ├── user.png
│ ├── username.png
│ └── video.png
├── coverage_badge.svg
├── 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
│ │ ├── development.xcscheme
│ │ ├── production.xcscheme
│ │ └── staging.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
└── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ ├── 100.png
│ │ ├── 1024.png
│ │ ├── 114.png
│ │ ├── 120.png
│ │ ├── 144.png
│ │ ├── 152.png
│ │ ├── 167.png
│ │ ├── 180.png
│ │ ├── 20.png
│ │ ├── 29.png
│ │ ├── 40.png
│ │ ├── 50.png
│ │ ├── 57.png
│ │ ├── 58.png
│ │ ├── 60.png
│ │ ├── 72.png
│ │ ├── 76.png
│ │ ├── 80.png
│ │ ├── 87.png
│ │ └── Contents.json
│ ├── Contents.json
│ └── LaunchImage.imageset
│ │ ├── Contents.json
│ │ ├── ic_launch_image.png
│ │ ├── ic_launch_image@2x.png
│ │ └── ic_launch_image@3x.png
│ ├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
│ ├── Info.plist
│ └── Runner-Bridging-Header.h
├── l10n.yaml
├── lib
├── app.dart
├── blocs
│ ├── authentication
│ │ ├── auth_cubit.dart
│ │ ├── auth_state.dart
│ │ ├── auth_user_cubit.dart
│ │ └── auth_user_state.dart
│ ├── bloc.dart
│ ├── chats
│ │ ├── chats
│ │ │ ├── chat_cubit.dart
│ │ │ ├── chat_state.dart
│ │ │ ├── group
│ │ │ │ ├── add_participant_cubit.dart
│ │ │ │ ├── add_particpants
│ │ │ │ │ ├── new_participant_cubit.dart
│ │ │ │ │ └── new_particpant_state.dart
│ │ │ │ ├── group_chat_cubit.dart
│ │ │ │ ├── group_chat_state.dart
│ │ │ │ ├── group_cubit.dart
│ │ │ │ └── group_state.dart
│ │ │ ├── load_more_chats_cubit.dart
│ │ │ ├── unread_chat.dart
│ │ │ └── unread_message_cubit.dart
│ │ └── messages
│ │ │ ├── load_more_messages_cubit.dart
│ │ │ ├── message_cubit.dart
│ │ │ ├── message_state.dart
│ │ │ └── new_messages_cubit.dart
│ ├── connections
│ │ ├── connection_cubit.dart
│ │ ├── connection_state.dart
│ │ └── load_more_connection_cubit.dart
│ ├── invitation
│ │ ├── invitation_cubit.dart
│ │ ├── received
│ │ │ ├── load_more_received_invitation.dart
│ │ │ ├── received_invitation_cubit.dart
│ │ │ └── received_invitation_state.dart
│ │ └── sent
│ │ │ ├── load_more_sent_invitation.dart
│ │ │ ├── sent_invitation_cubits.dart
│ │ │ └── sent_invitations_state.dart
│ ├── onboarding_cubit.dart
│ ├── search
│ │ ├── connection
│ │ │ ├── search_connection_bloc.dart
│ │ │ └── search_connection_state.dart
│ │ ├── friends
│ │ │ ├── search_friends_bloc.dart
│ │ │ └── search_friends_state.dart
│ │ └── search_username.dart
│ └── user_profile
│ │ ├── profile
│ │ ├── profile_cubit.dart
│ │ └── profile_state.dart
│ │ ├── user_extra
│ │ ├── user_extra_cubit.dart
│ │ └── user_extra_state.dart
│ │ ├── user_presence
│ │ ├── user_presence_cubit.dart
│ │ └── user_presence_state.dart
│ │ ├── user_profile_cubit.dart
│ │ └── user_profile_state.dart
├── l10n
│ ├── arb
│ │ ├── app_en.arb
│ │ └── app_es.arb
│ └── l10n.dart
├── main_development.dart
├── main_production.dart
├── main_staging.dart
├── model
│ ├── app_enum.dart
│ ├── chat
│ │ ├── attachment_model.dart
│ │ ├── chat_model.dart
│ │ └── message_model.dart
│ ├── connection_model.dart
│ ├── invitation_model.dart
│ ├── invitee_model.dart
│ ├── inviter_model.dart
│ ├── onboarding.dart
│ ├── post_model.dart
│ ├── pure_user_extra.dart
│ ├── pure_user_model.dart
│ ├── route
│ │ └── message_route.dart
│ └── user_presence_model.dart
├── repositories
│ ├── algolia_application.dart
│ ├── connection.dart
│ ├── local_storage.dart
│ └── push_notification.dart
├── services
│ ├── auth_service.dart
│ ├── chat
│ │ ├── chat_service.dart
│ │ └── message_service.dart
│ ├── connection_service.dart
│ ├── invitation_service.dart
│ ├── remote_storage_service.dart
│ ├── search_service.dart
│ ├── upload.dart
│ └── user_service.dart
├── utils
│ ├── adaptive_icons.dart
│ ├── app_extension.dart
│ ├── app_permission.dart
│ ├── app_utils.dart
│ ├── chat_utils.dart
│ ├── exception.dart
│ ├── file_utils.dart
│ ├── flavors.dart
│ ├── global_utils.dart
│ ├── image_utils.dart
│ ├── navigate.dart
│ ├── palette.dart
│ ├── pick_file_dialog.dart
│ ├── request_messages.dart
│ ├── routing.dart
│ ├── true_time.dart
│ └── validators.dart
└── views
│ ├── screens
│ ├── app_base.dart
│ ├── authentication
│ │ ├── reset_password_screen.dart
│ │ ├── reset_password_success_screen.dart
│ │ ├── signin_screen.dart
│ │ ├── signup_screen.dart
│ │ ├── social_signin_screen.dart
│ │ └── widgets
│ │ │ ├── auth_bloc_provider.dart
│ │ │ ├── intro_section.dart
│ │ │ └── social_signin_button.dart
│ ├── chats
│ │ ├── chat_screen.dart
│ │ ├── group
│ │ │ ├── add_participants_screen.dart
│ │ │ ├── create_group_screen.dart
│ │ │ ├── edit_group_description_screen.dart
│ │ │ ├── edit_group_subject_screen.dart
│ │ │ ├── friend_profile.dart
│ │ │ ├── group_info_screen.dart
│ │ │ ├── search_friend_chat.dart
│ │ │ └── widget
│ │ │ │ ├── group_banner.dart
│ │ │ │ ├── new_applicant_profile.dart
│ │ │ │ ├── participants.dart
│ │ │ │ └── user_connection_list.dart
│ │ ├── messages
│ │ │ ├── group_chat_message_screen.dart
│ │ │ ├── messages_screen.dart
│ │ │ └── widgets
│ │ │ │ ├── chat_app_bar.dart
│ │ │ │ ├── docfile_preview_widget.dart
│ │ │ │ ├── empty_widget.dart
│ │ │ │ ├── file_picked_widget.dart
│ │ │ │ ├── file_widget.dart
│ │ │ │ ├── image_preview_screen.dart
│ │ │ │ ├── load_more_widgets.dart
│ │ │ │ ├── message_inbox_widget.dart
│ │ │ │ ├── message_screen_widget.dart
│ │ │ │ ├── message_widgets.dart
│ │ │ │ ├── messages_body.dart
│ │ │ │ ├── new_message_widget.dart
│ │ │ │ ├── pure_link_preview.dart
│ │ │ │ ├── receipient_message_widget.dart
│ │ │ │ ├── separator_widget.dart
│ │ │ │ ├── tagged_user_profile.dart
│ │ │ │ ├── tagged_user_sheet.dart
│ │ │ │ └── user_message_widget.dart
│ │ └── widget
│ │ │ ├── chat_list_widget.dart
│ │ │ ├── group_card.dart
│ │ │ ├── load_more_chats_widget.dart
│ │ │ ├── one_to_one_card.dart
│ │ │ └── unread_message_provider.dart
│ ├── connections
│ │ ├── connections_page.dart
│ │ ├── search
│ │ │ ├── search_all_connections.dart
│ │ │ ├── search_friends_screen.dart
│ │ │ ├── search_screen.dart
│ │ │ └── widgets
│ │ │ │ ├── connection_status_widget.dart
│ │ │ │ ├── search_small.dart
│ │ │ │ └── search_user_profile.dart
│ │ ├── tabs
│ │ │ └── connections
│ │ │ │ ├── connections_network.dart
│ │ │ │ ├── connectors_list.dart
│ │ │ │ ├── connectors_widget.dart
│ │ │ │ └── invitations
│ │ │ │ ├── invitation_screen.dart
│ │ │ │ ├── tabs
│ │ │ │ ├── received_screen.dart
│ │ │ │ └── sent_screen.dart
│ │ │ │ └── widgets
│ │ │ │ ├── invitee_profile.dart
│ │ │ │ └── inviter_profile.dart
│ │ └── widgets
│ │ │ └── load_more.dart
│ ├── home
│ │ ├── home_page.dart
│ │ └── posts
│ │ │ ├── create_post_screen.dart
│ │ │ ├── video_trimmer_screen.dart
│ │ │ └── widget
│ │ │ ├── post_file_icons.dart
│ │ │ ├── post_visibility.dart
│ │ │ └── selected_file_preview.dart
│ ├── notifications
│ │ ├── notifications_screen.dart
│ │ └── widgets
│ │ │ └── no_notification_widget.dart
│ ├── onboarding
│ │ ├── onboading_body.dart
│ │ ├── onboarding_screen.dart
│ │ └── widgets
│ │ │ └── action_buttons.dart
│ ├── photo_view_screen.dart
│ ├── settings
│ │ ├── account_screen.dart
│ │ ├── profile
│ │ │ ├── edit_profile_screen.dart
│ │ │ ├── mutual_connection_screen.dart
│ │ │ ├── profile_screen.dart
│ │ │ └── widgets
│ │ │ │ ├── connection_status_button.dart
│ │ │ │ └── profile_pic_widget.dart
│ │ ├── settings_screen.dart
│ │ ├── update_email_screen.dart
│ │ ├── update_password_screen.dart
│ │ ├── update_username_screen.dart
│ │ └── widgets
│ │ │ ├── items.dart
│ │ │ └── profile.dart
│ └── splash_screen.dart
│ └── widgets
│ ├── avatar.dart
│ ├── custom_button.dart
│ ├── custom_keep_alive.dart
│ ├── custom_multi_bloc_provider.dart
│ ├── editable_text_controller.dart
│ ├── error_page.dart
│ ├── failure_widget.dart
│ ├── grouped_list
│ ├── group_list_order.dart
│ └── grouped_list.dart
│ ├── message_widget.dart
│ ├── nav_bar_notification.dart
│ ├── page_transition.dart
│ ├── progress_indicator.dart
│ ├── push_notification_navigation.dart
│ ├── shimmers
│ └── loading_shimmer.dart
│ ├── snackbars.dart
│ ├── textfield_label_widget.dart
│ └── user_profile_provider.dart
├── pubspec.lock
├── pubspec.yaml
└── test
└── app_test.dart
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
8 |
9 | ## Description
10 |
11 |
12 |
13 | ## Type of Change
14 |
15 |
16 |
17 | - [ ] ✨ New feature (non-breaking change which adds functionality)
18 | - [ ] 🛠️ Bug fix (non-breaking change which fixes an issue)
19 | - [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
20 | - [ ] 🧹 Code refactor
21 | - [ ] ✅ Build configuration change
22 | - [ ] 📝 Documentation
23 | - [ ] 🗑️ Chore
24 |
--------------------------------------------------------------------------------
/.github/workflows/main.yaml:
--------------------------------------------------------------------------------
1 | name: build
2 |
3 | on: [pull_request, push]
4 |
5 | jobs:
6 | build:
7 | runs-on: ubuntu-latest
8 |
9 | steps:
10 | - uses: actions/checkout@v2
11 | - uses: subosito/flutter-action@v1.5.3
12 | with:
13 | flutter-version: '2.8.0'
14 |
15 | - name: Install Dependencies
16 | run: flutter packages get
17 |
18 | - name: Format
19 | run: flutter format --set-exit-if-changed lib test
20 |
21 | - name: Analyze
22 | run: flutter analyze lib test
23 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/development.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/production.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/staging.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.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: 9b2d32b605630f28625709ebd9d78ab3016b2bf6
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "dart-code.dart-code",
6 | "dart-code.flutter",
7 | "felixangelov.bloc"
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "Launch development",
9 | "request": "launch",
10 | "type": "dart",
11 | "program": "lib/main_development.dart",
12 | "args": [
13 | "--flavor",
14 | "development",
15 | "--target",
16 | "lib/main_development.dart"
17 | ]
18 | },
19 | {
20 | "name": "Launch staging",
21 | "request": "launch",
22 | "type": "dart",
23 | "program": "lib/main_staging.dart",
24 | "args": ["--flavor", "staging", "--target", "lib/main_staging.dart"]
25 | },
26 | {
27 | "name": "Launch production",
28 | "request": "launch",
29 | "type": "dart",
30 | "program": "lib/main_production.dart",
31 | "args": ["--flavor", "production", "--target", "lib/main_production.dart"]
32 | }
33 | ]
34 | }
35 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Very Good Ventures
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:very_good_analysis/analysis_options.2.4.0.yaml
2 | linter:
3 | rules:
4 | public_member_api_docs: true,
5 | avoid_void_async: false
6 |
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | /key.properties
8 | GeneratedPluginRegistrant.java
9 |
10 | # Remember to never publicly share your keystore.
11 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
12 | key.properties
13 | **/*.keystore
14 | **/*.jks
15 |
16 | app/src/development/google-services.json
17 | app/src/staging/google-services.json
18 | app/google-services.json
19 |
20 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/android/app/src/development/res/drawable-hdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/drawable-hdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/development/res/drawable-mdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/drawable-mdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/development/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/development/res/drawable-xhdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/drawable-xhdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/development/res/drawable-xxhdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/drawable-xxhdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/development/res/drawable-xxxhdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/drawable-xxxhdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/development/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/development/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/development/res/values-night/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Pure Dev
4 | puredev.page.link
5 |
6 |
--------------------------------------------------------------------------------
/android/app/src/development/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/development/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Pure Dev
4 | puredev.page.link
5 |
6 |
--------------------------------------------------------------------------------
/android/app/src/development/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/annulus/pure/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.annulus.pure
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/drawable-hdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/drawable-mdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/drawable-xhdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/drawable-xxhdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/drawable-xxxhdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values-night/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Pure
4 | pure.page.link
5 |
6 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Pure
4 | pure.page.link
5 |
6 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/drawable-hdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/drawable-hdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/drawable-mdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/drawable-mdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/drawable-xhdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/drawable-xhdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/drawable-xxhdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/drawable-xxhdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/drawable-xxxhdpi/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/drawable-xxxhdpi/ic_launch_image.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/android/app/src/staging/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/staging/res/values-night/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Pure Beta
4 | purestg.page.link
5 |
6 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/values-night/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Pure Beta
4 | purestg.page.link
5 |
6 |
--------------------------------------------------------------------------------
/android/app/src/staging/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.3.50'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:4.1.0'
10 | classpath 'com.google.gms:google-services:4.3.8'
11 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
12 | classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
13 | }
14 | }
15 |
16 | allprojects {
17 | repositories {
18 | google()
19 | mavenCentral()
20 | }
21 | }
22 |
23 | rootProject.buildDir = '../build'
24 | subprojects {
25 | project.buildDir = "${rootProject.buildDir}/${project.name}"
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | task clean(type: Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
7 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/assets/fonts/Migra-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/fonts/Migra-Bold.otf
--------------------------------------------------------------------------------
/assets/fonts/PublicSans-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/fonts/PublicSans-Bold.otf
--------------------------------------------------------------------------------
/assets/fonts/PublicSans-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/fonts/PublicSans-Light.otf
--------------------------------------------------------------------------------
/assets/fonts/PublicSans-Medium.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/fonts/PublicSans-Medium.otf
--------------------------------------------------------------------------------
/assets/fonts/PublicSans-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/fonts/PublicSans-Regular.otf
--------------------------------------------------------------------------------
/assets/fonts/PublicSans-SemiBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/fonts/PublicSans-SemiBold.otf
--------------------------------------------------------------------------------
/assets/images/2.0/notify_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/2.0/notify_dark.png
--------------------------------------------------------------------------------
/assets/images/2.0/notify_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/2.0/notify_light.png
--------------------------------------------------------------------------------
/assets/images/3.0/notify_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/3.0/notify_dark.png
--------------------------------------------------------------------------------
/assets/images/3.0/notify_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/3.0/notify_light.png
--------------------------------------------------------------------------------
/assets/images/apple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/apple.png
--------------------------------------------------------------------------------
/assets/images/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/calendar.png
--------------------------------------------------------------------------------
/assets/images/communities.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/communities.png
--------------------------------------------------------------------------------
/assets/images/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/edit.png
--------------------------------------------------------------------------------
/assets/images/emptyMessageDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/emptyMessageDark.png
--------------------------------------------------------------------------------
/assets/images/emptyMessageLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/emptyMessageLight.png
--------------------------------------------------------------------------------
/assets/images/eye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/eye.png
--------------------------------------------------------------------------------
/assets/images/friends.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/friends.png
--------------------------------------------------------------------------------
/assets/images/google.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/google.png
--------------------------------------------------------------------------------
/assets/images/guide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/guide.png
--------------------------------------------------------------------------------
/assets/images/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/help.png
--------------------------------------------------------------------------------
/assets/images/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/home.png
--------------------------------------------------------------------------------
/assets/images/location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/location.png
--------------------------------------------------------------------------------
/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/logo.png
--------------------------------------------------------------------------------
/assets/images/logout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/logout.png
--------------------------------------------------------------------------------
/assets/images/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/message.png
--------------------------------------------------------------------------------
/assets/images/notifications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/notifications.png
--------------------------------------------------------------------------------
/assets/images/notify_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/notify_dark.png
--------------------------------------------------------------------------------
/assets/images/notify_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/notify_light.png
--------------------------------------------------------------------------------
/assets/images/privacy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/privacy.png
--------------------------------------------------------------------------------
/assets/images/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/settings.png
--------------------------------------------------------------------------------
/assets/images/slide1_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/slide1_dark.png
--------------------------------------------------------------------------------
/assets/images/slide1_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/slide1_light.png
--------------------------------------------------------------------------------
/assets/images/slide2_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/slide2_dark.png
--------------------------------------------------------------------------------
/assets/images/slide2_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/slide2_light.png
--------------------------------------------------------------------------------
/assets/images/slide3_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/slide3_dark.png
--------------------------------------------------------------------------------
/assets/images/slide3_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/slide3_light.png
--------------------------------------------------------------------------------
/assets/images/sound.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/sound.png
--------------------------------------------------------------------------------
/assets/images/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/user.png
--------------------------------------------------------------------------------
/assets/images/username.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/username.png
--------------------------------------------------------------------------------
/assets/images/video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/assets/images/video.png
--------------------------------------------------------------------------------
/coverage_badge.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 | Runner/Firebase/development/GoogleService-Info.plist
28 | Runner/Firebase/staging/GoogleService-Info.plist
29 | Runner/Firebase/production/GoogleService-Info.plist
30 | Runner/GoogleService-Info.plist
31 |
32 |
33 | # Exceptions to above rules.
34 | !default.mode1v3
35 | !default.mode2v3
36 | !default.pbxuser
37 | !default.perspectivev3
38 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 9.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment this line to define a global platform for your project
2 | # platform :ios, '9.0'
3 |
4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true'
6 |
7 | project 'Runner', {
8 | 'Debug' => :debug,
9 | 'Profile' => :release,
10 | 'Release' => :release,
11 | }
12 |
13 | def flutter_root
14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
15 | unless File.exist?(generated_xcode_build_settings_path)
16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
17 | end
18 |
19 | File.foreach(generated_xcode_build_settings_path) do |line|
20 | matches = line.match(/FLUTTER_ROOT\=(.*)/)
21 | return matches[1].strip if matches
22 | end
23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
24 | end
25 |
26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
27 |
28 | flutter_ios_podfile_setup
29 |
30 | target 'Runner' do
31 | use_frameworks!
32 | use_modular_headers!
33 |
34 | pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '8.9.0'
35 |
36 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
37 | end
38 |
39 | post_install do |installer|
40 | installer.pods_project.targets.each do |target|
41 | flutter_additional_ios_build_settings(target)
42 |
43 | target.build_configurations.each do |config|
44 | # # for more infomation: https://github.com/BaseflowIT/flutter-permission-handler/blob/master/permission_handler/ios/Classes/PermissionHandlerEnums.h
45 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
46 | '$(inherited)',
47 |
48 | ## dart: PermissionGroup.camera
49 | 'PERMISSION_CAMERA=1',
50 |
51 | ## dart: PermissionGroup.photos
52 | 'PERMISSION_PHOTOS=1',
53 |
54 | ## dart: PermissionGroup.microphone
55 | 'PERMISSION_MICROPHONE=1',
56 |
57 | ## dart: PermissionGroup.notification
58 | 'PERMISSION_NOTIFICATIONS=1',
59 | ]
60 | end
61 | end
62 | end
63 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 | import Firebase
4 |
5 | @UIApplicationMain
6 | @objc class AppDelegate: FlutterAppDelegate {
7 | override func application(
8 | _ application: UIApplication,
9 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
10 | ) -> Bool {
11 | FirebaseApp.configure()
12 | GeneratedPluginRegistrant.register(with: self)
13 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "ic_launch_image.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "ic_launch_image@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "ic_launch_image@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/ic_launch_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/LaunchImage.imageset/ic_launch_image.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/ic_launch_image@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/LaunchImage.imageset/ic_launch_image@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/ic_launch_image@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Aanu1995/Pure/b6f39f25fe6efd75c738589b9971f0fcbda91b47/ios/Runner/Assets.xcassets/LaunchImage.imageset/ic_launch_image@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleLocalizations
6 |
7 | en
8 | es
9 |
10 | CFBundleDevelopmentRegion
11 | $(DEVELOPMENT_LANGUAGE)
12 | CFBundleDisplayName
13 | $(FLAVOR_APP_NAME)
14 | CFBundleExecutable
15 | $(EXECUTABLE_NAME)
16 | CFBundleIdentifier
17 | $(PRODUCT_BUNDLE_IDENTIFIER)
18 | CFBundleInfoDictionaryVersion
19 | 6.0
20 | CFBundleName
21 | Pure
22 | CFBundlePackageType
23 | APPL
24 | CFBundleShortVersionString
25 | $(FLUTTER_BUILD_NAME)
26 | CFBundleSignature
27 | ????
28 | CFBundleURLTypes
29 |
30 |
31 | CFBundleTypeRole
32 | Editor
33 | CFBundleURLName
34 | Google_Sign_In
35 | CFBundleURLSchemes
36 |
37 | $(GOOGLE_INFO_URL)
38 |
39 |
40 |
41 | CFBundleTypeRole
42 | Editor
43 | CFBundleURLName
44 | Bundle ID
45 | CFBundleURLSchemes
46 |
47 | $(PRODUCT_BUNDLE_IDENTIFIER)
48 |
49 |
50 |
51 | CFBundleVersion
52 | $(FLUTTER_BUILD_NUMBER)
53 | LSRequiresIPhoneOS
54 |
55 | NSCameraUsageDescription
56 | This app requires camera access to enable you use camera to take photo
57 | NSPhotoLibraryUsageDescription
58 | This app requires library access to enable you pick photo from library
59 | NSMicrophoneUsageDescription
60 | This app requires microphone access to enable you use record video
61 | UILaunchStoryboardName
62 | LaunchScreen
63 | UIMainStoryboardFile
64 | Main
65 | UISupportedInterfaceOrientations
66 |
67 | UIInterfaceOrientationPortrait
68 |
69 | UISupportedInterfaceOrientations~ipad
70 |
71 | UIInterfaceOrientationPortrait
72 | UIInterfaceOrientationPortraitUpsideDown
73 |
74 | UIViewControllerBasedStatusBarAppearance
75 |
76 | NSAppTransportSecurity
77 |
78 | NSAllowsArbitraryLoads
79 |
80 |
81 | LSApplicationQueriesSchemes
82 |
83 | https
84 | http
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/l10n.yaml:
--------------------------------------------------------------------------------
1 | arb-dir: lib/l10n/arb
2 | template-arb-file: app_en.arb
3 | output-localization-file: app_localizations.dart
4 | nullable-getter: false
5 |
--------------------------------------------------------------------------------
/lib/app.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_easyloading/flutter_easyloading.dart';
3 | import 'package:flutter_screenutil/flutter_screenutil.dart';
4 |
5 | import 'utils/flavors.dart';
6 | import 'utils/palette.dart';
7 | import 'utils/routing.dart';
8 | import 'views/widgets/custom_multi_bloc_provider.dart';
9 |
10 | class App extends StatelessWidget {
11 | const App({Key? key}) : super(key: key);
12 |
13 | @override
14 | Widget build(BuildContext context) {
15 | return CustomMultiBlocProvider(
16 | child: ScreenUtilInit(
17 | // the resolution for the design in Figma
18 | designSize: const Size(375, 812),
19 | builder: () {
20 | return GestureDetector(
21 | onTap: () => removeKeyboardFocus(context),
22 | child: MaterialApp.router(
23 | routeInformationParser: router.routeInformationParser,
24 | routerDelegate: router.routerDelegate,
25 | title: F.title,
26 | theme: Palette.lightTheme.copyWith(
27 | primaryColorBrightness: Brightness.light,
28 | appBarTheme: Palette.lightTheme.appBarTheme.copyWith(
29 | titleTextStyle: Palette.appBarStyle(),
30 | ),
31 | ),
32 | darkTheme: Palette.darkTheme.copyWith(
33 | primaryColorBrightness: Brightness.dark,
34 | appBarTheme: Palette.darkTheme.appBarTheme.copyWith(
35 | titleTextStyle: Palette.appBarStyle(isLightMode: false),
36 | ),
37 | ),
38 | debugShowCheckedModeBanner: false,
39 | builder: EasyLoading.init(),
40 | ),
41 | );
42 | },
43 | ),
44 | );
45 | }
46 |
47 | // This method hides keyboard when it is tapped outside the focus area
48 | // This is implemented to get expected behaviour in IOS
49 |
50 | void removeKeyboardFocus(BuildContext context) {
51 | FocusManager.instance.primaryFocus?.unfocus();
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/lib/blocs/authentication/auth_cubit.dart:
--------------------------------------------------------------------------------
1 | import 'dart:async';
2 |
3 | import 'package:firebase_auth/firebase_auth.dart';
4 | import 'package:flutter_bloc/flutter_bloc.dart';
5 |
6 | import '../../model/pure_user_model.dart';
7 | import '../../repositories/local_storage.dart';
8 | import '../../services/user_service.dart';
9 | import 'auth_state.dart';
10 |
11 | class AuthCubit extends Cubit {
12 | AuthCubit(
13 | this.firebaseAuth,
14 | this.localStorage,
15 | this.userService,
16 | ) : super(Authenticating());
17 |
18 | final LocalStorage localStorage;
19 | final FirebaseAuth firebaseAuth;
20 | final UserService userService;
21 |
22 | Future authenticateUser() async {
23 | try {
24 | if (firebaseAuth.currentUser != null) {
25 | // if user data exists in the local storage is not null,
26 | // then the user is logged in
27 | final data = await localStorage.getUserData();
28 | if (data != null) {
29 | final user = PureUser.fromMap(data);
30 | emit(Authenticated(user));
31 | return _syncUserLocalDataWithRemoteData(user.id);
32 | }
33 | }
34 | emit(UnAuthenticated());
35 | } catch (_) {
36 | emit(UnAuthenticated());
37 | }
38 | }
39 |
40 | StreamSubscription? _subscription;
41 |
42 | // This sync the user data in remote database with the local database in
43 | // order to have same data
44 | Future _syncUserLocalDataWithRemoteData(final String userId) async {
45 | try {
46 | if (_subscription != null) {
47 | _subscription?.cancel();
48 | }
49 | _subscription = userService.getCurrentUserData(userId).listen((user) {
50 | emit(Authenticated(user));
51 | });
52 | } catch (_) {}
53 | }
54 |
55 | Future setUserOnline(final String userId) async {
56 | await userService.setUserPresence(userId);
57 | }
58 |
59 | Future signOut(final String userId) async {
60 | try {
61 | await userService.setUserOfflineOnSignOut(userId);
62 | dispose();
63 | await firebaseAuth.signOut();
64 | await localStorage.clear();
65 | emit(UnAuthenticated());
66 | } catch (_) {}
67 | }
68 |
69 | void update(PureUser user) {
70 | emit(Authenticated(user));
71 | }
72 |
73 | void dispose() {
74 | _subscription?.cancel();
75 | _subscription = null;
76 | }
77 |
78 | @override
79 | Future close() {
80 | dispose();
81 | return super.close();
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/lib/blocs/authentication/auth_state.dart:
--------------------------------------------------------------------------------
1 | import 'package:equatable/equatable.dart';
2 |
3 | import '../../model/pure_user_model.dart';
4 |
5 | abstract class AuthState extends Equatable {
6 | const AuthState();
7 |
8 | @override
9 | List