merge ios dev to android dev
This commit is contained in:
commit
b1616a1b51
|
|
@ -1,5 +1,5 @@
|
||||||
# Uncomment this line to define a global platform for your project
|
# Uncomment this line to define a global platform for your project
|
||||||
platform :ios, '9.0'
|
platform :ios, '10.0'
|
||||||
|
|
||||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,41 @@
|
||||||
PODS:
|
PODS:
|
||||||
- audio_session (0.0.1):
|
- audio_session (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
|
- Firebase/CoreOnly (8.11.0):
|
||||||
|
- FirebaseCore (= 8.11.0)
|
||||||
|
- Firebase/Messaging (8.11.0):
|
||||||
|
- Firebase/CoreOnly
|
||||||
|
- FirebaseMessaging (~> 8.11.0)
|
||||||
|
- firebase_core (1.13.1):
|
||||||
|
- Firebase/CoreOnly (= 8.11.0)
|
||||||
|
- Flutter
|
||||||
|
- firebase_messaging (11.2.8):
|
||||||
|
- Firebase/Messaging (= 8.11.0)
|
||||||
|
- firebase_core
|
||||||
|
- Flutter
|
||||||
|
- FirebaseCore (8.11.0):
|
||||||
|
- FirebaseCoreDiagnostics (~> 8.0)
|
||||||
|
- GoogleUtilities/Environment (~> 7.7)
|
||||||
|
- GoogleUtilities/Logger (~> 7.7)
|
||||||
|
- FirebaseCoreDiagnostics (8.12.0):
|
||||||
|
- GoogleDataTransport (~> 9.1)
|
||||||
|
- GoogleUtilities/Environment (~> 7.7)
|
||||||
|
- GoogleUtilities/Logger (~> 7.7)
|
||||||
|
- nanopb (~> 2.30908.0)
|
||||||
|
- FirebaseInstallations (8.12.0):
|
||||||
|
- FirebaseCore (~> 8.0)
|
||||||
|
- GoogleUtilities/Environment (~> 7.7)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 7.7)
|
||||||
|
- PromisesObjC (< 3.0, >= 1.2)
|
||||||
|
- FirebaseMessaging (8.11.0):
|
||||||
|
- FirebaseCore (~> 8.0)
|
||||||
|
- FirebaseInstallations (~> 8.0)
|
||||||
|
- GoogleDataTransport (~> 9.1)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 7.7)
|
||||||
|
- GoogleUtilities/Environment (~> 7.7)
|
||||||
|
- GoogleUtilities/Reachability (~> 7.7)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 7.7)
|
||||||
|
- nanopb (~> 2.30908.0)
|
||||||
- Flutter (1.0.0)
|
- Flutter (1.0.0)
|
||||||
- flutter_secure_storage (3.3.1):
|
- flutter_secure_storage (3.3.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
|
|
@ -9,6 +44,27 @@ PODS:
|
||||||
- FMDB (2.7.5):
|
- FMDB (2.7.5):
|
||||||
- FMDB/standard (= 2.7.5)
|
- FMDB/standard (= 2.7.5)
|
||||||
- FMDB/standard (2.7.5)
|
- FMDB/standard (2.7.5)
|
||||||
|
- GoogleDataTransport (9.1.2):
|
||||||
|
- GoogleUtilities/Environment (~> 7.2)
|
||||||
|
- nanopb (~> 2.30908.0)
|
||||||
|
- PromisesObjC (< 3.0, >= 1.2)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (7.7.0):
|
||||||
|
- GoogleUtilities/Environment
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Network
|
||||||
|
- GoogleUtilities/Environment (7.7.0):
|
||||||
|
- PromisesObjC (< 3.0, >= 1.2)
|
||||||
|
- GoogleUtilities/Logger (7.7.0):
|
||||||
|
- GoogleUtilities/Environment
|
||||||
|
- GoogleUtilities/Network (7.7.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- "GoogleUtilities/NSData+zlib"
|
||||||
|
- GoogleUtilities/Reachability
|
||||||
|
- "GoogleUtilities/NSData+zlib (7.7.0)"
|
||||||
|
- GoogleUtilities/Reachability (7.7.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/UserDefaults (7.7.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
- image_cropper (0.0.4):
|
- image_cropper (0.0.4):
|
||||||
- Flutter
|
- Flutter
|
||||||
- TOCropViewController (~> 2.6.1)
|
- TOCropViewController (~> 2.6.1)
|
||||||
|
|
@ -16,8 +72,14 @@ PODS:
|
||||||
- Flutter
|
- Flutter
|
||||||
- just_audio (0.0.1):
|
- just_audio (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
|
- nanopb (2.30908.0):
|
||||||
|
- nanopb/decode (= 2.30908.0)
|
||||||
|
- nanopb/encode (= 2.30908.0)
|
||||||
|
- nanopb/decode (2.30908.0)
|
||||||
|
- nanopb/encode (2.30908.0)
|
||||||
- path_provider_ios (0.0.1):
|
- path_provider_ios (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
|
- PromisesObjC (2.0.0)
|
||||||
- record (0.0.1):
|
- record (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- sqflite (0.0.2):
|
- sqflite (0.0.2):
|
||||||
|
|
@ -29,6 +91,8 @@ PODS:
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- audio_session (from `.symlinks/plugins/audio_session/ios`)
|
- audio_session (from `.symlinks/plugins/audio_session/ios`)
|
||||||
|
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||||
|
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
||||||
- Flutter (from `Flutter`)
|
- Flutter (from `Flutter`)
|
||||||
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
|
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
|
||||||
- flutter_vibrate (from `.symlinks/plugins/flutter_vibrate/ios`)
|
- flutter_vibrate (from `.symlinks/plugins/flutter_vibrate/ios`)
|
||||||
|
|
@ -42,12 +106,25 @@ DEPENDENCIES:
|
||||||
|
|
||||||
SPEC REPOS:
|
SPEC REPOS:
|
||||||
trunk:
|
trunk:
|
||||||
|
- Firebase
|
||||||
|
- FirebaseCore
|
||||||
|
- FirebaseCoreDiagnostics
|
||||||
|
- FirebaseInstallations
|
||||||
|
- FirebaseMessaging
|
||||||
- FMDB
|
- FMDB
|
||||||
|
- GoogleDataTransport
|
||||||
|
- GoogleUtilities
|
||||||
|
- nanopb
|
||||||
|
- PromisesObjC
|
||||||
- TOCropViewController
|
- TOCropViewController
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
audio_session:
|
audio_session:
|
||||||
:path: ".symlinks/plugins/audio_session/ios"
|
:path: ".symlinks/plugins/audio_session/ios"
|
||||||
|
firebase_core:
|
||||||
|
:path: ".symlinks/plugins/firebase_core/ios"
|
||||||
|
firebase_messaging:
|
||||||
|
:path: ".symlinks/plugins/firebase_messaging/ios"
|
||||||
Flutter:
|
Flutter:
|
||||||
:path: Flutter
|
:path: Flutter
|
||||||
flutter_secure_storage:
|
flutter_secure_storage:
|
||||||
|
|
@ -71,19 +148,30 @@ EXTERNAL SOURCES:
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
audio_session: 4f3e461722055d21515cf3261b64c973c062f345
|
audio_session: 4f3e461722055d21515cf3261b64c973c062f345
|
||||||
|
Firebase: 44dd9724c84df18b486639e874f31436eaa9a20c
|
||||||
|
firebase_core: 08f6a85f62060111de5e98d6a214810d11365de9
|
||||||
|
firebase_messaging: 36238f3d0b933af8c919aef608408aae06ba22e8
|
||||||
|
FirebaseCore: 2f4f85b453cc8fea4bb2b37e370007d2bcafe3f0
|
||||||
|
FirebaseCoreDiagnostics: 3b40dfadef5b90433a60ae01f01e90fe87aa76aa
|
||||||
|
FirebaseInstallations: 25764cf322e77f99449395870a65b2bef88e1545
|
||||||
|
FirebaseMessaging: 02e248e8997f71fa8cc9d78e9d49ec1a701ba14a
|
||||||
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
||||||
flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
|
flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
|
||||||
flutter_vibrate: 9f4c2ab57008965f78969472367c329dd77eb801
|
flutter_vibrate: 9f4c2ab57008965f78969472367c329dd77eb801
|
||||||
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
|
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
|
||||||
|
GoogleDataTransport: 629c20a4d363167143f30ea78320d5a7eb8bd940
|
||||||
|
GoogleUtilities: e0913149f6b0625b553d70dae12b49fc62914fd1
|
||||||
image_cropper: 60c2789d1f1a78c873235d4319ca0c34a69f2d98
|
image_cropper: 60c2789d1f1a78c873235d4319ca0c34a69f2d98
|
||||||
image_picker: 9aa50e1d8cdacdbed739e925b7eea16d014367e6
|
image_picker: 9aa50e1d8cdacdbed739e925b7eea16d014367e6
|
||||||
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
|
||||||
|
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
|
||||||
path_provider_ios: 7d7ce634493af4477d156294792024ec3485acd5
|
path_provider_ios: 7d7ce634493af4477d156294792024ec3485acd5
|
||||||
|
PromisesObjC: 68159ce6952d93e17b2dfe273b8c40907db5ba58
|
||||||
record: 7ee2393532f8553bbb09fa19e95478323b7c0a99
|
record: 7ee2393532f8553bbb09fa19e95478323b7c0a99
|
||||||
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
|
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
|
||||||
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
||||||
url_launcher_ios: 02f1989d4e14e998335b02b67a7590fa34f971af
|
url_launcher_ios: 02f1989d4e14e998335b02b67a7590fa34f971af
|
||||||
|
|
||||||
PODFILE CHECKSUM: a75497545d4391e2d394c3668e20cfb1c2bbd4aa
|
PODFILE CHECKSUM: fe0e1ee7f3d1f7d00b11b474b62dd62134535aea
|
||||||
|
|
||||||
COCOAPODS: 1.11.2
|
COCOAPODS: 1.11.2
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
||||||
|
D194CE3E27D4A4740049AFC7 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = D194CE3D27D4A4740049AFC7 /* GoogleService-Info.plist */; };
|
||||||
E870A5F479A60D6704DD5DF2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75DBECA488F412614712FB74 /* Pods_Runner.framework */; };
|
E870A5F479A60D6704DD5DF2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75DBECA488F412614712FB74 /* Pods_Runner.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
|
@ -47,6 +48,7 @@
|
||||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
98ACB01D5FA5A78DB2686183 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
98ACB01D5FA5A78DB2686183 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
C97DED20C4A171F16FB949CD /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
C97DED20C4A171F16FB949CD /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
D194CE3D27D4A4740049AFC7 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
|
@ -112,6 +114,7 @@
|
||||||
97C146F01CF9000F007C117D /* Runner */ = {
|
97C146F01CF9000F007C117D /* Runner */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
D194CE3D27D4A4740049AFC7 /* GoogleService-Info.plist */,
|
||||||
97C146FA1CF9000F007C117D /* Main.storyboard */,
|
97C146FA1CF9000F007C117D /* Main.storyboard */,
|
||||||
97C146FD1CF9000F007C117D /* Assets.xcassets */,
|
97C146FD1CF9000F007C117D /* Assets.xcassets */,
|
||||||
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
|
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
|
||||||
|
|
@ -189,6 +192,7 @@
|
||||||
files = (
|
files = (
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
|
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
|
||||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
|
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
|
||||||
|
D194CE3E27D4A4740049AFC7 /* GoogleService-Info.plist in Resources */,
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
|
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
|
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,30 @@
|
||||||
import UIKit
|
import UIKit
|
||||||
import Flutter
|
import Flutter
|
||||||
|
import Firebase
|
||||||
|
|
||||||
|
|
||||||
@UIApplicationMain
|
@UIApplicationMain
|
||||||
@objc class AppDelegate: FlutterAppDelegate {
|
@objc class AppDelegate: FlutterAppDelegate, MessagingDelegate {
|
||||||
override func application(
|
override func application(
|
||||||
_ application: UIApplication,
|
_ application: UIApplication,
|
||||||
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
||||||
) -> Bool {
|
) -> Bool {
|
||||||
|
FirebaseApp.configure()
|
||||||
|
Messaging.messaging().delegate = self
|
||||||
GeneratedPluginRegistrant.register(with: self)
|
GeneratedPluginRegistrant.register(with: self)
|
||||||
|
if #available(iOS 10.0, *) {
|
||||||
|
// For iOS 10 display notification (sent via APNS)
|
||||||
|
UNUserNotificationCenter.current().delegate = self
|
||||||
|
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
|
||||||
|
UNUserNotificationCenter.current().requestAuthorization(
|
||||||
|
options: authOptions,
|
||||||
|
completionHandler: {_, _ in })
|
||||||
|
} else {
|
||||||
|
let settings: UIUserNotificationSettings =
|
||||||
|
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
|
||||||
|
application.registerUserNotificationSettings(settings)
|
||||||
|
}
|
||||||
|
application.registerForRemoteNotifications()
|
||||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CLIENT_ID</key>
|
||||||
|
<string>935017686266-54hu01v9cc5pqpgofo1gk2n3hegj4r2m.apps.googleusercontent.com</string>
|
||||||
|
<key>REVERSED_CLIENT_ID</key>
|
||||||
|
<string>com.googleusercontent.apps.935017686266-54hu01v9cc5pqpgofo1gk2n3hegj4r2m</string>
|
||||||
|
<key>API_KEY</key>
|
||||||
|
<string>AIzaSyCMa-zg_uVhOfTnea5Klz6aPZlgHwVGj7U</string>
|
||||||
|
<key>GCM_SENDER_ID</key>
|
||||||
|
<string>935017686266</string>
|
||||||
|
<key>PLIST_VERSION</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>BUNDLE_ID</key>
|
||||||
|
<string>com.didvan.didvanapp</string>
|
||||||
|
<key>PROJECT_ID</key>
|
||||||
|
<string>didvan-9b7da</string>
|
||||||
|
<key>STORAGE_BUCKET</key>
|
||||||
|
<string>didvan-9b7da.appspot.com</string>
|
||||||
|
<key>IS_ADS_ENABLED</key>
|
||||||
|
<false></false>
|
||||||
|
<key>IS_ANALYTICS_ENABLED</key>
|
||||||
|
<false></false>
|
||||||
|
<key>IS_APPINVITE_ENABLED</key>
|
||||||
|
<true></true>
|
||||||
|
<key>IS_GCM_ENABLED</key>
|
||||||
|
<true></true>
|
||||||
|
<key>IS_SIGNIN_ENABLED</key>
|
||||||
|
<true></true>
|
||||||
|
<key>GOOGLE_APP_ID</key>
|
||||||
|
<string>1:935017686266:ios:de47638bd662463fd2d543</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -26,12 +26,14 @@
|
||||||
<string>LaunchScreen</string>
|
<string>LaunchScreen</string>
|
||||||
<key>UIMainStoryboardFile</key>
|
<key>UIMainStoryboardFile</key>
|
||||||
<string>Main</string>
|
<string>Main</string>
|
||||||
|
<key>FirebaseAppDelegateProxyEnabled</key>
|
||||||
|
<false/>
|
||||||
<key>NSMicrophoneUsageDescription</key>
|
<key>NSMicrophoneUsageDescription</key>
|
||||||
<string>We need to access to the microphone to record audio file</string>
|
<string>We need to access to the microphone to record audio file</string>
|
||||||
<key>NSPhotoLibraryUsageDescription</key>
|
<key>NSPhotoLibraryUsageDescription</key>
|
||||||
<string>We need to access to the user gallery to add user profile photo</string>
|
<string>We need to access to the user gallery to add user profile photo</string>
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
<string>We need to access to the user gallery to add user profile photo</string>
|
<string>We need to access to the user gallery to add user profile photo</string>
|
||||||
<key>UISupportedInterfaceOrientations</key>
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
<array>
|
<array>
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import 'package:didvan/views/widgets/didvan/text_field.dart';
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class UsernameInput extends StatefulWidget {
|
class UsernameInput extends StatefulWidget {
|
||||||
const UsernameInput({
|
const UsernameInput({
|
||||||
|
|
@ -70,7 +71,7 @@ class _UsernameInputState extends State<UsernameInput> {
|
||||||
.textTheme
|
.textTheme
|
||||||
.caption!
|
.caption!
|
||||||
.copyWith(color: Theme.of(context).colorScheme.primary),
|
.copyWith(color: Theme.of(context).colorScheme.primary),
|
||||||
recognizer: TapGestureRecognizer()..onTap = () {},
|
recognizer: TapGestureRecognizer()..onTap = _openTermsOfUse,
|
||||||
),
|
),
|
||||||
const TextSpan(text: 'و\n'),
|
const TextSpan(text: 'و\n'),
|
||||||
TextSpan(
|
TextSpan(
|
||||||
|
|
@ -79,7 +80,7 @@ class _UsernameInputState extends State<UsernameInput> {
|
||||||
.textTheme
|
.textTheme
|
||||||
.caption!
|
.caption!
|
||||||
.copyWith(color: Theme.of(context).colorScheme.primary),
|
.copyWith(color: Theme.of(context).colorScheme.primary),
|
||||||
recognizer: TapGestureRecognizer()..onTap = () {},
|
recognizer: TapGestureRecognizer()..onTap = _openTermsOfUse,
|
||||||
),
|
),
|
||||||
const TextSpan(text: 'را میپذیرم'),
|
const TextSpan(text: 'را میپذیرم'),
|
||||||
],
|
],
|
||||||
|
|
@ -92,4 +93,8 @@ class _UsernameInputState extends State<UsernameInput> {
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _openTermsOfUse() {
|
||||||
|
launch('https://didvan.app/termsOfUse.html');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,61 @@ class DidvanBNB extends StatelessWidget {
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
return Container(
|
||||||
|
height: 72,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Theme.of(context).colorScheme.surface,
|
||||||
|
borderRadius: const BorderRadius.vertical(top: Radius.circular(16)),
|
||||||
|
boxShadow: [
|
||||||
|
BoxShadow(
|
||||||
|
offset: const Offset(0, -18),
|
||||||
|
color: const Color(0XFF1B3C59).withOpacity(0.25),
|
||||||
|
blurRadius: 40,
|
||||||
|
spreadRadius: -15,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 12),
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
_NavBarItem(
|
||||||
|
isSelected: currentTabIndex == 0,
|
||||||
|
title: 'اخبار',
|
||||||
|
selectedIcon: DidvanIcons.news_solid,
|
||||||
|
unselectedIcon: DidvanIcons.news_light,
|
||||||
|
onTap: () => onTabChanged(0),
|
||||||
|
),
|
||||||
|
_NavBarItem(
|
||||||
|
isSelected: currentTabIndex == 1,
|
||||||
|
title: 'آمار',
|
||||||
|
selectedIcon: DidvanIcons.chart_solid,
|
||||||
|
unselectedIcon: DidvanIcons.chart_light,
|
||||||
|
onTap: () => onTabChanged(1),
|
||||||
|
),
|
||||||
|
_NavBarItem(
|
||||||
|
isSelected: currentTabIndex == 2,
|
||||||
|
title: 'رادار',
|
||||||
|
selectedIcon: DidvanIcons.radar_solid,
|
||||||
|
unselectedIcon: DidvanIcons.radar_light,
|
||||||
|
onTap: () => onTabChanged(2),
|
||||||
|
),
|
||||||
|
_NavBarItem(
|
||||||
|
isSelected: currentTabIndex == 3,
|
||||||
|
title: 'استودیو',
|
||||||
|
selectedIcon: DidvanIcons.play_circle_solid,
|
||||||
|
unselectedIcon: DidvanIcons.play_circle_light,
|
||||||
|
onTap: () => onTabChanged(3),
|
||||||
|
),
|
||||||
|
_NavBarItem(
|
||||||
|
isSelected: currentTabIndex == 4,
|
||||||
|
title: 'تنظیمات',
|
||||||
|
selectedIcon: DidvanIcons.setting_solid,
|
||||||
|
unselectedIcon: DidvanIcons.setting_light,
|
||||||
|
onTap: () => onTabChanged(4),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -209,14 +209,14 @@ class _DidvanPageViewState extends State<DidvanPageView> {
|
||||||
child: Center(
|
child: Center(
|
||||||
child: SkeletonImage(
|
child: SkeletonImage(
|
||||||
width: MediaQuery.of(context).size.width,
|
width: MediaQuery.of(context).size.width,
|
||||||
height: 200,
|
|
||||||
imageUrl: content.image,
|
imageUrl: content.image,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const Positioned(
|
const Positioned(
|
||||||
right: 16,
|
right: 24,
|
||||||
|
top: 24,
|
||||||
child: _BackButton(),
|
child: _BackButton(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -225,7 +225,7 @@ class _DidvanPageViewState extends State<DidvanPageView> {
|
||||||
},
|
},
|
||||||
child: SkeletonImage(
|
child: SkeletonImage(
|
||||||
imageUrl: content.image!,
|
imageUrl: content.image!,
|
||||||
aspectRatio: 16 / 9,
|
width: double.infinity,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,17 +8,17 @@ import 'package:cached_network_image_platform_interface/cached_network_image_pla
|
||||||
|
|
||||||
class SkeletonImage extends StatelessWidget {
|
class SkeletonImage extends StatelessWidget {
|
||||||
final String imageUrl;
|
final String imageUrl;
|
||||||
final double width;
|
final double? width;
|
||||||
final double height;
|
final double? height;
|
||||||
final BorderRadius? borderRadius;
|
final BorderRadius? borderRadius;
|
||||||
final double? aspectRatio;
|
final double? aspectRatio;
|
||||||
const SkeletonImage({
|
const SkeletonImage({
|
||||||
Key? key,
|
Key? key,
|
||||||
required this.imageUrl,
|
required this.imageUrl,
|
||||||
this.width = 300,
|
|
||||||
this.height = 140,
|
|
||||||
this.borderRadius = DesignConfig.lowBorderRadius,
|
this.borderRadius = DesignConfig.lowBorderRadius,
|
||||||
this.aspectRatio,
|
this.aspectRatio,
|
||||||
|
this.width,
|
||||||
|
this.height,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -30,13 +30,11 @@ class SkeletonImage extends StatelessWidget {
|
||||||
width: width,
|
width: width,
|
||||||
height: height,
|
height: height,
|
||||||
imageUrl: RequestHelper.baseUrl + imageUrl,
|
imageUrl: RequestHelper.baseUrl + imageUrl,
|
||||||
imageBuilder: (context, imageProvider) => Container(
|
imageBuilder: (context, imageProvider) => ClipRRect(
|
||||||
decoration: BoxDecoration(
|
borderRadius: borderRadius ?? DesignConfig.lowBorderRadius,
|
||||||
borderRadius: borderRadius ?? DesignConfig.lowBorderRadius,
|
child: Image(
|
||||||
image: DecorationImage(
|
image: imageProvider,
|
||||||
image: imageProvider,
|
fit: BoxFit.cover,
|
||||||
fit: BoxFit.cover,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
progressIndicatorBuilder: (context, url, progress) =>
|
progressIndicatorBuilder: (context, url, progress) =>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue