diff --git a/ios/Flutter/.last_build_id b/ios/Flutter/.last_build_id
index 9482910a..528604ac 100644
--- a/ios/Flutter/.last_build_id
+++ b/ios/Flutter/.last_build_id
@@ -1 +1 @@
-6584a396d0abc5ca0aed64b9b1c06b3d
\ No newline at end of file
+dd448b9c97933af58f6a55258c72b577
\ No newline at end of file
diff --git a/ios/Podfile b/ios/Podfile
index 02cc456f..fb925943 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -1,5 +1,5 @@
# 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.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@@ -10,85 +10,33 @@ project 'Runner', {
'Release' => :release,
}
-def parse_KV_file(file, separator='=')
- file_abs_path = File.expand_path(file)
- if !File.exists? file_abs_path
- return [];
+def flutter_root
+ generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
+ unless File.exist?(generated_xcode_build_settings_path)
+ raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
- generated_key_values = {}
- skip_line_start_symbols = ["#", "/"]
- File.foreach(file_abs_path) do |line|
- next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
- plugin = line.split(pattern=separator)
- if plugin.length == 2
- podname = plugin[0].strip()
- path = plugin[1].strip()
- podpath = File.expand_path("#{path}", file_abs_path)
- generated_key_values[podname] = podpath
- else
- puts "Invalid plugin specification: #{line}"
- end
+
+ File.foreach(generated_xcode_build_settings_path) do |line|
+ matches = line.match(/FLUTTER_ROOT\=(.*)/)
+ return matches[1].strip if matches
end
- generated_key_values
+ raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end
+require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
+
+flutter_ios_podfile_setup
+
target 'Runner' do
use_frameworks!
use_modular_headers!
-
- # Flutter Pod
-
- copied_flutter_dir = File.join(__dir__, 'Flutter')
- copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')
- copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')
- unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
- # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
- # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
- # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.
-
- generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')
- unless File.exist?(generated_xcode_build_settings_path)
- raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"
- end
- generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
- cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];
-
- unless File.exist?(copied_framework_path)
- FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)
- end
- unless File.exist?(copied_podspec_path)
- FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)
- end
- end
-
- # Keep pod path relative so it can be checked into Podfile.lock.
- pod 'Flutter', :path => 'Flutter'
pod 'SQLCipher'
- # Plugin Pods
-
- # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
- # referring to absolute paths on developers' machines.
- system('rm -rf .symlinks')
- system('mkdir -p .symlinks/plugins')
- plugin_pods = parse_KV_file('../.flutter-plugins')
- plugin_pods.each do |name, path|
- symlink = File.join('.symlinks', 'plugins', name)
- File.symlink(path, symlink)
- pod name, :path => File.join(symlink, 'ios')
- end
+ flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
-# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
-install! 'cocoapods', :disable_input_output_paths => true
-
post_install do |installer|
installer.pods_project.targets.each do |target|
- target.build_configurations.each do |config|
- config.build_settings['ENABLE_BITCODE'] = 'NO'
- end
+ flutter_additional_ios_build_settings(target)
end
end
-
-# add pods for desired Firebase products
-# https://firebase.google.com/docs/ios/setup#available-pods
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 4dd3b827..a040a43c 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -1,39 +1,39 @@
PODS:
+ - android_path_provider (0.0.1):
+ - Flutter
- disk_space (0.0.1):
- Flutter
- - DKImagePickerController/Core (4.2.2):
+ - DKImagePickerController/Core (4.3.2):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- - DKImagePickerController/ImageDataManager (4.2.2)
- - DKImagePickerController/PhotoGallery (4.2.2):
+ - DKImagePickerController/ImageDataManager (4.3.2)
+ - DKImagePickerController/PhotoGallery (4.3.2):
- DKImagePickerController/Core
- DKPhotoGallery
- - DKImagePickerController/Resource (4.2.2)
- - DKPhotoGallery (0.0.14):
- - DKPhotoGallery/Core (= 0.0.14)
- - DKPhotoGallery/Model (= 0.0.14)
- - DKPhotoGallery/Preview (= 0.0.14)
- - DKPhotoGallery/Resource (= 0.0.14)
+ - DKImagePickerController/Resource (4.3.2)
+ - DKPhotoGallery (0.0.17):
+ - DKPhotoGallery/Core (= 0.0.17)
+ - DKPhotoGallery/Model (= 0.0.17)
+ - DKPhotoGallery/Preview (= 0.0.17)
+ - DKPhotoGallery/Resource (= 0.0.17)
- SDWebImage
- - SDWebImageFLPlugin
- - DKPhotoGallery/Core (0.0.14):
+ - SwiftyGif
+ - DKPhotoGallery/Core (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- - SDWebImageFLPlugin
- - DKPhotoGallery/Model (0.0.14):
+ - SwiftyGif
+ - DKPhotoGallery/Model (0.0.17):
- SDWebImage
- - SDWebImageFLPlugin
- - DKPhotoGallery/Preview (0.0.14):
+ - SwiftyGif
+ - DKPhotoGallery/Preview (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- - SDWebImageFLPlugin
- - DKPhotoGallery/Resource (0.0.14):
+ - SwiftyGif
+ - DKPhotoGallery/Resource (0.0.17):
- SDWebImage
- - SDWebImageFLPlugin
- - file_chooser (0.0.1):
- - Flutter
+ - SwiftyGif
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
@@ -42,12 +42,10 @@ PODS:
- Firebase/Messaging (6.26.0):
- Firebase/CoreOnly
- FirebaseMessaging (~> 4.4.1)
- - firebase_core (0.5.0):
+ - firebase_core (0.5.0-1):
- Firebase/CoreOnly (~> 6.26.0)
- Flutter
- - firebase_core_web (0.1.0):
- - Flutter
- - firebase_messaging (7.0.2):
+ - firebase_messaging (7.0.3):
- Firebase/CoreOnly (~> 6.26.0)
- Firebase/Messaging (~> 6.26.0)
- firebase_core
@@ -58,8 +56,8 @@ PODS:
- FirebaseCoreDiagnosticsInterop (~> 1.2)
- GoogleUtilities/Environment (~> 6.5)
- GoogleUtilities/Logger (~> 6.5)
- - FirebaseCoreDiagnostics (1.6.0):
- - GoogleDataTransport (~> 7.2)
+ - FirebaseCoreDiagnostics (1.7.0):
+ - GoogleDataTransport (~> 7.4)
- GoogleUtilities/Environment (~> 6.7)
- GoogleUtilities/Logger (~> 6.7)
- nanopb (~> 1.30906.0)
@@ -83,7 +81,6 @@ PODS:
- GoogleUtilities/Reachability (~> 6.5)
- GoogleUtilities/UserDefaults (~> 6.5)
- Protobuf (>= 3.9.2, ~> 3.9)
- - FLAnimatedImage (1.0.12)
- Flutter (1.0.0)
- flutter_keyboard_visibility (0.0.1):
- Flutter
@@ -92,8 +89,6 @@ PODS:
- flutter_olm (0.0.1):
- Flutter
- OLMKit
- - flutter_plugin_android_lifecycle (0.0.1):
- - Flutter
- flutter_secure_storage (3.3.1):
- Flutter
- flutter_sound (0.0.1):
@@ -101,7 +96,7 @@ PODS:
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- - GoogleDataTransport (7.3.0):
+ - GoogleDataTransport (7.5.1):
- nanopb (~> 1.30906.0)
- GoogleUtilities/AppDelegateSwizzler (6.7.2):
- GoogleUtilities/Environment
@@ -140,31 +135,24 @@ PODS:
- Flutter
- path_provider (0.0.1):
- Flutter
- - path_provider_linux (0.0.1):
+ - "permission_handler (5.0.1+1)":
- Flutter
- - path_provider_macos (0.0.1):
- - Flutter
- - path_provider_windows (0.0.1):
- - Flutter
- - PromisesObjC (1.2.10)
+ - PromisesObjC (1.2.11)
- Protobuf (3.13.0)
- receive_sharing_intent (0.0.1):
- Flutter
- - SDWebImage (5.9.1):
- - SDWebImage/Core (= 5.9.1)
- - SDWebImage/Core (5.9.1)
- - SDWebImageFLPlugin (0.4.0):
- - FLAnimatedImage (>= 1.0.11)
- - SDWebImage/Core (~> 5.6)
+ - SDWebImage (5.9.5):
+ - SDWebImage/Core (= 5.9.5)
+ - SDWebImage/Core (5.9.5)
- share (0.0.1):
- Flutter
- - sqflite (0.0.1):
+ - sqflite (0.0.2):
- Flutter
- - FMDB (~> 2.7.2)
- - SQLCipher (4.4.0):
- - SQLCipher/standard (= 4.4.0)
- - SQLCipher/common (4.4.0)
- - SQLCipher/standard (4.4.0):
+ - FMDB (>= 2.7.5)
+ - SQLCipher (4.4.1):
+ - SQLCipher/standard (= 4.4.1)
+ - SQLCipher/common (4.4.1)
+ - SQLCipher/standard (4.4.1):
- SQLCipher/common
- sqlite3 (3.32.3):
- sqlite3/common (= 3.32.3)
@@ -184,31 +172,22 @@ PODS:
- sqlite3/json1
- sqlite3/perf-threadsafe
- sqlite3/rtree
+ - SwiftyGif (5.3.0)
- url_launcher (0.0.1):
- Flutter
- - url_launcher_linux (0.0.1):
- - Flutter
- - url_launcher_macos (0.0.1):
- - Flutter
- - url_launcher_web (0.0.1):
- - Flutter
- - url_launcher_windows (0.0.1):
- - Flutter
- webview_flutter (0.0.1):
- Flutter
DEPENDENCIES:
+ - android_path_provider (from `.symlinks/plugins/android_path_provider/ios`)
- disk_space (from `.symlinks/plugins/disk_space/ios`)
- - file_chooser (from `.symlinks/plugins/file_chooser/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- - firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`)
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
- Flutter (from `Flutter`)
- flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_olm (from `.symlinks/plugins/flutter_olm/ios`)
- - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
- flutter_sound (from `.symlinks/plugins/flutter_sound/ios`)
- image_picker (from `.symlinks/plugins/image_picker/ios`)
@@ -216,19 +195,13 @@ DEPENDENCIES:
- open_file (from `.symlinks/plugins/open_file/ios`)
- package_info (from `.symlinks/plugins/package_info/ios`)
- path_provider (from `.symlinks/plugins/path_provider/ios`)
- - path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`)
- - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`)
- - path_provider_windows (from `.symlinks/plugins/path_provider_windows/ios`)
+ - permission_handler (from `.symlinks/plugins/permission_handler/ios`)
- receive_sharing_intent (from `.symlinks/plugins/receive_sharing_intent/ios`)
- share (from `.symlinks/plugins/share/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- SQLCipher
- sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/ios`)
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
- - url_launcher_linux (from `.symlinks/plugins/url_launcher_linux/ios`)
- - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`)
- - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`)
- - url_launcher_windows (from `.symlinks/plugins/url_launcher_windows/ios`)
- webview_flutter (from `.symlinks/plugins/webview_flutter/ios`)
SPEC REPOS:
@@ -243,7 +216,6 @@ SPEC REPOS:
- FirebaseInstallations
- FirebaseInstanceID
- FirebaseMessaging
- - FLAnimatedImage
- FMDB
- GoogleDataTransport
- GoogleUtilities
@@ -252,21 +224,19 @@ SPEC REPOS:
- PromisesObjC
- Protobuf
- SDWebImage
- - SDWebImageFLPlugin
- SQLCipher
- sqlite3
+ - SwiftyGif
EXTERNAL SOURCES:
+ android_path_provider:
+ :path: ".symlinks/plugins/android_path_provider/ios"
disk_space:
:path: ".symlinks/plugins/disk_space/ios"
- file_chooser:
- :path: ".symlinks/plugins/file_chooser/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
firebase_core:
:path: ".symlinks/plugins/firebase_core/ios"
- firebase_core_web:
- :path: ".symlinks/plugins/firebase_core_web/ios"
firebase_messaging:
:path: ".symlinks/plugins/firebase_messaging/ios"
Flutter:
@@ -277,8 +247,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_olm:
:path: ".symlinks/plugins/flutter_olm/ios"
- flutter_plugin_android_lifecycle:
- :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
flutter_secure_storage:
:path: ".symlinks/plugins/flutter_secure_storage/ios"
flutter_sound:
@@ -293,12 +261,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/package_info/ios"
path_provider:
:path: ".symlinks/plugins/path_provider/ios"
- path_provider_linux:
- :path: ".symlinks/plugins/path_provider_linux/ios"
- path_provider_macos:
- :path: ".symlinks/plugins/path_provider_macos/ios"
- path_provider_windows:
- :path: ".symlinks/plugins/path_provider_windows/ios"
+ permission_handler:
+ :path: ".symlinks/plugins/permission_handler/ios"
receive_sharing_intent:
:path: ".symlinks/plugins/receive_sharing_intent/ios"
share:
@@ -309,44 +273,33 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/sqlite3_flutter_libs/ios"
url_launcher:
:path: ".symlinks/plugins/url_launcher/ios"
- url_launcher_linux:
- :path: ".symlinks/plugins/url_launcher_linux/ios"
- url_launcher_macos:
- :path: ".symlinks/plugins/url_launcher_macos/ios"
- url_launcher_web:
- :path: ".symlinks/plugins/url_launcher_web/ios"
- url_launcher_windows:
- :path: ".symlinks/plugins/url_launcher_windows/ios"
webview_flutter:
:path: ".symlinks/plugins/webview_flutter/ios"
SPEC CHECKSUMS:
+ android_path_provider: 708a32098dc3da99e5d0c09ec6a485833a07d28a
disk_space: e94d34bbdf77954adfb39e60bde9cc5c7233eda6
- DKImagePickerController: 4a3e7948a848c4348e600b3fe5ce41478835fa10
- DKPhotoGallery: 0290d32343574f06eaa4c26f8f2f8a1035e916be
- file_chooser: 98943893422baaed80ca2415390aec58f01ea192
+ DKImagePickerController: b5eb7f7a388e4643264105d648d01f727110fc3d
+ DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
file_picker: 3e6c3790de664ccf9b882732d9db5eaf6b8d4eb1
Firebase: 7cf5f9c67f03cb3b606d1d6535286e1080e57eb6
- firebase_core: 3134fe79d257d430f163b558caf52a10a87efe8a
- firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1
- firebase_messaging: 2844c37f9ce87c0904b38fe435223161b1a71528
+ firebase_core: 00e54a4744164a6b5a250b96dd1ad5afaba7a342
+ firebase_messaging: 666d9994651b1ecf8c582b52dd913f3fa58c17ef
FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae
FirebaseCore: f42e5e5f382cdcf6b617ed737bf6c871a6947b17
- FirebaseCoreDiagnostics: 7415bfb3883b3500c5a95c42b6ba66baae78f600
+ FirebaseCoreDiagnostics: 770ac5958e1372ce67959ae4b4f31d8e127c3ac1
FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850
FirebaseInstallations: 6f5f680e65dc374397a483c32d1799ba822a395b
FirebaseInstanceID: cef67c4967c7cecb56ea65d8acbb4834825c587b
FirebaseMessaging: 29543feb343b09546ab3aa04d008ee8595b43c44
- FLAnimatedImage: 4a0b56255d9b05f18b6dd7ee06871be5d3b89e31
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
- flutter_local_notifications: 9e4738ce2471c5af910d961a6b7eadcf57c50186
+ flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743
flutter_olm: be36ebeb6388f7d7b3097d39feaf459a3cad2091
- flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec
flutter_sound: 0e8163ceac1e00eb6d894e2ae4641ba726a2c479
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
- GoogleDataTransport: e85fb700c9b027079ce182c3d08e12e0f9618bb4
+ GoogleDataTransport: f56af7caa4ed338dc8e138a5d7c5973e66440833
GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3
image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
nanopb: 59317e09cf1f1a0af72f12af412d54edf52603fc
@@ -355,26 +308,20 @@ SPEC CHECKSUMS:
open_file: 02eb5cb6b21264bd3a696876f5afbfb7ca4f4b7d
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
- path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4
- path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0
- path_provider_windows: a2b81600c677ac1959367280991971cb9a1edb3b
- PromisesObjC: b14b1c6b68e306650688599de8a45e49fae81151
+ permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6
+ PromisesObjC: 8c196f5a328c2cba3e74624585467a557dcb482f
Protobuf: 3dac39b34a08151c6d949560efe3f86134a3f748
receive_sharing_intent: c0d87310754e74c0f9542947e7cbdf3a0335a3b1
- SDWebImage: a990c053fff71e388a10f3357edb0be17929c9c5
- SDWebImageFLPlugin: 6c2295fb1242d44467c6c87dc5db6b0a13228fd8
+ SDWebImage: 0b2ba0d56479bf6a45ecddbfd5558bea93150d25
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
- sqflite: 4001a31ff81d210346b500c55b17f4d6c7589dd0
- SQLCipher: e434ed542b24f38ea7b36468a13f9765e1b5c072
+ sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
+ SQLCipher: 0b81a39b21247c559c52c3bd2234808e626c008b
sqlite3: 8f7d2078ae27778699a622a94b853285793422a2
sqlite3_flutter_libs: 5651f8ff48e3b44d910863c4ea5916085b1b245f
+ SwiftyGif: e466e86c660d343357ab944a819a101c4127cb40
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
- url_launcher_linux: ac237cb7a8058736e4aae38bdbcc748a4b394cc0
- url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313
- url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c
- url_launcher_windows: 683d7c283894db8d1914d3ab2223b20cc1ad95d5
webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96
-PODFILE CHECKSUM: 4b647f92a1fa32e6a4287abfd67897564ceda4e9
+PODFILE CHECKSUM: 98265b4e989e5e1e991bc8f97bc358d0dd616061
-COCOAPODS: 1.9.3
+COCOAPODS: 1.10.0
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 190a43d2..e437b11b 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -263,9 +263,74 @@
files = (
);
inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
+ "${BUILT_PRODUCTS_DIR}/DKImagePickerController/DKImagePickerController.framework",
+ "${BUILT_PRODUCTS_DIR}/DKPhotoGallery/DKPhotoGallery.framework",
+ "${BUILT_PRODUCTS_DIR}/FMDB/FMDB.framework",
+ "${PODS_ROOT}/../Flutter/Flutter.framework",
+ "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
+ "${BUILT_PRODUCTS_DIR}/OLMKit/OLMKit.framework",
+ "${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework",
+ "${BUILT_PRODUCTS_DIR}/Protobuf/Protobuf.framework",
+ "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework",
+ "${BUILT_PRODUCTS_DIR}/SQLCipher/SQLCipher.framework",
+ "${BUILT_PRODUCTS_DIR}/SwiftyGif/SwiftyGif.framework",
+ "${BUILT_PRODUCTS_DIR}/android_path_provider/android_path_provider.framework",
+ "${BUILT_PRODUCTS_DIR}/disk_space/disk_space.framework",
+ "${BUILT_PRODUCTS_DIR}/file_picker/file_picker.framework",
+ "${BUILT_PRODUCTS_DIR}/flutter_keyboard_visibility/flutter_keyboard_visibility.framework",
+ "${BUILT_PRODUCTS_DIR}/flutter_local_notifications/flutter_local_notifications.framework",
+ "${BUILT_PRODUCTS_DIR}/flutter_olm/flutter_olm.framework",
+ "${BUILT_PRODUCTS_DIR}/flutter_secure_storage/flutter_secure_storage.framework",
+ "${BUILT_PRODUCTS_DIR}/flutter_sound/flutter_sound.framework",
+ "${BUILT_PRODUCTS_DIR}/image_picker/image_picker.framework",
+ "${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
+ "${BUILT_PRODUCTS_DIR}/native_imaging/native_imaging.framework",
+ "${BUILT_PRODUCTS_DIR}/open_file/open_file.framework",
+ "${BUILT_PRODUCTS_DIR}/package_info/package_info.framework",
+ "${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework",
+ "${BUILT_PRODUCTS_DIR}/receive_sharing_intent/receive_sharing_intent.framework",
+ "${BUILT_PRODUCTS_DIR}/share/share.framework",
+ "${BUILT_PRODUCTS_DIR}/sqflite/sqflite.framework",
+ "${BUILT_PRODUCTS_DIR}/sqlite3/sqlite3.framework",
+ "${BUILT_PRODUCTS_DIR}/sqlite3_flutter_libs/sqlite3_flutter_libs.framework",
+ "${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework",
+ "${BUILT_PRODUCTS_DIR}/webview_flutter/webview_flutter.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DKImagePickerController.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DKPhotoGallery.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FMDB.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OLMKit.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Protobuf.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SQLCipher.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyGif.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/android_path_provider.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/disk_space.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_picker.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_keyboard_visibility.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_local_notifications.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_olm.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_sound.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_picker.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/native_imaging.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/open_file.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/package_info.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/receive_sharing_intent.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqflite.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqlite3_flutter_libs.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/webview_flutter.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift
index 70693e4a..9413c697 100644
--- a/ios/Runner/AppDelegate.swift
+++ b/ios/Runner/AppDelegate.swift
@@ -8,6 +8,9 @@ import Flutter
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
+ if #available(iOS 10.0, *) {
+ UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
+ }
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 94d01ab9..39847472 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -31,6 +31,7 @@
UIBackgroundModes
audio
+ remote-notification
UILaunchStoryboardName
LaunchScreen
diff --git a/lib/components/list_items/chat_list_item.dart b/lib/components/list_items/chat_list_item.dart
index 0a788eb1..bc11c4bc 100644
--- a/lib/components/list_items/chat_list_item.dart
+++ b/lib/components/list_items/chat_list_item.dart
@@ -18,6 +18,8 @@ import '../matrix.dart';
import '../mouse_over_builder.dart';
import '../theme_switcher.dart';
+enum ArchivedRoomAction { delete, rejoin }
+
class ChatListItem extends StatelessWidget {
final Room room;
final bool activeChat;
@@ -51,37 +53,33 @@ class ChatListItem extends StatelessWidget {
}
if (room.membership == Membership.leave) {
- await showDialog(
+ final action = await showModalActionSheet(
context: context,
- builder: (BuildContext context) => AlertDialog(
- title: Text(L10n.of(context).archivedRoom),
- content: Text(L10n.of(context).thisRoomHasBeenArchived),
- actions: [
- FlatButton(
- child: Text(L10n.of(context).close.toUpperCase(),
- style: TextStyle(color: Colors.blueGrey)),
- onPressed: () => Navigator.of(context).pop(),
- ),
- FlatButton(
- child: Text(L10n.of(context).delete.toUpperCase(),
- style: TextStyle(color: Colors.red)),
- onPressed: () async {
- await archiveAction(context);
- await Navigator.of(context).pop();
- },
- ),
- FlatButton(
- child: Text(L10n.of(context).rejoin.toUpperCase(),
- style: TextStyle(color: Colors.blue)),
- onPressed: () async {
- await SimpleDialogs(context)
- .tryRequestWithLoadingDialog(room.join());
- await Navigator.of(context).pop();
- },
- ),
- ],
- ),
+ title: L10n.of(context).archivedRoom,
+ message: L10n.of(context).thisRoomHasBeenArchived,
+ actions: [
+ SheetAction(
+ label: L10n.of(context).rejoin,
+ key: ArchivedRoomAction.rejoin,
+ ),
+ SheetAction(
+ label: L10n.of(context).delete,
+ key: ArchivedRoomAction.delete,
+ isDestructiveAction: true,
+ ),
+ ],
);
+ if (action != null) {
+ switch (action) {
+ case ArchivedRoomAction.delete:
+ await archiveAction(context);
+ break;
+ case ArchivedRoomAction.rejoin:
+ await SimpleDialogs(context)
+ .tryRequestWithLoadingDialog(room.join());
+ break;
+ }
+ }
}
if (room.membership == Membership.join) {
diff --git a/lib/utils/matrix_file_extension.dart b/lib/utils/matrix_file_extension.dart
index d7daef3d..b8170a69 100644
--- a/lib/utils/matrix_file_extension.dart
+++ b/lib/utils/matrix_file_extension.dart
@@ -1,5 +1,6 @@
import 'dart:io';
+import 'package:android_path_provider/android_path_provider.dart';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:fluffychat/utils/platform_infos.dart';
import 'package:flutter/foundation.dart';
@@ -7,7 +8,6 @@ import 'package:open_file/open_file.dart';
import 'package:path_provider/path_provider.dart';
import 'package:universal_html/prefer_universal/html.dart' as html;
import 'package:mime_type/mime_type.dart';
-import 'package:downloads_path_provider_28/downloads_path_provider_28.dart';
import 'package:permission_handler/permission_handler.dart';
extension MatrixFileExtension on MatrixFile {
@@ -29,12 +29,12 @@ extension MatrixFileExtension on MatrixFile {
} else {
if (!(await Permission.storage.request()).isGranted) return;
final downloadsDir = PlatformInfos.isDesktop
- ? (await getDownloadsDirectory())
+ ? (await getDownloadsDirectory()).path
: Platform.isAndroid
- ? (await DownloadsPathProvider.downloadsDirectory)
- : (await getApplicationDocumentsDirectory());
+ ? (await AndroidPathProvider.downloadsPath)
+ : (await getApplicationDocumentsDirectory()).path;
- final file = File(downloadsDir.path + '/' + name.split('/').last);
+ final file = File(downloadsDir + '/' + name.split('/').last);
file.writeAsBytesSync(bytes);
await OpenFile.open(file.path);
}
diff --git a/pubspec.lock b/pubspec.lock
index 264088d6..63d350fb 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -22,6 +22,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.39.17"
+ android_path_provider:
+ dependency: "direct main"
+ description:
+ name: android_path_provider
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.1.1"
animations:
dependency: transitive
description:
@@ -190,13 +197,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.3"
- downloads_path_provider_28:
- dependency: "direct main"
- description:
- name: downloads_path_provider_28
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.1.0"
encrypt:
dependency: transitive
description:
diff --git a/pubspec.yaml b/pubspec.yaml
index 1a3f8a11..577c3873 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -35,7 +35,7 @@ dependencies:
# desktop_notifications: ^0.0.0-dev.4 // Currently blocked by: https://github.com/canonical/desktop_notifications.dart/issues/5
matrix_link_text: ^0.3.2
path_provider: ^1.6.24
- downloads_path_provider_28: ^0.1.0
+ android_path_provider: ^0.1.1
permission_handler: ^5.0.1+1
webview_flutter: ^1.0.7
share: ^0.6.5+4