Fix android tile service issues

This commit is contained in:
chen08209
2024-08-01 23:51:00 +08:00
parent 3fdc69edd5
commit 6cfcaa4edc
18 changed files with 268 additions and 173 deletions

View File

@@ -89,8 +89,11 @@ class _EditProfileState extends State<EditProfile> {
});
}
Future<FileInfo> _getFileInfo(path) async {
Future<FileInfo?> _getFileInfo(path) async {
final file = File(path);
if (!await file.exists()) {
return null;
}
final lastModified = await file.lastModified();
final size = await file.length();
return FileInfo(
@@ -127,59 +130,6 @@ class _EditProfileState extends State<EditProfile> {
);
}
Widget _buildSubtitle() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(
height: 4,
),
ValueListenableBuilder<FileInfo?>(
valueListenable: fileInfoNotifier,
builder: (_, fileInfo, __) {
final height =
globalState.appController.measure.bodyMediumHeight + 4;
return SizedBox(
height: height,
child: FadeBox(
child: fileInfo == null
? SizedBox(
width: height,
height: height,
child: const CircularProgressIndicator(
strokeWidth: 2,
),
)
: Text(
fileInfo.desc,
),
),
);
},
),
const SizedBox(
height: 8,
),
Wrap(
runSpacing: 6,
spacing: 12,
children: [
CommonChip(
avatar: const Icon(Icons.edit),
label: appLocalizations.edit,
onPressed: _editProfileFile,
),
CommonChip(
avatar: const Icon(Icons.upload),
label: appLocalizations.upload,
onPressed: _uploadProfileFile,
),
],
),
],
);
}
@override
Widget build(BuildContext context) {
final items = [
@@ -250,9 +200,49 @@ class _EditProfileState extends State<EditProfile> {
),
),
],
ListItem(
title: Text(appLocalizations.profile),
subtitle: _buildSubtitle(),
ValueListenableBuilder<FileInfo?>(
valueListenable: fileInfoNotifier,
builder: (_, fileInfo, __) {
return FadeBox(
child: fileInfo == null
? Container()
: ListItem(
title: Text(
appLocalizations.profile,
),
subtitle: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(
height: 4,
),
Text(
fileInfo.desc,
),
const SizedBox(
height: 8,
),
Wrap(
runSpacing: 6,
spacing: 12,
children: [
CommonChip(
avatar: const Icon(Icons.edit),
label: appLocalizations.edit,
onPressed: _editProfileFile,
),
CommonChip(
avatar: const Icon(Icons.upload),
label: appLocalizations.upload,
onPressed: _uploadProfileFile,
),
],
),
],
),
),
);
},
),
];
return FloatLayout(