@@ -1 +1 @@ | |||
{"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"agora_rtc_engine","dependencies":[]},{"name":"amap_location","dependencies":[]},{"name":"android_intent","dependencies":[]},{"name":"app_installer","dependencies":[]},{"name":"apple_sign_in","dependencies":[]},{"name":"audioplayer","dependencies":[]},{"name":"auto_orientation","dependencies":[]},{"name":"city_pickers","dependencies":[]},{"name":"connectivity","dependencies":[]},{"name":"easy_contact_picker","dependencies":[]},{"name":"file_picker","dependencies":[]},{"name":"flutter_app_badger","dependencies":[]},{"name":"flutter_audio_recorder","dependencies":[]},{"name":"flutter_bugly","dependencies":[]},{"name":"flutter_facebook_login","dependencies":[]},{"name":"flutter_ijkplayer","dependencies":[]},{"name":"flutter_inapp_purchase","dependencies":[]},{"name":"flutter_local_notifications","dependencies":[]},{"name":"flutter_native_image","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_qr_reader","dependencies":["image_picker"]},{"name":"flutter_webview_plugin","dependencies":[]},{"name":"fluwx_no_pay","dependencies":[]},{"name":"geolocator","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","dependencies":[]},{"name":"google_maps_flutter","dependencies":[]},{"name":"image_cropper","dependencies":[]},{"name":"image_gallery_saver","dependencies":[]},{"name":"image_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"jpush_flutter","dependencies":[]},{"name":"keyboard_utils","dependencies":[]},{"name":"location","dependencies":[]},{"name":"location_permissions","dependencies":[]},{"name":"open_file","dependencies":[]},{"name":"package_info","dependencies":[]},{"name":"path_provider","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"photo_manager","dependencies":[]},{"name":"receive_sharing_intent","dependencies":[]},{"name":"share","dependencies":[]},{"name":"share_extend","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":[]},{"name":"video_player","dependencies":[]},{"name":"video_thumbnail","dependencies":[]},{"name":"wifi_info_plugin","dependencies":[]}]} | |||
{"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"agora_rtc_engine","dependencies":[]},{"name":"amap_location","dependencies":[]},{"name":"android_intent","dependencies":[]},{"name":"app_installer","dependencies":[]},{"name":"apple_sign_in","dependencies":[]},{"name":"audioplayer","dependencies":[]},{"name":"auto_orientation","dependencies":[]},{"name":"city_pickers","dependencies":[]},{"name":"connectivity","dependencies":[]},{"name":"easy_contact_picker","dependencies":[]},{"name":"file_picker","dependencies":[]},{"name":"flutter_app_badger","dependencies":[]},{"name":"flutter_audio_recorder","dependencies":[]},{"name":"flutter_bugly","dependencies":[]},{"name":"flutter_facebook_login","dependencies":[]},{"name":"flutter_ijkplayer","dependencies":[]},{"name":"flutter_inapp_purchase","dependencies":[]},{"name":"flutter_local_notifications","dependencies":[]},{"name":"flutter_native_image","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_qr_reader","dependencies":["image_picker"]},{"name":"flutter_webview_plugin","dependencies":[]},{"name":"fluwx_no_pay","dependencies":[]},{"name":"geolocator","dependencies":["google_api_availability","location_permissions"]},{"name":"google_api_availability","dependencies":[]},{"name":"google_maps_flutter","dependencies":[]},{"name":"image_cropper","dependencies":[]},{"name":"image_gallery_saver","dependencies":[]},{"name":"image_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"jpush_flutter","dependencies":[]},{"name":"keyboard_utils","dependencies":[]},{"name":"location","dependencies":[]},{"name":"location_permissions","dependencies":[]},{"name":"multi_image_picker","dependencies":[]},{"name":"open_file","dependencies":[]},{"name":"package_info","dependencies":[]},{"name":"path_provider","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"photo_manager","dependencies":[]},{"name":"receive_sharing_intent","dependencies":[]},{"name":"share","dependencies":[]},{"name":"share_extend","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":[]},{"name":"video_player","dependencies":[]},{"name":"video_thumbnail","dependencies":[]},{"name":"wifi_info_plugin","dependencies":[]}]} |
@@ -56,9 +56,9 @@ android { | |||
// manifestPlaceholders = [ | |||
// AMAP_KEY : "1fd4e93e3b4b13747da41f484c955fe2", /// 高德地图key | |||
// ] | |||
// ndk { | |||
// abiFilters 'armeabi-v7a' | |||
// } | |||
// ndk { | |||
// abiFilters 'armeabi-v7a' | |||
// } | |||
multiDexEnabled true | |||
manifestPlaceholders = [ | |||
JPUSH_PKGNAME : 'com.cyhd.henhoandroid', | |||
@@ -108,6 +108,11 @@ flutter { | |||
} | |||
subprojects { | |||
if (project.hasProperty("android")) { | |||
android { | |||
compileSdkVersion 28 | |||
} | |||
} | |||
project.configurations.all { | |||
resolutionStrategy.eachDependency { details -> | |||
if (details.requested.group == 'com.android.support' | |||
@@ -125,7 +130,6 @@ subprojects { | |||
dependencies { | |||
testImplementation 'junit:junit:4.12' | |||
androidTestImplementation 'com.android.support.test:runner:1.0.2' | |||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' | |||
@@ -68,6 +68,9 @@ subprojects { | |||
if (details.requested.group == 'androidx.annotation') { | |||
details.useVersion "1.1.0" | |||
} | |||
if (details.requested.group == 'androidx.cardview') { | |||
details.useVersion "1.0.0" | |||
} | |||
} | |||
@@ -1,8 +1,8 @@ | |||
#!/bin/sh | |||
# This is a generated file; do not edit or check into version control. | |||
export "FLUTTER_ROOT=/Users/random/sdk/flutter_sdk" | |||
export "FLUTTER_APPLICATION_PATH=/Users/random/code/flutter/project/Hibok" | |||
export "FLUTTER_TARGET=/Users/random/code/flutter/project/Hibok/lib/main.dart" | |||
export "FLUTTER_APPLICATION_PATH=/Users/random/code/flutter/project/hibok" | |||
export "FLUTTER_TARGET=/Users/random/code/flutter/project/hibok/lib/main.dart" | |||
export "FLUTTER_BUILD_DIR=build" | |||
export "SYMROOT=${SOURCE_ROOT}/../build/ios" | |||
export "FLUTTER_FRAMEWORK_DIR=/Users/random/sdk/flutter_sdk/bin/cache/artifacts/engine/ios" | |||
@@ -19,6 +19,11 @@ PODS: | |||
- Flutter | |||
- auto_orientation (0.0.1): | |||
- Flutter | |||
- BSGridCollectionViewLayout (1.2.5) | |||
- BSImagePicker (2.10.3): | |||
- BSGridCollectionViewLayout (= 1.2.5) | |||
- BSImageView (= 1.0.3) | |||
- BSImageView (1.0.3) | |||
- Bugly (2.5.2) | |||
- city_pickers (0.0.1): | |||
- Flutter | |||
@@ -112,6 +117,9 @@ PODS: | |||
- Flutter | |||
- location_permissions (2.0.3): | |||
- Flutter | |||
- multi_image_picker (4.6.4): | |||
- BSImagePicker (~> 2.10.3) | |||
- Flutter | |||
- open_file (0.0.1): | |||
- Flutter | |||
- package_info (0.0.1): | |||
@@ -184,6 +192,7 @@ DEPENDENCIES: | |||
- keyboard_utils (from `.symlinks/plugins/keyboard_utils/ios`) | |||
- location (from `.symlinks/plugins/location/ios`) | |||
- location_permissions (from `.symlinks/plugins/location_permissions/ios`) | |||
- multi_image_picker (from `.symlinks/plugins/multi_image_picker/ios`) | |||
- open_file (from `.symlinks/plugins/open_file/ios`) | |||
- package_info (from `.symlinks/plugins/package_info/ios`) | |||
- path_provider (from `.symlinks/plugins/path_provider/ios`) | |||
@@ -206,6 +215,9 @@ SPEC REPOS: | |||
- AgoraRtcEngine_iOS | |||
- AMapFoundation | |||
- AMapLocation | |||
- BSGridCollectionViewLayout | |||
- BSImagePicker | |||
- BSImageView | |||
- Bugly | |||
- FBSDKCoreKit | |||
- FBSDKLoginKit | |||
@@ -287,6 +299,8 @@ EXTERNAL SOURCES: | |||
:path: ".symlinks/plugins/location/ios" | |||
location_permissions: | |||
:path: ".symlinks/plugins/location_permissions/ios" | |||
multi_image_picker: | |||
:path: ".symlinks/plugins/multi_image_picker/ios" | |||
open_file: | |||
:path: ".symlinks/plugins/open_file/ios" | |||
package_info: | |||
@@ -331,6 +345,9 @@ SPEC CHECKSUMS: | |||
apple_sign_in: 7716c7ddfa195aeab7dec0dc374ef4ff45d1adb4 | |||
audioplayer: f4462b84216b9c55f02bbbdc7ab60eec7427b2d4 | |||
auto_orientation: 2941c44ebe5c3d41016001597ab03e81a92a26ce | |||
BSGridCollectionViewLayout: 333dcb457a5a3bdd9212607ab5756553dcfe06cb | |||
BSImagePicker: 07404254f2fcdaf5a2eb403c0f8c337267ce8738 | |||
BSImageView: a149459433a2687157d034c78e059d30ac7f2544 | |||
Bugly: dbac48b55ad469a97cc4321045cd50df8f63d44f | |||
city_pickers: b0370f4c35c201723b5b7fcce10ec29b59d5bc35 | |||
connectivity: 6e94255659cc86dcbef1d452ad3e0491bb1b3e75 | |||
@@ -367,6 +384,7 @@ SPEC CHECKSUMS: | |||
libwebp: 057912d6d0abfb6357d8bb05c0ea470301f5d61e | |||
location: 3a2eed4dd2fab25e7b7baf2a9efefe82b512d740 | |||
location_permissions: 195ff2a1182fa9029ef3f2653156961ee5a1e40b | |||
multi_image_picker: 1651732277b2db3b09e83f3be8eb7ea65cf2a933 | |||
open_file: 02eb5cb6b21264bd3a696876f5afbfb7ca4f4b7d | |||
package_info: 48b108e75b8802c2d5e126f208ef540561c98aef | |||
path_provider: fb74bd0465e96b594bb3b5088ee4a4e7bb1f2a9d | |||
@@ -244,8 +244,8 @@ | |||
9705A1C41CF9048500538489 /* Embed Frameworks */, | |||
3B06AD1E1E4923F5004D2608 /* Thin Binary */, | |||
74E44EF25DBCD813164B0D15 /* [CP] Embed Pods Frameworks */, | |||
72C47CA77DA3D0C2C0859F91 /* [CP] Copy Pods Resources */, | |||
5C95C0992406514F00CEBCE3 /* Embed App Extensions */, | |||
3DE22D2D9939DF611C2BA757 /* [CP] Copy Pods Resources */, | |||
); | |||
buildRules = ( | |||
); | |||
@@ -366,7 +366,7 @@ | |||
shellPath = /bin/sh; | |||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; | |||
}; | |||
72C47CA77DA3D0C2C0859F91 /* [CP] Copy Pods Resources */ = { | |||
3DE22D2D9939DF611C2BA757 /* [CP] Copy Pods Resources */ = { | |||
isa = PBXShellScriptBuildPhase; | |||
buildActionMask = 2147483647; | |||
files = ( | |||
@@ -13,6 +13,7 @@ import 'package:chat/proto/chat.pb.dart'; | |||
import 'package:chat/r.dart'; | |||
import 'package:chat/utils/CustomUI.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/file_cache_mgr.dart'; | |||
import 'package:chat/utils/image_util.dart'; | |||
import 'package:chat/utils/keyboard_utils.dart'; | |||
import 'package:chat/utils/msgHandler.dart'; | |||
@@ -20,6 +21,7 @@ import 'package:chat/utils/screen.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:flutter/services.dart'; | |||
import 'package:flutter_screenutil/flutter_screenutil.dart'; | |||
import 'package:multi_image_picker/multi_image_picker.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:photo_manager/photo_manager.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
@@ -149,19 +151,52 @@ class _CompanyServerPageState extends State<CompanyServerPage> { | |||
} | |||
void _openPhotoView() async { | |||
var photos = await PhotoPicker.pickAsset( | |||
context: context, | |||
themeColor: Color(0xFFF0F0F0), | |||
textColor: Color(0xFF3F3F3F), | |||
pickType: PickType.onlyImage); | |||
if (photos != null && photos.length > 0) { | |||
for (var i = 0; i < photos.length; i++) { | |||
AssetEntity photoEntity = photos[i]; | |||
var file = await photoEntity.file; | |||
_sendPhotoFile(file); | |||
List<Asset> resultList = List<Asset>(); | |||
try { | |||
resultList = await MultiImagePicker.pickImages( | |||
maxImages: 9, | |||
enableCamera: false, | |||
selectedAssets: [], | |||
cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"), | |||
materialOptions: MaterialOptions( | |||
actionBarColor: "#50A7F9", | |||
actionBarTitle: "Hibok", | |||
allViewTitle: "", | |||
useDetailsView: false, | |||
selectCircleStrokeColor: "#000000", | |||
), | |||
); | |||
if (resultList != null && resultList.length > 0) { | |||
for (var i = 0; i < resultList.length; i++) { | |||
Asset photoEntity = resultList[i]; | |||
ByteData byteData = await photoEntity.getByteData(); | |||
File file = await FileCacheMgr().writeFile('temp-photo-${DateTime.now().millisecondsSinceEpoch}-$i', byteData.buffer.asInt8List(0)); | |||
_sendPhotoFile(file); | |||
} | |||
} | |||
} on Exception catch (e) { | |||
print(e.toString()); | |||
} | |||
// var photos = await PhotoPicker.pickAsset( | |||
// context: context, | |||
// themeColor: Color(0xFFF0F0F0), | |||
// textColor: Color(0xFF3F3F3F), | |||
// pickType: PickType.onlyImage); | |||
// | |||
// if (photos != null && photos.length > 0) { | |||
// for (var i = 0; i < photos.length; i++) { | |||
// AssetEntity photoEntity = photos[i]; | |||
// var file = await photoEntity.file; | |||
// _sendPhotoFile(file); | |||
// } | |||
// } | |||
} | |||
void _sendPhotoFile(File imgFile) async { | |||
@@ -18,6 +18,7 @@ import 'package:chat/photo/photo.dart'; | |||
import 'package:chat/proto/all.pbserver.dart'; | |||
import 'package:chat/utils/CustomUI.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/file_cache_mgr.dart'; | |||
import 'package:chat/utils/group_member_model.dart'; | |||
import 'package:chat/utils/image_util.dart'; | |||
import 'package:chat/utils/keyboard_utils.dart'; | |||
@@ -28,6 +29,7 @@ import 'package:extended_text_field/extended_text_field.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:flutter/services.dart'; | |||
import 'package:flutter_screenutil/flutter_screenutil.dart'; | |||
import 'package:multi_image_picker/multi_image_picker.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:photo_manager/photo_manager.dart'; | |||
import 'package:provider/provider.dart'; | |||
@@ -685,20 +687,51 @@ class InputBarState extends State<InputBar> | |||
// Provider.of<KeyboardIndexProvider>(context, listen: false) | |||
// .changeSelectIndex(4); | |||
var photos = await PhotoPicker.pickAsset( | |||
context: context, | |||
themeColor: Color(0xFFF0F0F0), | |||
textColor: Color(0xFF3F3F3F), | |||
pickType: PickType.onlyImage); | |||
if (photos != null && photos.length > 0) { | |||
for (var i = 0; i < photos.length; i++) { | |||
AssetEntity photoEntity = photos[i]; | |||
var file = await photoEntity.file; | |||
_sendPhotoFile(file); | |||
List<Asset> resultList = List<Asset>(); | |||
try { | |||
resultList = await MultiImagePicker.pickImages( | |||
maxImages: 9, | |||
enableCamera: false, | |||
selectedAssets: [], | |||
cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"), | |||
materialOptions: MaterialOptions( | |||
actionBarColor: "#50A7F9", | |||
actionBarTitle: "Hibok", | |||
allViewTitle: "", | |||
useDetailsView: false, | |||
selectCircleStrokeColor: "#000000", | |||
), | |||
); | |||
if (resultList != null && resultList.length > 0) { | |||
for (var i = 0; i < resultList.length; i++) { | |||
Asset photoEntity = resultList[i]; | |||
ByteData byteData = await photoEntity.getByteData(); | |||
File file = await FileCacheMgr().writeFile('temp-photo-${DateTime.now().millisecondsSinceEpoch}-$i', byteData.buffer.asInt8List(0)); | |||
_sendPhotoFile(file); | |||
} | |||
} | |||
} on Exception catch (e) { | |||
print(e.toString()); | |||
} | |||
// var photos = await PhotoPicker.pickAsset( | |||
// context: context, | |||
// themeColor: Color(0xFFF0F0F0), | |||
// textColor: Color(0xFF3F3F3F), | |||
// pickType: PickType.onlyImage); | |||
// | |||
// if (photos != null && photos.length > 0) { | |||
// for (var i = 0; i < photos.length; i++) { | |||
// AssetEntity photoEntity = photos[i]; | |||
// var file = await photoEntity.file; | |||
// _sendPhotoFile(file); | |||
// } | |||
// } | |||
///防止再点键盘不谈 | |||
} | |||
@@ -19,6 +19,7 @@ import 'package:chat/utils/CustomUI.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/MessageMgr.dart'; | |||
import 'package:chat/utils/PicSwiper.dart'; | |||
import 'package:chat/utils/file_cache_mgr.dart'; | |||
import 'package:chat/utils/keyboard/bottom_area_avoider.dart'; | |||
import 'package:chat/utils/keyboard_utils.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
@@ -27,6 +28,7 @@ import 'package:extended_text_field/extended_text_field.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:flutter/services.dart'; | |||
import 'package:flutter_screenutil/flutter_screenutil.dart'; | |||
import 'package:multi_image_picker/multi_image_picker.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:photo_manager/photo_manager.dart'; | |||
@@ -710,30 +712,68 @@ class _AddProgramState extends State<AddProgram> { | |||
void _sendPicture() async { | |||
closeEmojiAction(); | |||
var photos = await PhotoPicker.pickAsset( | |||
context: context, | |||
themeColor: Color(0xFFF0F0F0), | |||
maxSelected: Max_Img_Num - imgUrlList.length, | |||
textColor: Color(0xFF3F3F3F), | |||
pickType: PickType.onlyImage); | |||
if (photos != null && photos.length > 0) { | |||
List<File> fileList = []; | |||
for (var i = 0; i < photos.length; i++) { | |||
AssetEntity photoEntity = photos[i]; | |||
fileList.add(await photoEntity.file); | |||
} | |||
Map data = {"type": 3, "userId": UserData().basicInfo.userId}; | |||
data['sign'] = TokenMgr().getSign(data); | |||
Response res = await HttpUtil().uploadFiles( | |||
fileList, data, 'upload/post/postfiles', 'image', | |||
isShowLoading: true); | |||
var resData = res.data; | |||
if (resData['code'] == 0 && resData['msg'] != null) { | |||
imgUrlList.addAll(resData['msg'].split("|")); | |||
setState(() {}); | |||
List<Asset> resultList = List<Asset>(); | |||
resultList = await MultiImagePicker.pickImages( | |||
maxImages: Max_Img_Num - imgUrlList.length, | |||
enableCamera: false, | |||
selectedAssets: [], | |||
cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"), | |||
materialOptions: MaterialOptions( | |||
actionBarColor: "#50A7F9", | |||
actionBarTitle: "Hibok", | |||
allViewTitle: "", | |||
useDetailsView: false, | |||
selectCircleStrokeColor: "#000000", | |||
), | |||
); | |||
if (resultList != null && resultList.length > 0) { | |||
List<File> fileList = []; | |||
for (var i = 0; i < resultList.length; i++) { | |||
Asset photoEntity = resultList[i]; | |||
ByteData byteData = await photoEntity.getByteData(); | |||
File file = await FileCacheMgr().writeFile('temp-photo-${DateTime.now().millisecondsSinceEpoch}-$i', byteData.buffer.asInt8List(0)); | |||
fileList.add(file); | |||
} | |||
Map data = {"type": 3, "userId": UserData().basicInfo.userId}; | |||
data['sign'] = TokenMgr().getSign(data); | |||
Response res = await HttpUtil().uploadFiles( | |||
fileList, data, 'upload/post/postfiles', 'image', | |||
isShowLoading: true); | |||
var resData = res.data; | |||
if (resData['code'] == 0 && resData['msg'] != null) { | |||
imgUrlList.addAll(resData['msg'].split("|")); | |||
setState(() {}); | |||
} | |||
} | |||
} | |||
// var photos = await PhotoPicker.pickAsset( | |||
// context: context, | |||
// themeColor: Color(0xFFF0F0F0), | |||
// maxSelected: Max_Img_Num - imgUrlList.length, | |||
// textColor: Color(0xFF3F3F3F), | |||
// pickType: PickType.onlyImage); | |||
// | |||
// if (photos != null && photos.length > 0) { | |||
// List<File> fileList = []; | |||
// for (var i = 0; i < photos.length; i++) { | |||
// AssetEntity photoEntity = photos[i]; | |||
// fileList.add(await photoEntity.file); | |||
// } | |||
// Map data = {"type": 3, "userId": UserData().basicInfo.userId}; | |||
// data['sign'] = TokenMgr().getSign(data); | |||
// Response res = await HttpUtil().uploadFiles( | |||
// fileList, data, 'upload/post/postfiles', 'image', | |||
// isShowLoading: true); | |||
// var resData = res.data; | |||
// if (resData['code'] == 0 && resData['msg'] != null) { | |||
// imgUrlList.addAll(resData['msg'].split("|")); | |||
// setState(() {}); | |||
// } | |||
// } | |||
} | |||
Widget _buildDynicContent() { | |||
@@ -1,4 +1,5 @@ | |||
import 'dart:io'; | |||
import 'dart:typed_data'; | |||
import 'package:cached_network_image/cached_network_image.dart'; | |||
import 'package:chat/data/UserData.dart'; | |||
@@ -10,9 +11,11 @@ import 'package:chat/photo/photo.dart'; | |||
import 'package:chat/utils/CustomUI.dart'; | |||
import 'package:chat/utils/HttpUtil.dart'; | |||
import 'package:chat/utils/PicSwiper.dart'; | |||
import 'package:chat/utils/file_cache_mgr.dart'; | |||
import 'package:chat/utils/screen.dart'; | |||
import 'package:dio/dio.dart'; | |||
import 'package:flutter/material.dart'; | |||
import 'package:multi_image_picker/multi_image_picker.dart'; | |||
import 'package:oktoast/oktoast.dart'; | |||
import 'package:photo_manager/photo_manager.dart'; | |||
@@ -179,18 +182,30 @@ class _InformUserPageState extends State<InformUserPage> { | |||
} | |||
void _sendPicture() async { | |||
var photos = await PhotoPicker.pickAsset( | |||
context: context, | |||
themeColor: Color(0xFFF0F0F0), | |||
maxSelected: MaxImgNum - imgUrlList.length, | |||
textColor: Color(0xFF3F3F3F), | |||
pickType: PickType.onlyImage); | |||
if (photos != null && photos.length > 0) { | |||
List<Asset> resultList = List<Asset>(); | |||
resultList = await MultiImagePicker.pickImages( | |||
maxImages: MaxImgNum - imgUrlList.length, | |||
enableCamera: false, | |||
selectedAssets: [], | |||
cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"), | |||
materialOptions: MaterialOptions( | |||
actionBarColor: "#50A7F9", | |||
actionBarTitle: "Hibok", | |||
allViewTitle: "", | |||
useDetailsView: false, | |||
selectCircleStrokeColor: "#000000", | |||
), | |||
); | |||
if (resultList != null && resultList.length > 0) { | |||
List<File> fileList = []; | |||
for (var i = 0; i < photos.length; i++) { | |||
AssetEntity photoEntity = photos[i]; | |||
fileList.add(await photoEntity.file); | |||
for (var i = 0; i < resultList.length; i++) { | |||
Asset photoEntity = resultList[i]; | |||
ByteData byteData = await photoEntity.getByteData(); | |||
File file = await FileCacheMgr().writeFile('temp-photo-${DateTime.now().millisecondsSinceEpoch}-$i', byteData.buffer.asInt8List(0)); | |||
fileList.add(file); | |||
} | |||
Map data = {"type": 3, "userId": UserData().basicInfo.userId}; | |||
data['sign'] = TokenMgr().getSign(data); | |||
@@ -203,6 +218,33 @@ class _InformUserPageState extends State<InformUserPage> { | |||
setState(() {}); | |||
} | |||
} | |||
// var photos = await PhotoPicker.pickAsset( | |||
// context: context, | |||
// themeColor: Color(0xFFF0F0F0), | |||
// maxSelected: MaxImgNum - imgUrlList.length, | |||
// textColor: Color(0xFF3F3F3F), | |||
// pickType: PickType.onlyImage); | |||
// | |||
// if (photos != null && photos.length > 0) { | |||
// List<File> fileList = []; | |||
// for (var i = 0; i < photos.length; i++) { | |||
// AssetEntity photoEntity = photos[i]; | |||
// fileList.add(await photoEntity.file); | |||
// } | |||
// Map data = {"type": 3, "userId": UserData().basicInfo.userId}; | |||
// data['sign'] = TokenMgr().getSign(data); | |||
// Response res = await HttpUtil().uploadFiles( | |||
// fileList, data, 'upload/post/postfiles', 'image', | |||
// isShowLoading: true); | |||
// var resData = res.data; | |||
// if (resData['code'] == 0 && resData['msg'] != null) { | |||
// imgUrlList.addAll(resData['msg'].split("|")); | |||
// setState(() {}); | |||
// } | |||
// } | |||
} | |||
Widget _buildRadioButtom(str, radio, callback) { | |||
@@ -35,7 +35,7 @@ class FileCacheMgr { | |||
return filePath; | |||
} | |||
Future<File> writeFile(String fileId, Uint8List fileBytes) async { | |||
Future<File> writeFile(String fileId, fileBytes) async { | |||
var path = p.join(await getFilePath(), fileId); | |||
print('receive path : $path'); | |||
var folder = new File(path).parent; | |||
@@ -47,6 +47,8 @@ class FileCacheMgr { | |||
return file; | |||
} | |||
Future<File> getFile(String fileId) async { | |||
var filePath = p.join(await getFilePath(), fileId); | |||
var file = File(filePath); | |||
@@ -85,6 +85,11 @@ class WidgetUtil { | |||
return k; | |||
} | |||
///Get the coordinates of the widget on the screen.Widgets must be rendered completely. | |||
///获取widget在屏幕上的坐标,widget必须渲染完成 | |||
static Offset getWidgetLocalToGlobal(BuildContext context) { | |||
@@ -718,6 +718,13 @@ packages: | |||
url: "https://pub.flutter-io.cn" | |||
source: hosted | |||
version: "0.9.6+3" | |||
multi_image_picker: | |||
dependency: "direct main" | |||
description: | |||
name: multi_image_picker | |||
url: "https://pub.flutter-io.cn" | |||
source: hosted | |||
version: "4.6.4" | |||
node_interop: | |||
dependency: transitive | |||
description: | |||
@@ -173,9 +173,10 @@ dependencies: | |||
file_picker: ^1.4.3+2 | |||
#文件打开 | |||
open_file: ^3.0.1 | |||
#文件分享 | |||
share_extend: ^1.1.1 | |||
#多图片选择 | |||
multi_image_picker: ^4.6.4 | |||
dev_dependencies: | |||
flutter_test: | |||