1
This commit is contained in:
@@ -3,6 +3,7 @@ import 'dart:io';
|
|||||||
import 'package:derma_flutter/router/config/route_paths.dart';
|
import 'package:derma_flutter/router/config/route_paths.dart';
|
||||||
import 'package:file_picker/file_picker.dart';
|
import 'package:file_picker/file_picker.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_image_compress/flutter_image_compress.dart';
|
import 'package:flutter_image_compress/flutter_image_compress.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
@@ -26,9 +27,13 @@ class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin
|
|||||||
|
|
||||||
///打开相机拍照
|
///打开相机拍照
|
||||||
void _handTakePhoto() async {
|
void _handTakePhoto() async {
|
||||||
var photo = await _picker.pickImage(source: ImageSource.camera);
|
try {
|
||||||
if (photo != null) {
|
var photo = await _picker.pickImage(source: ImageSource.camera);
|
||||||
_startDetect(photo.path);
|
if (photo != null) {
|
||||||
|
_startDetect(photo.path);
|
||||||
|
}
|
||||||
|
} on PlatformException catch (e) {
|
||||||
|
EasyLoading.showToast(e.message ?? "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,7 +51,7 @@ class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin
|
|||||||
///开始检测
|
///开始检测
|
||||||
void _startDetect(String path) async {
|
void _startDetect(String path) async {
|
||||||
//压缩
|
//压缩
|
||||||
final result = await FlutterImageCompress.compressWithFile(
|
final result = await FlutterImageCompress.compressWithFile(
|
||||||
path,
|
path,
|
||||||
minWidth: 1080,
|
minWidth: 1080,
|
||||||
minHeight: 1920,
|
minHeight: 1920,
|
||||||
|
|||||||
@@ -23,16 +23,20 @@ class _ItemWidgetState extends State<ItemWidget> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var color = Colors.black;
|
var color = Colors.black;
|
||||||
|
var statusText = "";
|
||||||
|
|
||||||
switch (widget.data.skinStatus) {
|
switch (widget.data.skinStatus) {
|
||||||
case 1:
|
case 1:
|
||||||
color = Theme.of(context).colorScheme.success;
|
color = Theme.of(context).colorScheme.success;
|
||||||
|
statusText = "healthy";
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
color = Theme.of(context).colorScheme.warning;
|
color = Theme.of(context).colorScheme.warning;
|
||||||
|
statusText = "issues";
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
color = Theme.of(context).colorScheme.error;
|
color = Theme.of(context).colorScheme.error;
|
||||||
|
statusText = "error";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
color = Colors.black;
|
color = Colors.black;
|
||||||
@@ -90,7 +94,7 @@ class _ItemWidgetState extends State<ItemWidget> {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
"healthy",
|
statusText,
|
||||||
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w500, color: color),
|
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w500, color: color),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
|
|||||||
@@ -32,33 +32,38 @@ class AgreementBox extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
RichText(
|
GestureDetector(
|
||||||
text: TextSpan(
|
onTap: () {
|
||||||
style: Theme.of(context).textTheme.labelSmall,
|
onChanged(!checked);
|
||||||
children: [
|
},
|
||||||
TextSpan(
|
child: RichText(
|
||||||
text: "I agree to the ",
|
text: TextSpan(
|
||||||
),
|
style: Theme.of(context).textTheme.labelSmall,
|
||||||
TextSpan(
|
children: [
|
||||||
text: "Terms",
|
TextSpan(
|
||||||
style: TextStyle(color: Theme.of(context).primaryColor),
|
text: "I agree to the ",
|
||||||
recognizer: TapGestureRecognizer()
|
),
|
||||||
..onTap = () => context.push(
|
TextSpan(
|
||||||
RoutePaths.agreement,
|
text: "Terms",
|
||||||
extra: {"title": "Terms of Service", "url": "https://support.curain.ai/privacy/derma/terms_service.html"},
|
style: TextStyle(color: Theme.of(context).primaryColor),
|
||||||
),
|
recognizer: TapGestureRecognizer()
|
||||||
),
|
..onTap = () => context.push(
|
||||||
TextSpan(text: " & "),
|
RoutePaths.agreement,
|
||||||
TextSpan(
|
extra: {"title": "Terms of Service", "url": "https://support.curain.ai/privacy/derma/terms_service.html"},
|
||||||
text: "Privacy Policy",
|
),
|
||||||
style: TextStyle(color: Theme.of(context).primaryColor),
|
),
|
||||||
recognizer: TapGestureRecognizer()
|
TextSpan(text: " & "),
|
||||||
..onTap = () => context.push(
|
TextSpan(
|
||||||
RoutePaths.agreement,
|
text: "Privacy Policy",
|
||||||
extra: {"title": "Privacy", "url": "https://support.curain.ai/privacy/derma/privacy_policy.html"},
|
style: TextStyle(color: Theme.of(context).primaryColor),
|
||||||
),
|
recognizer: TapGestureRecognizer()
|
||||||
),
|
..onTap = () => context.push(
|
||||||
],
|
RoutePaths.agreement,
|
||||||
|
extra: {"title": "Privacy", "url": "https://support.curain.ai/privacy/derma/privacy_policy.html"},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
32
pubspec.lock
32
pubspec.lock
@@ -234,10 +234,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: flutter_plugin_android_lifecycle
|
name: flutter_plugin_android_lifecycle
|
||||||
sha256: "6382ce712ff69b0f719640ce957559dde459e55ecd433c767e06d139ddf16cab"
|
sha256: b0694b7fb1689b0e6cc193b3f1fcac6423c4f93c74fb20b806c6b6f196db0c31
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.29"
|
version: "2.0.30"
|
||||||
flutter_screenutil:
|
flutter_screenutil:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -268,10 +268,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: go_router
|
name: go_router
|
||||||
sha256: "8b1f37dfaf6e958c6b872322db06f946509433bec3de753c3491a42ae9ec2b48"
|
sha256: eb059dfe59f08546e9787f895bd01652076f996bcbf485a8609ef990419ad227
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "16.1.0"
|
version: "16.2.1"
|
||||||
google_identity_services_web:
|
google_identity_services_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -292,10 +292,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: google_sign_in_android
|
name: google_sign_in_android
|
||||||
sha256: f256b8f0e6c09d135c166fe20b25256e24d60fe1a72e6bdc112a200bd0d555b4
|
sha256: "666c3a133f5ec4256f08884359dc34788778d96a378d804203bc57a73ffbd9c0"
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.0.3"
|
version: "7.0.5"
|
||||||
google_sign_in_ios:
|
google_sign_in_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -356,10 +356,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_picker_android
|
name: image_picker_android
|
||||||
sha256: e83b2b05141469c5e19d77e1dfa11096b6b1567d09065b2265d7c6904560050c
|
sha256: "28f3987ca0ec702d346eae1d90eda59603a2101b52f1e234ded62cff1d5cfa6e"
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.13"
|
version: "0.8.13+1"
|
||||||
image_picker_for_web:
|
image_picker_for_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -572,10 +572,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: provider
|
name: provider
|
||||||
sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84"
|
sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272"
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.1.5"
|
version: "6.1.5+1"
|
||||||
remixicon:
|
remixicon:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -604,10 +604,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_android
|
name: shared_preferences_android
|
||||||
sha256: "5bcf0772a761b04f8c6bf814721713de6f3e5d9d89caf8d3fe031b02a342379e"
|
sha256: a2608114b1ffdcbc9c120eb71a0e207c71da56202852d4aab8a5e30a82269e74
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.11"
|
version: "2.4.12"
|
||||||
shared_preferences_foundation:
|
shared_preferences_foundation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -753,10 +753,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_android
|
name: url_launcher_android
|
||||||
sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656"
|
sha256: "69ee86740f2847b9a4ba6cffa74ed12ce500bbe2b07f3dc1e643439da60637b7"
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.3.17"
|
version: "6.3.18"
|
||||||
url_launcher_ios:
|
url_launcher_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -849,10 +849,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_android
|
name: webview_flutter_android
|
||||||
sha256: "0a42444056b24ed832bdf3442d65c5194f6416f7e782152384944053c2ecc9a3"
|
sha256: "9a25f6b4313978ba1c2cda03a242eea17848174912cfb4d2d8ee84a556f248e3"
|
||||||
url: "https://pub.flutter-io.cn"
|
url: "https://pub.flutter-io.cn"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.10.0"
|
version: "4.10.1"
|
||||||
webview_flutter_platform_interface:
|
webview_flutter_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: derma_flutter
|
|||||||
description: "A new Flutter project."
|
description: "A new Flutter project."
|
||||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||||
|
|
||||||
version: 1.0.0+1
|
version: 1.0.1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.8.1
|
sdk: ^3.8.1
|
||||||
|
|||||||
Reference in New Issue
Block a user