123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /// convert_list_widget.dart
- /// Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
- ///
- /// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
- /// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
- /// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
- /// This notice may not be removed from this file.
- import 'package:flutter/material.dart';
- import 'package:kmpdfkit_conversion_flutter/models/task_status.dart';
- import 'package:open_file/open_file.dart';
- import 'package:provider/provider.dart';
- import '../models/convert_task.dart';
- import '../states/convert_task_queue_provider.dart';
- class ConvertListWidget extends StatefulWidget {
- const ConvertListWidget({Key? key}) : super(key: key);
- @override
- State<ConvertListWidget> createState() => _ConvertListWidgetState();
- }
- class _ConvertListWidgetState extends State<ConvertListWidget> {
- @override
- Widget build(BuildContext context) {
- var count = context.select<ConvertTaskQueueProvider, int>(
- (value) => value.taskQueue.length);
- return ListView.builder(
- itemCount: count,
- primary: true,
- shrinkWrap: true,
- physics: const ClampingScrollPhysics(),
- itemBuilder: (BuildContext context, int index) {
- return Builder(builder: (context) {
- ConvertTask bean =
- context.select<ConvertTaskQueueProvider, ConvertTask>(
- (value) => value.taskQueue[index]);
- context.select<ConvertTaskQueueProvider, int>(
- (value) => value.taskQueue[index].progress);
- TaskStatus status =
- context.select<ConvertTaskQueueProvider, TaskStatus>(
- (value) => value.taskQueue[index].status);
- return Column(
- children: [
- ListTile(
- isThreeLine: true,
- title: Text(
- bean.fileName,
- style: const TextStyle(fontSize: 18),
- ),
- subtitle: Text(
- "PDF convert ${bean.convertType.name.toUpperCase()} ${bean.outputPath != null ? "\n${bean.outputPath}" : ''}",
- style: const TextStyle(fontSize: 12),
- ),
- trailing: Text(getStatusName(bean)),
- contentPadding:
- const EdgeInsets.symmetric(horizontal: 12, vertical: 2),
- onTap: () async {
- if (status == TaskStatus.success) {
- OpenFile.open(bean.outputPath);
- }
- },
- )
- ],
- );
- });
- },
- );
- }
- String getStatusName(ConvertTask task) {
- switch (task.status) {
- case TaskStatus.wait:
- return "Waiting";
- case TaskStatus.start:
- return "Start";
- case TaskStatus.converting:
- return "Converting (${task.progress}%)";
- case TaskStatus.success:
- return "SUCCESS";
- case TaskStatus.fail:
- return "FAIL";
- case TaskStatus.cancel:
- return "task canceled";
- default:
- return "";
- }
- }
- }
|