Arreglos menores en toda la aplicación

parent 1be68f5d
......@@ -7,15 +7,22 @@ import 'package:path_provider/path_provider.dart';
import 'package:uuid/uuid.dart';
import 'package:prueba_multimedia/modelo/modelo.dart';
// TODO: QUE PASA SI NO RECONOCEMOS EL FORMATO?
/// Clase que representa un enlace a un archivo alojado en la web
class Enlace extends Convertible {
/// URL al archivo en cuestión
final String _url;
/// Archivo que se descargadrá y que contiene el archivo a convertir
late final Future<File> _file;
/// Si el archivo se está descargando
bool _descargado = false;
/// Nombre del archivo
String? _nombreArchivo;
/// Devuelve la URL al archivo en cuestión
String get url => _url;
/// Devuelve el nombre del archivo
String? get nombreArchivo => _nombreArchivo;
/// Devuelve si el archivo se está descargando
bool get descargado => _descargado;
......@@ -24,13 +31,14 @@ class Enlace extends Convertible {
nombre: direccion.length < 33
? direccion
: "${direccion.substring(0, 33)}...",
formatoOriginal: Formato.fromExtension('jpg')!,
formatoOriginal: Formato.fromExtension(direccion.split('.').last)!,
icon: const Icon(Icons.link)
)
{
_file = _descargar(_url);
}
/// Función para descargar el archivo desde internet
Future<File> _descargar(String direccion) async {
// Descargamos los datos
final dio = Dio();
......@@ -69,6 +77,7 @@ class Enlace extends Convertible {
return file;
}
/// Convierte este enlace al formato deseado
@override
Future<ReturnCode?> convertir(String pathSalida) async {
// Eliminamos el archivo temporal después de la conversión
......
......@@ -67,12 +67,15 @@ class ListaSeleccionables extends ChangeNotifier {
/// Agrega un enlace (archivo para descargar) a ala lista
bool addEnlace(String url) {
_seleccionables.add( Enlace(
id: const Uuid().v1(),
direccion: url
));
notifyListeners();
return true;
if(Formato.fromExtension(url.split('.').last) != null){
_seleccionables.add( Enlace(
id: const Uuid().v1(),
direccion: url
));
notifyListeners();
return true;
}
return false;
}
/// Reinserta un elemento anteriormente eliminado de la lista
......
......@@ -144,7 +144,7 @@ class _PaginaAjustesState extends State<PaginaAjustes> {
Column(
children: [
Text(
"Convertex",
"ConVertex",
style: textTheme.titleLarge,
),
const SizedBox(height: 16.0,),
......
......@@ -64,8 +64,6 @@ class _PaginaConversionState extends State<PaginaConversion>
@override
Widget build(BuildContext context) {
// TODO: HECHO PARA QUE NO PETE PERO HABRÁ QUE REVISAR.
// PONER UN SCAFOLD Y FACOTIRZAR
return Material(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
......@@ -86,8 +84,6 @@ class _PaginaConversionState extends State<PaginaConversion>
_createFormatBox(false)
],
),
const SizedBox(height: 20.0),
_createCalidadSelectionPanel()
],
),
),
......
......@@ -23,7 +23,7 @@ class PaginaPrincipal extends StatelessWidget {
return Scaffold(
appBar: AppBar(
title: Text(
'Convertex Prototipo',
'ConVertex',
style: Theme.of(context).textTheme.titleLarge?.copyWith(
color: Colors.white
),
......
......@@ -126,7 +126,16 @@ class ActionButton extends StatelessWidget {
});
if (url != null) {
manager.addEnlace(url);
bool added = manager.addEnlace(url);
if (!added) {
_mostrarSnackBar(context, 'El archivo del enlace seleccionado no es de un formato multimedia conocido');
return;
}
if (onSuccess != null && context.mounted) {
onSuccess!();
}
}
}
......@@ -177,7 +186,7 @@ class ActionButton extends StatelessWidget {
_actualizadorProgreso();
final now = DateTime.now();
final nombreZip = "Convertex_"
final nombreZip = "ConVertex_"
"${now.day}-${now.month}-${now.year}_"
"${now.hour}-${now.minute}-${now.second}";
final zipFileEncoder = ZipFileEncoder();
......
......@@ -7,6 +7,8 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:prueba_multimedia/modelo/modelo.dart';
import 'package:prueba_multimedia/modelo/provider_ajustes.dart';
import 'package:prueba_multimedia/paginas/pagina_configuracion.dart';
import 'package:prueba_multimedia/paginas/pagina_configuracion_carpeta.dart';
import 'package:prueba_multimedia/widgets/widgets.dart';
class ConVertexFabBar extends StatefulWidget {
......@@ -39,8 +41,7 @@ class _ConVertexFabBarState extends State<ConVertexFabBar> {
static const convertirButtonTypes= <ActionButtonTypes>[
ActionButtonTypes.copiar,
ActionButtonTypes.comprimir,
ActionButtonTypes.reemplazar
ActionButtonTypes.comprimir
];
@override
......@@ -187,7 +188,7 @@ class _ConVertexFabBarState extends State<ConVertexFabBar> {
List<Widget> _loadAgregarActionButtons(BuildContext context,
ListaSeleccionables manager)
{
final VoidCallback closeButtons = () {
accionesFinal() {
setState(() {
_convertirOpen = false;
_agregarOpen = false;
......@@ -196,14 +197,35 @@ class _ConVertexFabBarState extends State<ConVertexFabBar> {
_convertirKey.currentState?.close();
}
_agregarKey.currentState?.close();
};
final manager2 = Provider.of<ListaSeleccionables>(context, listen: false);
int ix = manager2.seleccionables.length-1;
Navigator.push(context,
MaterialPageRoute(
builder: (context) {
if(manager2.seleccionables[ix] is Carpeta){
return PaginaConfiguracionCarpeta(
lista: manager2,
indice: ix,
carpeta: manager2.seleccionables[ix] as Carpeta
);
}
return PaginaConfiguracion(
lista: manager2,
indice: ix,
elemento: manager2.seleccionables[ix] as Convertible
);
}
)
);
}
return agregarButtonTypes.map( (type) {
return ActionButton(
tipoBoton: type,
manager: manager,
context: context,
onSuccess: closeButtons,
onSuccess: accionesFinal,
disabled: false,
providerAjustes: widget.providerAjustes,
);
......@@ -255,7 +277,7 @@ class _ConVertexFabBarState extends State<ConVertexFabBar> {
listenerActualizar(manager);
final now = DateTime.now();
final nombreZip = "Convertex_"
final nombreZip = "ConVertex_"
"${now.day}-${now.month}-${now.year}_"
"${now.hour}-${now.minute}-${now.second}";
final zipFileEncoder = ZipFileEncoder();
......
......@@ -73,6 +73,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.8"
dio:
dependency: "direct main"
description:
name: dio
sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9"
url: "https://pub.dev"
source: hosted
version: "5.8.0+1"
dio_web_adapter:
dependency: transitive
description:
name: dio_web_adapter
sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
fake_async:
dependency: transitive
description:
......@@ -168,6 +184,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.dev"
source: hosted
version: "4.1.2"
leak_tracker:
dependency: transitive
description:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment