├── .gitignore
├── .gradle
├── 5.2.1
│ ├── fileChanges
│ │ └── last-build.bin
│ ├── fileHashes
│ │ └── fileHashes.lock
│ └── gc.properties
├── buildOutputCleanup
│ ├── buildOutputCleanup.lock
│ └── cache.properties
└── vcs-1
│ └── gc.properties
├── .metadata
├── README.md
├── Screenshots
├── about.png
├── auth.png
├── chat_window.png
├── chat_window2.png
├── data_dialog.png
├── edit_Profile.png
├── full_Screen_image.png
├── main_page.png
├── received_message_detail.png
├── search_Result.png
├── search_user.png
├── sent_message_detail.png
├── sign_out_dialog.png
├── theme_settings.png
├── uid_dialog.png
├── user_info.png
└── walkthrough.mp4
├── android
├── .gitignore
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── messaging_app_new
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable
│ │ │ ├── app_icon.png
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ └── values
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── settings.gradle
└── settings_aar.gradle
├── assets
├── giphy.gif
├── loading.png
├── msg.png
├── search.jpg
└── search.svg
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ └── contents.xcworkspacedata
└── 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-50x50@1x.png
│ │ ├── Icon-App-50x50@2x.png
│ │ ├── Icon-App-57x57@1x.png
│ │ ├── Icon-App-57x57@2x.png
│ │ ├── Icon-App-60x60@2x.png
│ │ ├── Icon-App-60x60@3x.png
│ │ ├── Icon-App-72x72@1x.png
│ │ ├── Icon-App-72x72@2x.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
├── Layout
│ ├── DrawerBuilder.dart
│ ├── TextFormBuilder.dart
│ ├── infoDialog.dart
│ ├── signOutConfirmationDialog.dart
│ ├── themeSettingsPage.dart
│ ├── useOfDataDialog.dart
│ └── verificationDialog.dart
├── appData.dart
├── auth
│ ├── auth.dart
│ └── signUp.dart
├── consts
│ └── theme.dart
├── data
│ ├── sharedPrefs.dart
│ └── strings.dart
├── groupModel.dart
├── main.dart
├── mainPage.dart
├── mainRepo.dart
├── message
│ ├── buildErrorPage.dart
│ ├── buildMessageWidget.dart
│ ├── demo.dart
│ ├── demoDetail.dart
│ ├── imageFullScreen.dart
│ ├── message.dart
│ ├── messageDetail.dart
│ ├── messagePage.dart
│ ├── messageRepo.dart
│ ├── receivedMessageDetail.dart
│ ├── searchPage.dart
│ ├── searchRepo.dart
│ └── searchResultTileBuilder.dart
└── user
│ ├── UserRepo.dart
│ ├── editProfile.dart
│ ├── editProfileBuilder.dart
│ ├── storage.dart
│ ├── user.dart
│ ├── userInfoHelper.dart
│ └── userInfoPage.dart
├── local.properties
├── pubspec.lock
├── pubspec.yaml
└── test
└── widget_test.dart
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | .dart_tool/
26 | .flutter-plugins
27 | .flutter-plugins-dependencies
28 | .packages
29 | .pub-cache/
30 | .pub/
31 | /build/
32 |
33 | # Web related
34 | lib/generated_plugin_registrant.dart
35 |
36 | # Exceptions to above rules.
37 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
38 |
--------------------------------------------------------------------------------
/.gradle/5.2.1/fileChanges/last-build.bin:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gradle/5.2.1/fileHashes/fileHashes.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/.gradle/5.2.1/fileHashes/fileHashes.lock
--------------------------------------------------------------------------------
/.gradle/5.2.1/gc.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/.gradle/5.2.1/gc.properties
--------------------------------------------------------------------------------
/.gradle/buildOutputCleanup/buildOutputCleanup.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/.gradle/buildOutputCleanup/buildOutputCleanup.lock
--------------------------------------------------------------------------------
/.gradle/buildOutputCleanup/cache.properties:
--------------------------------------------------------------------------------
1 | #Thu May 28 08:09:40 IST 2020
2 | gradle.version=5.2.1
3 |
--------------------------------------------------------------------------------
/.gradle/vcs-1/gc.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/.gradle/vcs-1/gc.properties
--------------------------------------------------------------------------------
/.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: f139b11009aeb8ed2a3a3aa8b0066e482709dde3
8 | channel: unknown
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Messaging App - Flutter & Firebase
2 | 
3 | > version 1.0.0
4 |
5 | Messaging app is a nicely designed and developed mobile application developed using Flutter. Flutter is an open-source mobile application development SDK created by Google and used to develop applications for Android and iOS.
6 |
7 | Messaging app gives an modern look and feel in the mobile application it has been build using flutter and firebase. It saves lots of hustle and time to develop a nicely designed messaging app Android & iOS. The app is ready to use and can be easily integrated in any flutter project. The code organization is easy to understand any part can be taken out and added into flutter application.
8 |
9 | Messaging App comes with 8 screen application pages. It comes with both light and dark theme and works great with both android and ios.
10 |
11 | ### App Screens
12 |
13 | - Signup
14 | - Login
15 | - User Info
16 | - Edit Details
17 | - Home Page
18 | - Messaging page
19 | - Message Detail
20 | - FullScreen Image Page
21 |
22 | ## Screenshots of the application
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | Working Video https://github.com/AmanNegi/Messaging-App-Flutter-/blob/master/Screenshots/walkthrough.mp4
43 |
44 | ## Topics Covered
45 |
46 | * **Firebase Cloud Firestore**
47 | Users data, profile image etc is received and stored in the firestore. The messages are also saved there.
48 |
49 | * **Messaging through firebase**
50 | The app implements messaging feature as a side feature to help the users communicate.
51 |
52 | * **Shared Prefrences**
53 | Shared prefrences is used to save local user data. eg: User firebase id.
54 |
55 | * **Firebase Auth**
56 | For users to login and signUp we have used firebase Auth.
57 |
58 | * **Theme settings**
59 | The app provides a number of theme changing options from mainColor to primary font and dark and light Mode.
60 |
61 |
62 | ### Project Structure
63 |
64 | ```
65 | ...
66 | ├── auth/ #This folder contains auth related files.
67 | ├── consts/ # This folder contains theme related files.
68 | ├── data/ # This folder contains data i.e sharedPrefs file and constant strings.
69 | ├── layout/ # This folder contains all element widgets used in other pages.
70 | ├── message/ # This folder contains all files regarding the message page and message detail.
71 | ├── user/ #This folder contains all files regarding the user and userPages.
72 | ├──app_data.dart # Contains all the theme related settings of the app
73 | └── main.dart # Root file of the project
74 | ```
75 |
76 | ## Project Setup
77 |
78 | In order to set up the project, please follow below steps:
79 |
80 | ### Flutter setup
81 |
82 | 1. Install package dependencies:
83 |
84 | ```
85 | flutter pub get
86 | ```
87 |
88 | 2. Go to google firebase and create your own project and extract the googleservices.json.
89 |
90 |
91 | 3. Run the project by running command:
92 |
93 | ```
94 | flutter run
95 | ```
96 |
97 | 4. Use one of these commands to build the project:
98 |
99 | ```
100 | flutter build ios
101 | flutter build apk
102 | flutter build appbundle
103 | ```
104 |
105 | 5. If any issue (run the below command to troubleshoot):
106 |
107 | ```
108 | flutter doctor
109 | ```
110 |
111 | For help getting started with Flutter, check [online documentation](https://flutter.dev/docs), which offers great tutorials, samples, guidance on mobile development, and a full API reference. If you run into any issue or question, feel free to reach out to us via email akuro787898@gmail.com.
112 |
113 | ### Flutter packages used in Blogit:
114 |
115 | - firebase_analytics
116 | - firebase_auth
117 | - firebase_core
118 | - google_fonts
119 | - rxdart
120 | - fluttertoast
121 | - firebase_storage
122 | - image_picker
123 | - cloud_firestore
124 | - shared_preferences
125 | - flutter_clipboard_manager
126 | - flutter_svg
127 | - intl
128 | - material_design_icons_flutter
129 | - photo_view
130 | - dynamic_theme
131 | - shimmer
132 | - mdi
133 | - url_launcher
134 | - cached_network_image
135 |
136 | ## Authors
137 |
138 | > [**Aman Negi**](https://github.com/AmanNegi) - *Initial work*
139 |
140 |
141 | ## Feel Free to Contract
142 |
143 | * Gmail : akuro787898@gmail.com
144 | * Facebook : https://www.facebook.com/flyWithFlutter
145 |
146 |
--------------------------------------------------------------------------------
/Screenshots/about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/about.png
--------------------------------------------------------------------------------
/Screenshots/auth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/auth.png
--------------------------------------------------------------------------------
/Screenshots/chat_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/chat_window.png
--------------------------------------------------------------------------------
/Screenshots/chat_window2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/chat_window2.png
--------------------------------------------------------------------------------
/Screenshots/data_dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/data_dialog.png
--------------------------------------------------------------------------------
/Screenshots/edit_Profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/edit_Profile.png
--------------------------------------------------------------------------------
/Screenshots/full_Screen_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/full_Screen_image.png
--------------------------------------------------------------------------------
/Screenshots/main_page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/main_page.png
--------------------------------------------------------------------------------
/Screenshots/received_message_detail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/received_message_detail.png
--------------------------------------------------------------------------------
/Screenshots/search_Result.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/search_Result.png
--------------------------------------------------------------------------------
/Screenshots/search_user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/search_user.png
--------------------------------------------------------------------------------
/Screenshots/sent_message_detail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/sent_message_detail.png
--------------------------------------------------------------------------------
/Screenshots/sign_out_dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/sign_out_dialog.png
--------------------------------------------------------------------------------
/Screenshots/theme_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/theme_settings.png
--------------------------------------------------------------------------------
/Screenshots/uid_dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/uid_dialog.png
--------------------------------------------------------------------------------
/Screenshots/user_info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/user_info.png
--------------------------------------------------------------------------------
/Screenshots/walkthrough.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/Screenshots/walkthrough.mp4
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | def localProperties = new Properties()
2 | def localPropertiesFile = rootProject.file('local.properties')
3 | if (localPropertiesFile.exists()) {
4 | localPropertiesFile.withReader('UTF-8') { reader ->
5 | localProperties.load(reader)
6 | }
7 | }
8 |
9 | def flutterRoot = localProperties.getProperty('flutter.sdk')
10 | if (flutterRoot == null) {
11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
12 | }
13 |
14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
15 | if (flutterVersionCode == null) {
16 | flutterVersionCode = '1'
17 | }
18 |
19 | def flutterVersionName = localProperties.getProperty('flutter.versionName')
20 | if (flutterVersionName == null) {
21 | flutterVersionName = '1.0'
22 | }
23 |
24 | apply plugin: 'com.android.application'
25 | apply plugin: 'kotlin-android'
26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
27 | apply plugin: 'com.google.gms.google-services'
28 |
29 | android {
30 | compileSdkVersion 28
31 |
32 | sourceSets {
33 | main.java.srcDirs += 'src/main/kotlin'
34 | }
35 |
36 | lintOptions {
37 | disable 'InvalidPackage'
38 | }
39 |
40 | defaultConfig {
41 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
42 | applicationId "com.example.messaging_app_new"
43 | multiDexEnabled true
44 | minSdkVersion 16
45 | targetSdkVersion 28
46 | versionCode flutterVersionCode.toInteger()
47 | versionName flutterVersionName
48 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
49 | }
50 |
51 | buildTypes {
52 | release {
53 | // TODO: Add your own signing config for the release build.
54 | // Signing with the debug keys for now, so `flutter run --release` works.
55 | signingConfig signingConfigs.debug
56 | }
57 | }
58 | }
59 |
60 | flutter {
61 | source '../..'
62 | }
63 |
64 | dependencies {
65 | implementation 'com.google.firebase:firebase-auth:19.3.1'
66 | implementation 'com.google.firebase:firebase-analytics:17.2.2'
67 | implementation 'com.google.android.gms:play-services-auth:16.0.1'
68 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
69 | testImplementation 'junit:junit:4.12'
70 | androidTestImplementation 'androidx.test:runner:1.1.1'
71 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
72 | }
73 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
20 |
21 |
22 |
23 |
24 |
25 |
27 |
30 |
31 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/example/messaging_app_new/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.messaging_app_new
2 |
3 | import androidx.annotation.NonNull;
4 | import io.flutter.embedding.android.FlutterActivity
5 | import io.flutter.embedding.engine.FlutterEngine
6 | import io.flutter.plugins.GeneratedPluginRegistrant
7 |
8 | class MainActivity: FlutterActivity() {
9 | override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
10 | GeneratedPluginRegistrant.registerWith(flutterEngine);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/app_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/android/app/src/main/res/drawable/app_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.3.50'
3 | repositories {
4 | google()
5 | jcenter()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.google.gms:google-services:4.3.3'
10 | classpath 'com.android.tools.build:gradle:3.6.1'
11 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | google()
18 | jcenter()
19 | }
20 | }
21 |
22 | rootProject.buildDir = '../build'
23 | subprojects {
24 | project.buildDir = "${rootProject.buildDir}/${project.name}"
25 | }
26 | subprojects {
27 | project.evaluationDependsOn(':app')
28 | }
29 |
30 | task clean(type: Delete) {
31 | delete rootProject.buildDir
32 | }
33 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu May 28 08:10:52 IST 2020
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-5.6.4-all.zip
7 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/android/settings_aar.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/assets/giphy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/assets/giphy.gif
--------------------------------------------------------------------------------
/assets/loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/assets/loading.png
--------------------------------------------------------------------------------
/assets/msg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/assets/msg.png
--------------------------------------------------------------------------------
/assets/search.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/assets/search.jpg
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(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 | 8.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-App-20x20@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-App-20x20@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-App-29x29@1x.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-App-29x29@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "29x29",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-App-29x29@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-App-40x40@2x.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "40x40",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-App-40x40@3x.png",
43 | "scale" : "3x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-App-60x60@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "60x60",
53 | "idiom" : "iphone",
54 | "filename" : "Icon-App-60x60@3x.png",
55 | "scale" : "3x"
56 | },
57 | {
58 | "size" : "20x20",
59 | "idiom" : "ipad",
60 | "filename" : "Icon-App-20x20@1x.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "20x20",
65 | "idiom" : "ipad",
66 | "filename" : "Icon-App-20x20@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "29x29",
71 | "idiom" : "ipad",
72 | "filename" : "Icon-App-29x29@1x.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "29x29",
77 | "idiom" : "ipad",
78 | "filename" : "Icon-App-29x29@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "40x40",
83 | "idiom" : "ipad",
84 | "filename" : "Icon-App-40x40@1x.png",
85 | "scale" : "1x"
86 | },
87 | {
88 | "size" : "40x40",
89 | "idiom" : "ipad",
90 | "filename" : "Icon-App-40x40@2x.png",
91 | "scale" : "2x"
92 | },
93 | {
94 | "size" : "76x76",
95 | "idiom" : "ipad",
96 | "filename" : "Icon-App-76x76@1x.png",
97 | "scale" : "1x"
98 | },
99 | {
100 | "size" : "76x76",
101 | "idiom" : "ipad",
102 | "filename" : "Icon-App-76x76@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "83.5x83.5",
107 | "idiom" : "ipad",
108 | "filename" : "Icon-App-83.5x83.5@2x.png",
109 | "scale" : "2x"
110 | },
111 | {
112 | "size" : "1024x1024",
113 | "idiom" : "ios-marketing",
114 | "filename" : "Icon-App-1024x1024@1x.png",
115 | "scale" : "1x"
116 | }
117 | ],
118 | "info" : {
119 | "version" : 1,
120 | "author" : "xcode"
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AmanNegi/Messaging-App-Flutter-/baebd6c1e54af30bb49833271f9cd6511f490190/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/LaunchScreen.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 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/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 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | messaging_app_new
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | $(FLUTTER_BUILD_NAME)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UISupportedInterfaceOrientations
30 |
31 | UIInterfaceOrientationPortrait
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 | UIViewControllerBasedStatusBarAppearance
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
--------------------------------------------------------------------------------
/lib/Layout/DrawerBuilder.dart:
--------------------------------------------------------------------------------
1 | import 'package:cached_network_image/cached_network_image.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
4 | import 'package:mdi/mdi.dart';
5 | import 'package:messaging_app_new/Layout/themeSettingsPage.dart';
6 | import 'package:messaging_app_new/consts/theme.dart';
7 | import 'package:messaging_app_new/message/imageFullScreen.dart';
8 | import 'package:shimmer/shimmer.dart';
9 | import 'package:url_launcher/url_launcher.dart';
10 | import '../user/editProfile.dart';
11 | import '../mainRepo.dart';
12 | import '../user/user.dart';
13 | import '../data/sharedPrefs.dart';
14 | import '../Layout/signOutConfirmationDialog.dart';
15 | import '../appData.dart';
16 |
17 | class DrawerBuilder extends StatefulWidget {
18 | @override
19 | _DrawerBuilderState createState() => _DrawerBuilderState();
20 | }
21 |
22 | class _DrawerBuilderState extends State {
23 | var height, width;
24 | User user;
25 | bool isLoading = true;
26 | _getCurrentUser() async {
27 | setState(() {
28 | isLoading = true;
29 | });
30 | print("getting user ");
31 | user = await mainRepo
32 | .getUserFromUid(sharedPrefs.getValueFromSharedPrefs('uid'));
33 | setUser(user);
34 | setState(() {
35 | isLoading = false;
36 | });
37 | }
38 |
39 | @override
40 | void initState() {
41 | _getCurrentUser();
42 | super.initState();
43 | }
44 |
45 | @override
46 | Drawer build(BuildContext context) {
47 | height = MediaQuery.of(context).size.height;
48 | width = MediaQuery.of(context).size.width;
49 | return Drawer(
50 | child: ListView(
51 | children: [
52 | _buildTopImage(context),
53 | Divider(),
54 | _buildEditProfile(context),
55 | Divider(),
56 | _buildThemeSettingsTile(context),
57 | Divider(),
58 | ListTile(
59 | leading: Icon(
60 | Mdi.logout,
61 | ),
62 | title: Text("Sign out"),
63 | onTap: () {
64 | showDialog(
65 | context: context,
66 | barrierDismissible: true,
67 | builder: (context) => SignOutConfirmationDialog(),
68 | );
69 | },
70 | ),
71 | Divider(),
72 | ListTile(
73 | leading: Icon(Mdi.messageAlertOutline),
74 | title: Text('Want an feature? Suggest the developer'),
75 | onTap: () {
76 | _launchURL("asterJoules@gmail.com", "Suggestion of an feature",
77 | "Enter here");
78 | },
79 | ),
80 | Divider(),
81 | ListTile(
82 | leading: Icon(Mdi.bugCheckOutline),
83 | title: Text('Found an issue? Ping the developer'),
84 | subtitle:
85 | Text('Include screenshot with a well detailed description'),
86 | onTap: () {
87 | _launchURL("asterJoules@gmail.com", "Suggestion of an feature",
88 | "Enter here");
89 | },
90 | ),
91 | Divider(),
92 | _buildAboutTile(context),
93 | ],
94 | ),
95 | );
96 | }
97 |
98 | _buildAboutTile(BuildContext context) {
99 | return ListTile(
100 | leading: Icon(Mdi.informationOutline),
101 | title: Text('About'),
102 | onTap: () {
103 | showAboutDialog(
104 | context: context,
105 | applicationIcon: Image.asset(
106 | 'assets/msg.png',
107 | height: 50.0,
108 | width: 50.0,
109 | ),
110 | children: [
111 | SizedBox(
112 | height: 30.0,
113 | ),
114 | Text(
115 | "Copyright 2020 AsterJoules. All rights reserved.* Redistributions of source code must retain the above copyrightnotice, this list of conditions and the following disclaimer.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS")
116 | ],
117 | applicationName: 'Messaging app',
118 | applicationVersion: '1.0.0 (Debug version)',
119 | applicationLegalese: '@2020 AsterJoules');
120 | },
121 | );
122 | }
123 |
124 | ListTile _buildThemeSettingsTile(BuildContext context) {
125 | return ListTile(
126 | title: Text(
127 | "Theme settings",
128 | style: TextStyle(color: AppTheme.textColor),
129 | ),
130 | leading: Icon(
131 | MdiIcons.themeLightDark,
132 | ),
133 | onTap: () {
134 | Navigator.of(context).push(MaterialPageRoute(
135 | builder: (context) => ThemeSettingsPage(),
136 | ));
137 | },
138 | );
139 | }
140 |
141 | ListTile _buildEditProfile(BuildContext context) {
142 | return ListTile(
143 | onTap: () {
144 | Navigator.of(context).push(
145 | MaterialPageRoute(
146 | builder: (BuildContext context) => EditProfile(),
147 | ),
148 | );
149 | },
150 | leading: Icon(
151 | Mdi.circleEditOutline,
152 | ),
153 | title: Text(
154 | "Edit profile",
155 | style: TextStyle(color: AppTheme.textColor),
156 | ),
157 | );
158 | }
159 |
160 | Container _buildTopImage(BuildContext context) {
161 | return Container(
162 | color: Theme.of(context).cardColor,
163 | height: 0.2 * height,
164 | width: double.infinity,
165 | child: Stack(
166 | children: [
167 | Column(
168 | children: [
169 | Container(
170 | height: 0.12 * height,
171 | width: double.infinity,
172 | color: Theme.of(context).cardColor),
173 | Container(
174 | height: 0.08 * height,
175 | width: double.infinity,
176 | color: Theme.of(context).canvasColor,
177 | ),
178 | ],
179 | ),
180 | Positioned(
181 | left: 0.325 * width,
182 | top: 0.0925 * height,
183 | child: Text(
184 | user != null ? user.userName : '',
185 | style: TextStyle(fontSize: 16),
186 | ),
187 | ),
188 | Positioned(
189 | top: 0.05 * height,
190 | left: 0.05 * width,
191 | child: GestureDetector(
192 | onTap: () {
193 | if (user != null) {
194 | Navigator.of(context).push(MaterialPageRoute(
195 | builder: (context) => ImageFullScreen(user.imageUrl)));
196 | }
197 | },
198 | child: _buildUserImage(context),
199 | ),
200 | ),
201 | ],
202 | ),
203 | );
204 | }
205 |
206 | _launchURL(String toMailId, String subject, String body) async {
207 | var url = 'mailto:$toMailId?subject=$subject&body=$body';
208 | if (await canLaunch(url)) {
209 | await launch(url);
210 | } else {
211 | throw 'Could not launch $url';
212 | }
213 | }
214 |
215 | _buildUserImage(BuildContext context) {
216 | return user != null
217 | ? ValueListenableBuilder(
218 | valueListenable: userData,
219 | builder: (context, value, child) {
220 | return ClipRRect(
221 | borderRadius: BorderRadius.circular(120.0),
222 | child: Container(
223 | height: 0.125 * height,
224 | width: 0.125 * height,
225 | color: AppTheme.mainColor,
226 | child: CachedNetworkImage(
227 | fadeInDuration: Duration(microseconds: 100),
228 | imageUrl: value != null ? value.imageUrl : " ",
229 | fit: BoxFit.cover,
230 | errorWidget: (context, url, error) =>
231 | Icon(Mdi.alert, color: AppTheme.iconColor),
232 | placeholder: (context, url) => Shimmer.fromColors(
233 | child: Container(
234 | color: Colors.red,
235 | ),
236 | baseColor: AppTheme.shimmerBaseColor,
237 | highlightColor: AppTheme.shimmerEndingColor)),
238 | ),
239 | );
240 | },
241 | )
242 | : ClipRRect(
243 | borderRadius: BorderRadius.circular(120.0),
244 | child: Shimmer.fromColors(
245 | baseColor: AppTheme.shimmerBaseColor,
246 | highlightColor: AppTheme.shimmerEndingColor,
247 | child: Container(
248 | height: 0.125 * height,
249 | width: 0.125 * height,
250 | color: Colors.red,
251 | ),
252 | ),
253 | );
254 | }
255 | }
256 |
--------------------------------------------------------------------------------
/lib/Layout/TextFormBuilder.dart:
--------------------------------------------------------------------------------
1 | import "package:flutter/material.dart";
2 | import 'package:google_fonts/google_fonts.dart';
3 | import 'package:messaging_app_new/consts/theme.dart';
4 |
5 | class TextFormBuilder extends StatelessWidget {
6 | String hintText;
7 | Function validator;
8 | Function onSaved;
9 | TextEditingController controller;
10 | Widget suffixWidget;
11 | TextStyle textStyle;
12 | TextInputType keybordType;
13 | bool obscureText;
14 | TextFormBuilder(
15 | {this.hintText,
16 | this.validator,
17 | this.onSaved,
18 | this.controller,
19 | this.suffixWidget,
20 | this.textStyle,
21 | this.keybordType,
22 | this.obscureText});
23 |
24 | @override
25 | Widget build(BuildContext context) {
26 | return ClipRRect(
27 | borderRadius: BorderRadius.circular(30.0),
28 | child: Container(
29 | color: Colors.white,
30 | child: TextFormField(
31 | obscureText: obscureText != null ? obscureText : false,
32 | controller: controller,
33 | maxLines: 1,
34 | keyboardType: keybordType,
35 | // validator: validator,
36 | autocorrect: false,
37 | onSaved: onSaved,
38 | onChanged: (v) {},
39 | style: TextStyle(
40 | fontFamily: AppTheme.fontFamily,
41 | color: Colors.black,
42 | ),
43 | decoration: InputDecoration(
44 | contentPadding: EdgeInsets.all(20.0),
45 | fillColor: Colors.white,
46 | hintText: hintText,
47 | hintStyle: textStyle != null ? textStyle : TextStyle(),
48 | suffixIcon: suffixWidget != null ? suffixWidget : null,
49 | border: InputBorder.none,
50 | ),
51 | ),
52 | ),
53 | );
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/lib/Layout/infoDialog.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:messaging_app_new/consts/theme.dart';
3 |
4 | class InfoDialog extends StatelessWidget {
5 | @override
6 | Widget build(BuildContext context) {
7 | return SimpleDialog(
8 | backgroundColor: Colors.transparent,
9 | elevation: 0,
10 | // shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15.0)),
11 | children: [
12 | ClipRRect(
13 | borderRadius: BorderRadius.circular(15.0),
14 | child: Container(
15 | color: Theme.of(context).cardColor,
16 | child: Column(
17 | children: [
18 | AppBar(
19 | elevation: 0,
20 | centerTitle: true,
21 | automaticallyImplyLeading: false,
22 | title: Text(
23 | "U-id",
24 | style: TextStyle(fontWeight: FontWeight.w800),
25 | ),
26 | ),
27 | Padding(
28 | padding: const EdgeInsets.all(30.0),
29 | child: Text(
30 | "This a unique id to uniquely identify users. Share the U-id to your friends so that they can find you. UserName can be duplicated however the U-id is always unique."),
31 | )
32 | ],
33 | ),
34 | ),
35 | ),
36 | ],
37 | );
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/lib/Layout/signOutConfirmationDialog.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:messaging_app_new/auth/signUp.dart';
3 | import 'package:messaging_app_new/consts/theme.dart';
4 | import 'package:messaging_app_new/data/sharedPrefs.dart';
5 |
6 | class SignOutConfirmationDialog extends StatelessWidget {
7 | @override
8 | Widget build(BuildContext context) {
9 | return SimpleDialog(
10 | backgroundColor: Colors.transparent,
11 | elevation: 0,
12 | children: [
13 | ClipRRect(
14 | borderRadius: BorderRadius.circular(15.0),
15 | child: Container(
16 | color: Theme.of(context).cardColor,
17 | child: Column(
18 | children: [
19 | AppBar(
20 | elevation: 0,
21 | centerTitle: true,
22 | automaticallyImplyLeading: false,
23 | title: Text(
24 | "Sign Out?",
25 | style: TextStyle(fontWeight: FontWeight.w800),
26 | ),
27 | ),
28 | Padding(
29 | padding: const EdgeInsets.only(
30 | top: 20.0, left: 10.0, right: 10.0, bottom: 20.0),
31 | child: Text(
32 | "All your data regarding this account will be deleted from the device. However you can come back to this account.",
33 | textAlign: TextAlign.center,
34 | ),
35 | ),
36 | Row(
37 | mainAxisAlignment: MainAxisAlignment.center,
38 | children: [
39 | RaisedButton(
40 | color: AppTheme.mainColor,
41 | elevation: 0,
42 | shape: RoundedRectangleBorder(
43 | borderRadius: BorderRadius.circular(30.0)),
44 | onPressed: () {
45 | sharedPrefs.clearSharedPrefsData();
46 |
47 | Navigator.of(context).pushReplacement(MaterialPageRoute(
48 | builder: (context) => SignUpPage()));
49 | },
50 | child: Text(
51 | "Continue",
52 | style: TextStyle(color: Colors.white),
53 | ),
54 | ),
55 | SizedBox(
56 | width: 10,
57 | ),
58 | FlatButton(
59 | shape: RoundedRectangleBorder(
60 | borderRadius: BorderRadius.circular(30.0)),
61 | color: Theme.of(context).canvasColor,
62 | child: Text("Cancel"),
63 | onPressed: () {
64 | Navigator.pop(context);
65 | },
66 | ),
67 | ],
68 | ),
69 | SizedBox(
70 | height: 20,
71 | ),
72 | ],
73 | ),
74 | ),
75 | ),
76 | ],
77 | );
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/lib/Layout/themeSettingsPage.dart:
--------------------------------------------------------------------------------
1 | import 'package:dynamic_theme/dynamic_theme.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:google_fonts/google_fonts.dart';
4 | import 'package:messaging_app_new/consts/theme.dart';
5 | import 'package:messaging_app_new/data/sharedPrefs.dart';
6 | import 'package:mdi/mdi.dart';
7 |
8 | class ThemeSettingsPage extends StatefulWidget {
9 | @override
10 | _ThemeSettingsPageState createState() => _ThemeSettingsPageState();
11 | }
12 |
13 | class _ThemeSettingsPageState extends State {
14 | int currentColorIndex = 2;
15 | bool isDarkModeOpened = false;
16 |
17 | List