From 370db229de5fe17c45ab11f0bbbac347fca4945b Mon Sep 17 00:00:00 2001 From: Dian Bayu Nugroho Date: Wed, 7 Feb 2024 15:52:50 +0700 Subject: [PATCH] feat: take photo --- android/app/build.gradle | 2 +- assets/icons/icon-ktp1.png | Bin 0 -> 4661 bytes assets/icons/icon-ktp2.png | Bin 0 -> 4229 bytes assets/icons/icon-ktp3.png | Bin 0 -> 4015 bytes assets/icons/icon-ktp4.png | Bin 0 -> 4724 bytes assets/icons/icon-selfie1.png | Bin 0 -> 4508 bytes assets/icons/icon-selfie2.png | Bin 0 -> 4724 bytes assets/icons/icon-selfie3.png | Bin 0 -> 5060 bytes assets/icons/icon-selfie4.png | Bin 0 -> 4661 bytes assets/images/img-bg-photo-ktp.png | Bin 0 -> 30638 bytes assets/images/img-bg-photo-selfie.png | Bin 0 -> 41510 bytes lib/application/assets/path_assets.dart | 27 ++- .../take_picture_screen.dart | 140 ++++++++++++++++ .../component/text_form/text_form_view.dart | 7 +- lib/application/theme/color_palette.dart | 2 - .../submission_data/initial_take_photo.dart | 157 ++++++++++-------- .../viewmodel/submission_data_viewmodel.dart | 7 + pubspec.lock | 84 +++++++++- pubspec.yaml | 4 + 19 files changed, 350 insertions(+), 80 deletions(-) create mode 100644 assets/icons/icon-ktp1.png create mode 100644 assets/icons/icon-ktp2.png create mode 100644 assets/icons/icon-ktp3.png create mode 100644 assets/icons/icon-ktp4.png create mode 100644 assets/icons/icon-selfie1.png create mode 100644 assets/icons/icon-selfie2.png create mode 100644 assets/icons/icon-selfie3.png create mode 100644 assets/icons/icon-selfie4.png create mode 100644 assets/images/img-bg-photo-ktp.png create mode 100644 assets/images/img-bg-photo-selfie.png create mode 100644 lib/application/component/take_picture_screen/take_picture_screen.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index 768a80a..c2d4e08 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -45,7 +45,7 @@ android { applicationId "com.example.cims_apps" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion flutter.minSdkVersion + minSdkVersion 21 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/assets/icons/icon-ktp1.png b/assets/icons/icon-ktp1.png new file mode 100644 index 0000000000000000000000000000000000000000..1bddb2e7851d9a9c2344fa46972ae25e49e739b9 GIT binary patch literal 4661 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 bwod#XQF}-Bt9pj600000NkvXXu0mjfKF8+V literal 0 HcmV?d00001 diff --git a/assets/icons/icon-ktp3.png b/assets/icons/icon-ktp3.png new file mode 100644 index 0000000000000000000000000000000000000000..a8ffe6e12f68866405317c5c956caf4b75895a78 GIT binary patch literal 4015 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 literal 0 HcmV?d00001 diff --git a/assets/icons/icon-selfie2.png b/assets/icons/icon-selfie2.png new file mode 100644 index 0000000000000000000000000000000000000000..de968bd93a7b5ebe4d8ebf2c2b5ddca792aaf8b4 GIT binary patch literal 4724 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 literal 0 HcmV?d00001 diff --git a/assets/images/img-bg-photo-selfie.png b/assets/images/img-bg-photo-selfie.png new file mode 100644 index 0000000000000000000000000000000000000000..e9076163dd25657935e138fcc0b7c48e10b90dd5 GIT binary patch literal 41510 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 z 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 Os^zBN$1fH9{J#K+ElYm@ literal 0 HcmV?d00001 diff --git a/lib/application/assets/path_assets.dart b/lib/application/assets/path_assets.dart index e86ba76..22f6b7d 100644 --- a/lib/application/assets/path_assets.dart +++ b/lib/application/assets/path_assets.dart @@ -1,7 +1,7 @@ class PathAssets { PathAssets._(); - /// LOGO + /// ICON static const String iconSplashRight = 'assets/icons/splash-right.png'; static const String iconSplashLeft = 'assets/icons/splash-left.png'; static const String iconReksadana = 'assets/icons/icon-reksadana.png'; @@ -10,12 +10,24 @@ class PathAssets { static const String iconGoogle = 'assets/icons/icon-google.png'; static const String icon1 = 'assets/icons/icon-1.png'; static const String iconConnect = 'assets/icons/icon-connect.png'; - static const String iconPortofolioBonds = 'assets/icons/icon-portofolio-bonds.png'; - static const String iconPortofolioShares = 'assets/icons/icon-portofolio-shares.png'; - static const String iconPortofolioSharia = 'assets/icons/icon-portofolio-sharia.png'; - static const String iconPortofolioMoneyMarket = 'assets/icons/icon-portofolio-moneymarket.png'; + static const String iconPortofolioBonds = + 'assets/icons/icon-portofolio-bonds.png'; + static const String iconPortofolioShares = + 'assets/icons/icon-portofolio-shares.png'; + static const String iconPortofolioSharia = + 'assets/icons/icon-portofolio-sharia.png'; + static const String iconPortofolioMoneyMarket = + 'assets/icons/icon-portofolio-moneymarket.png'; static const String iconShield = 'assets/icons/icon-shield.png'; static const String iconFlag = 'assets/icons/icon-flag.png'; + static const String iconKtp1 = 'assets/icons/icon-ktp1.png'; + static const String iconKtp2 = 'assets/icons/icon-ktp2.png'; + static const String iconKtp3 = 'assets/icons/icon-ktp3.png'; + static const String iconKtp4 = 'assets/icons/icon-ktp4.png'; + static const String iconSelfie1 = 'assets/icons/icon-selfie1.png'; + static const String iconSelfie2 = 'assets/icons/icon-selfie2.png'; + static const String iconSelfie3 = 'assets/icons/icon-selfie3.png'; + static const String iconSelfie4 = 'assets/icons/icon-selfie4.png'; /// IMAGE static const String imgSplashLogo = 'assets/images/splash-logo.png'; @@ -28,9 +40,12 @@ class PathAssets { static const String imgKtpCropped = 'assets/images/img-ktp-cropped.png'; static const String imgKtpClear = 'assets/images/img-ktp-clear.png'; static const String imgKtpBlur = 'assets/images/img-ktp-blur.png'; - static const String imgDashboardAccount = 'assets/images/img-dashboard-account.png'; + static const String imgDashboardAccount = + 'assets/images/img-dashboard-account.png'; static const String imgCarousel = 'assets/images/img-carousel.png'; static const String imgArticles = 'assets/images/img-articles.png'; static const String imgProduct = 'assets/images/img-product.png'; static const String imgSuccessSignup = 'assets/images/img-success-signup.png'; + static const String imgBgKtp = 'assets/images/img-bg-photo-ktp.png'; + static const String imgBgSelfie = 'assets/images/img-bg-photo-selfie.png'; } diff --git a/lib/application/component/take_picture_screen/take_picture_screen.dart b/lib/application/component/take_picture_screen/take_picture_screen.dart new file mode 100644 index 0000000..a659c32 --- /dev/null +++ b/lib/application/component/take_picture_screen/take_picture_screen.dart @@ -0,0 +1,140 @@ +import 'package:camera/camera.dart'; +import 'package:cims_apps/application/assets/path_assets.dart'; +import 'package:cims_apps/application/component/image/image_view.dart'; +import 'package:cims_apps/application/component/take_picture_screen/DisplayPictureScreen.dart'; +import 'package:cims_apps/core/route/route.dart'; +import 'package:cims_apps/core/utils/size_config.dart'; +import 'package:flutter/material.dart'; + +class TakePictureScreen extends StatefulWidget { + const TakePictureScreen({ + super.key, + required this.camera, + required this.takeContent, + }); + + final CameraDescription camera; + final String takeContent; + + @override + TakePictureScreenState createState() => TakePictureScreenState(); +} + +class TakePictureScreenState extends State { + late CameraController _controller; + late Future _initializeControllerFuture; + bool isFlash = false; + late String _takeContent; + + Future changeFlash() async { + await _controller.setFlashMode(FlashMode.auto); + setState(() { + isFlash = !isFlash; + }); + } + + @override + void initState() { + super.initState(); + _controller = CameraController( + widget.camera, + ResolutionPreset.medium, + enableAudio: false, + ); + // Next, initialize the controller. This returns a Future. + _initializeControllerFuture = _controller.initialize(); + _takeContent = widget.takeContent; + } + + @override + void dispose() { + // Dispose of the controller when the widget is disposed. + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + // Fill this out in the next steps. + return Scaffold( + appBar: AppBar( + title: const Text('Registration'), + actions: [ + IconButton( + onPressed: () { + changeFlash(); + }, + icon: Icon(isFlash ? Icons.flash_on : Icons.flash_off)) + ], + ), + body: FutureBuilder( + future: _initializeControllerFuture, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.done) { + // If the Future is complete, display the preview. + return Stack( + children: [ + SizedBox( + width: SizeConfig.width, + height: SizeConfig.height, + child: CameraPreview(_controller)), + Container( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Colors.transparent, + Colors.black.withOpacity(0.5), + ], + ), + ), + child: ImageView( + image: _takeContent == 'ktp' + ? PathAssets.imgBgKtp + : PathAssets.imgBgSelfie, + width: SizeConfig.width, + height: SizeConfig.height, + ), + ), + Align( + alignment: Alignment.bottomCenter, + child: IconButton( + onPressed: () async { + try { + // Ensure that the camera is initialized. + await _initializeControllerFuture; + + // Attempt to take a picture and get the file `image` + // where it was saved. + final image = await _controller.takePicture(); + + if (!mounted) return; + routePush(context, + page: DisplayPictureScreen( + imagePath: image.path, + content: _takeContent, + ), + routeType: RouteType.pushReplace); + } catch (e) { + // If an error occurs, log the error to the console. + debugPrint(e.toString()); + } + }, + icon: Icon( + Icons.album_outlined, + color: Colors.white, + size: SizeConfig.width * .16, + ), + ), + ) + ], + ); + } else { + return const Center(child: CircularProgressIndicator()); + } + }, + ), + ); + } +} diff --git a/lib/application/component/text_form/text_form_view.dart b/lib/application/component/text_form/text_form_view.dart index 8617893..96668ba 100644 --- a/lib/application/component/text_form/text_form_view.dart +++ b/lib/application/component/text_form/text_form_view.dart @@ -127,7 +127,7 @@ class TextFormView extends StatelessWidget { initialValue: initialValue, enabled: enabled, controller: ctrl, - // maxLength: maxLength, + maxLength: maxLength, keyboardType: keyboardType, onTap: onTap, onEditingComplete: onSubmit, @@ -189,7 +189,10 @@ class TextFormView extends StatelessWidget { suffixIconConstraints: suffixIconConstraints, prefixIconConstraints: preffixIconConstraints, prefix: prefix, - contentPadding: EdgeInsets.zero), + contentPadding: const EdgeInsets.symmetric( + horizontal: 8.0, + vertical: 16.0, + )), ) ], ); diff --git a/lib/application/theme/color_palette.dart b/lib/application/theme/color_palette.dart index e4d255b..6e37bd2 100644 --- a/lib/application/theme/color_palette.dart +++ b/lib/application/theme/color_palette.dart @@ -80,7 +80,6 @@ class ColorPalette { static const Color slate200 = Color(0xFFE2E8F0); static const Color slate300 = Color(0xFFCBD5E1); static const Color slate400 = Color(0xFF94A3B8); - static const Color slate500 = Color(0xFF64748B); static const Color slate800 = Color(0xFF1E293B); static const Color purple100 = Color(0xFFEDE9FE); static const Color purple500 = Color(0xFF8B5CF6); @@ -93,7 +92,6 @@ class ColorPalette { static const Color green400 = Color(0xFF4ADE80); static const Color green500 = Color(0xFF16A34A); - static const Map investTypeColor = { 'Money Market': purple500, 'Shares': orange500, diff --git a/lib/features/auth/registration/view/submission_data/initial_take_photo.dart b/lib/features/auth/registration/view/submission_data/initial_take_photo.dart index 10f20a2..485f65a 100644 --- a/lib/features/auth/registration/view/submission_data/initial_take_photo.dart +++ b/lib/features/auth/registration/view/submission_data/initial_take_photo.dart @@ -1,10 +1,14 @@ import 'package:cims_apps/application/assets/path_assets.dart'; import 'package:cims_apps/application/component/button/button_view.dart'; import 'package:cims_apps/application/component/image/image_view.dart'; +import 'package:cims_apps/application/component/take_picture_screen/take_picture_screen.dart'; import 'package:cims_apps/application/component/text_caption/text_caption.dart'; import 'package:cims_apps/application/theme/color_palette.dart'; +import 'package:cims_apps/core/route/route.dart'; import 'package:cims_apps/core/utils/size_config.dart'; +import 'package:cims_apps/features/auth/registration/viewmodel/submission_data_viewmodel.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class InitialTakePhoto extends StatelessWidget { const InitialTakePhoto({Key? key}) : super(key: key); @@ -17,75 +21,94 @@ class InitialTakePhoto extends StatelessWidget { {'urlImg': PathAssets.imgKtpCropped, 'tag': 'Cropped Photo'}, {'urlImg': PathAssets.imgKtpClear, 'tag': 'Clear Photo'}, ]; - return SizedBox( - height: SizeConfig.height * .75, - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - const TextCaption( - title: 'Take a photo your ID card', - subtitle: - 'Make sure your photo is clearly legible for identity verification purposes', + return MultiProvider( + providers: [ + ChangeNotifierProvider( + create: (context) => SubmissionDataViewModel(), ), - SizedBox( - width: SizeConfig.height, - child: Wrap( - alignment: WrapAlignment.spaceBetween, - spacing: 10, - runSpacing: 10, - children: List.generate(listImg.length, (index) { - final urlList = listImg[index]['urlImg']; - final tag = listImg[index]['tag']; - return Column( - children: [ - ImageView( - image: urlList, - width: SizeConfig.width * .42, - ), - const SizedBox( - height: 8, - ), - Text( - tag, - style: const TextStyle( - color: ColorPalette.slate800, - fontWeight: FontWeight.w600), - ), - ], - ); - }), - ), - ), - // const Spacer(), - const Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - ImageView( - image: PathAssets.iconShield, - width: 20, - height: 22, - ), - SizedBox( - width: 8, - ), - Expanded( - child: Text( - 'In accordance with OJK regulations, an ID card is required to purchase mutual funds.', - style: TextStyle( - fontWeight: FontWeight.w600, - color: ColorPalette.primary, + ], + builder: (context, child) { + return SizedBox( + height: SizeConfig.height * .75, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const TextCaption( + title: 'Take a photo your ID card', + subtitle: + 'Make sure your photo is clearly legible for identity verification purposes', + ), + SizedBox( + width: SizeConfig.height, + child: Wrap( + alignment: WrapAlignment.spaceBetween, + spacing: 10, + runSpacing: 10, + children: List.generate(listImg.length, (index) { + final urlList = listImg[index]['urlImg']; + final tag = listImg[index]['tag']; + return Column( + children: [ + ImageView( + image: urlList, + width: SizeConfig.width * .42, + ), + const SizedBox( + height: 8, + ), + Text( + tag, + style: const TextStyle( + color: ColorPalette.slate800, + fontWeight: FontWeight.w600), + ), + ], + ); + }), ), ), - ) - ], - ), - ButtonView( - name: 'Take a Photo', - marginVertical: 16.0, - onPressed: () {}, - ) - ], - ), - ); + // const Spacer(), + const Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + ImageView( + image: PathAssets.iconShield, + width: 20, + height: 22, + ), + SizedBox( + width: 8, + ), + Expanded( + child: Text( + 'In accordance with OJK regulations, an ID card is required to purchase mutual funds.', + style: TextStyle( + fontWeight: FontWeight.w600, + color: ColorPalette.primary, + ), + ), + ) + ], + ), + Consumer( + builder: (context, provider, child) { + return ButtonView( + name: 'Take a Photo', + marginVertical: 16.0, + onPressed: () { + provider.initCamera().then((cameras) { + routePush(context, + page: TakePictureScreen( + camera: cameras.first, + takeContent: 'selfie', + )); + }); + }, + ); + }) + ], + ), + ); + }); } } diff --git a/lib/features/auth/registration/viewmodel/submission_data_viewmodel.dart b/lib/features/auth/registration/viewmodel/submission_data_viewmodel.dart index c7a97fb..dd5cf62 100644 --- a/lib/features/auth/registration/viewmodel/submission_data_viewmodel.dart +++ b/lib/features/auth/registration/viewmodel/submission_data_viewmodel.dart @@ -1,3 +1,4 @@ +import 'package:camera/camera.dart'; import 'package:flutter/material.dart'; class SubmissionDataViewModel extends ChangeNotifier { @@ -6,6 +7,12 @@ class SubmissionDataViewModel extends ChangeNotifier { bool _isEmailVerify = false; bool get isEmailVerify => _isEmailVerify; + Future> initCamera() async { + final cameras = await availableCameras(); + final camerasDesc = cameras; + return camerasDesc; + } + submitEmail() { _isEmailVerify = !_isEmailVerify; notifyListeners(); diff --git a/pubspec.lock b/pubspec.lock index 18050bf..fe9bc01 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -49,6 +49,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + camera: + dependency: "direct main" + description: + name: camera + sha256: "9499cbc2e51d8eb0beadc158b288380037618ce4e30c9acbc4fae1ac3ecb5797" + url: "https://pub.dev" + source: hosted + version: "0.10.5+9" + camera_android: + dependency: transitive + description: + name: camera_android + sha256: "351429510121d179b9aac5a2e8cb525c3cd6c39f4d709c5f72dfb21726e52371" + url: "https://pub.dev" + source: hosted + version: "0.10.8+16" + camera_avfoundation: + dependency: transitive + description: + name: camera_avfoundation + sha256: "608b56b0880722f703871329c4d7d4c2f379c8e2936940851df7fc041abc6f51" + url: "https://pub.dev" + source: hosted + version: "0.9.13+10" + camera_platform_interface: + dependency: transitive + description: + name: camera_platform_interface + sha256: fceb2c36038b6392317b1d5790c6ba9e6ca9f1da3031181b8bea03882bf9387a + url: "https://pub.dev" + source: hosted + version: "2.7.3" + camera_web: + dependency: transitive + description: + name: camera_web + sha256: f18ccfb33b2a7c49a52ad5aa3f07330b7422faaecbdfd9b9fe8e51182f6ad67d + url: "https://pub.dev" + source: hosted + version: "0.3.2+4" carousel_slider: dependency: "direct main" description: @@ -89,6 +129,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.1" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e + url: "https://pub.dev" + source: hosted + version: "0.3.3+8" crypto: dependency: transitive description: @@ -174,6 +222,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.3" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da + url: "https://pub.dev" + source: hosted + version: "2.0.17" flutter_svg: dependency: "direct main" description: @@ -289,7 +345,7 @@ packages: source: hosted version: "2.0.0" path: - dependency: transitive + dependency: "direct main" description: name: path sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" @@ -313,7 +369,7 @@ packages: source: hosted version: "1.0.1" path_provider: - dependency: transitive + dependency: "direct main" description: name: path_provider sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b @@ -485,6 +541,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" string_scanner: dependency: transitive description: @@ -493,6 +557,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + syncfusion_flutter_core: + dependency: transitive + description: + name: syncfusion_flutter_core + sha256: e8580e201c7197feac830b501889e877796a9fabbe20dcdbe90a981603939101 + url: "https://pub.dev" + source: hosted + version: "24.2.4" + syncfusion_flutter_signaturepad: + dependency: "direct main" + description: + name: syncfusion_flutter_signaturepad + sha256: "878e1063b909a83c83677627261780d42d532d0b5e7e259d84da805008e7fb0d" + url: "https://pub.dev" + source: hosted + version: "24.2.4" synchronized: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index f26ba10..b5fe5ab 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -45,6 +45,10 @@ dependencies: provider: ^6.1.1 group_button: ^5.3.4 pinput: ^2.2.21 + camera: ^0.10.5+9 + path_provider: ^2.1.2 + path: ^1.8.3 + syncfusion_flutter_signaturepad: ^24.2.4