diff --git a/Frontend/lib/mih_components/mih_profile_picture.dart b/Frontend/lib/mih_components/mih_profile_picture.dart index 5a7de6ff..0f4807d3 100644 --- a/Frontend/lib/mih_components/mih_profile_picture.dart +++ b/Frontend/lib/mih_components/mih_profile_picture.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import '../../main.dart'; @@ -69,18 +71,54 @@ class _MIHProfilePictureState extends State { type: FileType.custom, allowedExtensions: ['jpg', 'png'], ); - if (result == null) return; - final selectedFile = result.files.first; - setState(() { - widget.onChange(selectedFile); - widget.proPic = selectedFile; - //print("MIH Profile Picture: ${widget.proPic}"); - propicPreview = MemoryImage(widget.proPic!.bytes!); - }); + // print( + // "Platform: ${MzanziInnovationHub.of(context)!.theme.getPlatform()}"); + if (MzanziInnovationHub.of(context)!.theme.getPlatform() == + "Web") { + if (result == null) return; + final selectedFile = result.files.first; + setState(() { + widget.onChange(selectedFile); + widget.proPic = selectedFile; + //print("MIH Profile Picture: ${widget.proPic}"); + propicPreview = MemoryImage(widget.proPic!.bytes!); + }); - setState(() { - widget.proPicController.text = selectedFile.name; - }); + setState(() { + widget.proPicController.text = selectedFile.name; + }); + } else { + // print( + // "================\nHere for Android\n========================"); + if (result != null) { + // print("here 1"); + File file = File(result.files.single.path!); + PlatformFile? androidFile = PlatformFile( + path: file.path, + name: file.path.split('/').last, + size: file.lengthSync(), + bytes: await file.readAsBytes(), // Read file bytes + //extension: fileExtension, + ); + // print("here 2"); + setState(() { + // print("here 3"); + widget.onChange(androidFile); + // print("here 4"); + widget.proPic = androidFile; + // print("here 5"); + //print("MIH Profile Picture: ${widget.proPic}"); + //print("bytes: ${widget.proPic!.bytes!}"); + propicPreview = FileImage(file); + }); + + setState(() { + widget.proPicController.text = widget.proPic!.name; + }); + } else { + // User canceled the picker + } + } }, icon: const Icon(Icons.edit), ), diff --git a/Frontend/lib/mih_packages/mzansi_profile/profile_user_update.dart b/Frontend/lib/mih_packages/mzansi_profile/profile_user_update.dart index c1fc021a..5c6353d2 100644 --- a/Frontend/lib/mih_packages/mzansi_profile/profile_user_update.dart +++ b/Frontend/lib/mih_packages/mzansi_profile/profile_user_update.dart @@ -218,8 +218,12 @@ class _ProfileUserUpdateState extends State { } Future submitForm() async { + // print("============\nsubmiit form\n================="); if (isFieldsFilled()) { if (oldProPicName != proPicController.text) { + // print("here 1"); + // print("Pro File Name: ${proPic!.name}"); + // print("Pro File Bytes: ${proPic!.bytes}"); await uploadSelectedFile(proPic); } await updateUserApiCall(); @@ -308,6 +312,13 @@ class _ProfileUserUpdateState extends State { }, ), ), + // const SizedBox(height: 10.0), + // MIHTextField( + // controller: proPicController, + // hintText: "Pro Pic", + // editable: true, + // required: true, + // ), const SizedBox(height: 10.0), MIHTextField( controller: usernameController, diff --git a/Frontend/pubspec.lock b/Frontend/pubspec.lock index 340ea0de..bfb79a6a 100644 --- a/Frontend/pubspec.lock +++ b/Frontend/pubspec.lock @@ -346,10 +346,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: "16dc141db5a2ccc6520ebb6a2eb5945b1b09e95085c021d9f914f8ded7f1465c" + sha256: c904b4ab56d53385563c7c39d8e9fa9af086f91495dfc48717ad84a42c3cf204 url: "https://pub.dev" source: hosted - version: "8.1.4" + version: "8.1.7" firebase_core: dependency: "direct main" description: diff --git a/Frontend/pubspec.yaml b/Frontend/pubspec.yaml index 5961f990..cdf8ea90 100644 --- a/Frontend/pubspec.yaml +++ b/Frontend/pubspec.yaml @@ -40,7 +40,7 @@ dependencies: syncfusion_flutter_core: ^26.2.10 syncfusion_flutter_pdfviewer: ^26.1.39 universal_html: ^2.2.4 - file_picker: ^8.1.4 + file_picker: ^8.1.7 supertokens_flutter: ^0.6.0 http: ^1.2.1 google_nav_bar: ^5.0.6