This commit is contained in:
tao
2025-09-01 09:23:42 +08:00
parent 0af8d30cae
commit 00a81e4e7b
5 changed files with 63 additions and 49 deletions

View File

@@ -3,6 +3,7 @@ import 'dart:io';
import 'package:derma_flutter/router/config/route_paths.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_image_compress/flutter_image_compress.dart';
import 'package:go_router/go_router.dart';
@@ -26,9 +27,13 @@ class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin
///打开相机拍照
void _handTakePhoto() async {
var photo = await _picker.pickImage(source: ImageSource.camera);
if (photo != null) {
_startDetect(photo.path);
try {
var photo = await _picker.pickImage(source: ImageSource.camera);
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 {
//压缩
final result = await FlutterImageCompress.compressWithFile(
final result = await FlutterImageCompress.compressWithFile(
path,
minWidth: 1080,
minHeight: 1920,

View File

@@ -23,16 +23,20 @@ class _ItemWidgetState extends State<ItemWidget> {
@override
Widget build(BuildContext context) {
var color = Colors.black;
var statusText = "";
switch (widget.data.skinStatus) {
case 1:
color = Theme.of(context).colorScheme.success;
statusText = "healthy";
break;
case 2:
color = Theme.of(context).colorScheme.warning;
statusText = "issues";
break;
case 3:
color = Theme.of(context).colorScheme.error;
statusText = "error";
break;
default:
color = Colors.black;
@@ -90,7 +94,7 @@ class _ItemWidgetState extends State<ItemWidget> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"healthy",
statusText,
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w500, color: color),
),
Container(

View File

@@ -32,33 +32,38 @@ class AgreementBox extends StatelessWidget {
),
),
),
RichText(
text: TextSpan(
style: Theme.of(context).textTheme.labelSmall,
children: [
TextSpan(
text: "I agree to the ",
),
TextSpan(
text: "Terms",
style: TextStyle(color: Theme.of(context).primaryColor),
recognizer: TapGestureRecognizer()
..onTap = () => context.push(
RoutePaths.agreement,
extra: {"title": "Terms of Service", "url": "https://support.curain.ai/privacy/derma/terms_service.html"},
),
),
TextSpan(text: " & "),
TextSpan(
text: "Privacy Policy",
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"},
),
),
],
GestureDetector(
onTap: () {
onChanged(!checked);
},
child: RichText(
text: TextSpan(
style: Theme.of(context).textTheme.labelSmall,
children: [
TextSpan(
text: "I agree to the ",
),
TextSpan(
text: "Terms",
style: TextStyle(color: Theme.of(context).primaryColor),
recognizer: TapGestureRecognizer()
..onTap = () => context.push(
RoutePaths.agreement,
extra: {"title": "Terms of Service", "url": "https://support.curain.ai/privacy/derma/terms_service.html"},
),
),
TextSpan(text: " & "),
TextSpan(
text: "Privacy Policy",
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"},
),
),
],
),
),
),
],

View File

@@ -234,10 +234,10 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
sha256: "6382ce712ff69b0f719640ce957559dde459e55ecd433c767e06d139ddf16cab"
sha256: b0694b7fb1689b0e6cc193b3f1fcac6423c4f93c74fb20b806c6b6f196db0c31
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.29"
version: "2.0.30"
flutter_screenutil:
dependency: "direct main"
description:
@@ -268,10 +268,10 @@ packages:
dependency: "direct main"
description:
name: go_router
sha256: "8b1f37dfaf6e958c6b872322db06f946509433bec3de753c3491a42ae9ec2b48"
sha256: eb059dfe59f08546e9787f895bd01652076f996bcbf485a8609ef990419ad227
url: "https://pub.flutter-io.cn"
source: hosted
version: "16.1.0"
version: "16.2.1"
google_identity_services_web:
dependency: transitive
description:
@@ -292,10 +292,10 @@ packages:
dependency: transitive
description:
name: google_sign_in_android
sha256: f256b8f0e6c09d135c166fe20b25256e24d60fe1a72e6bdc112a200bd0d555b4
sha256: "666c3a133f5ec4256f08884359dc34788778d96a378d804203bc57a73ffbd9c0"
url: "https://pub.flutter-io.cn"
source: hosted
version: "7.0.3"
version: "7.0.5"
google_sign_in_ios:
dependency: transitive
description:
@@ -356,10 +356,10 @@ packages:
dependency: transitive
description:
name: image_picker_android
sha256: e83b2b05141469c5e19d77e1dfa11096b6b1567d09065b2265d7c6904560050c
sha256: "28f3987ca0ec702d346eae1d90eda59603a2101b52f1e234ded62cff1d5cfa6e"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.8.13"
version: "0.8.13+1"
image_picker_for_web:
dependency: transitive
description:
@@ -572,10 +572,10 @@ packages:
dependency: "direct main"
description:
name: provider
sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84"
sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272"
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.1.5"
version: "6.1.5+1"
remixicon:
dependency: "direct main"
description:
@@ -604,10 +604,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_android
sha256: "5bcf0772a761b04f8c6bf814721713de6f3e5d9d89caf8d3fe031b02a342379e"
sha256: a2608114b1ffdcbc9c120eb71a0e207c71da56202852d4aab8a5e30a82269e74
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.4.11"
version: "2.4.12"
shared_preferences_foundation:
dependency: transitive
description:
@@ -753,10 +753,10 @@ packages:
dependency: transitive
description:
name: url_launcher_android
sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656"
sha256: "69ee86740f2847b9a4ba6cffa74ed12ce500bbe2b07f3dc1e643439da60637b7"
url: "https://pub.flutter-io.cn"
source: hosted
version: "6.3.17"
version: "6.3.18"
url_launcher_ios:
dependency: transitive
description:
@@ -849,10 +849,10 @@ packages:
dependency: transitive
description:
name: webview_flutter_android
sha256: "0a42444056b24ed832bdf3442d65c5194f6416f7e782152384944053c2ecc9a3"
sha256: "9a25f6b4313978ba1c2cda03a242eea17848174912cfb4d2d8ee84a556f248e3"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.10.0"
version: "4.10.1"
webview_flutter_platform_interface:
dependency: transitive
description:

View File

@@ -2,7 +2,7 @@ name: derma_flutter
description: "A new Flutter project."
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0+1
version: 1.0.1
environment:
sdk: ^3.8.1