local & network files opener added.

main_design2.0
Sikander Saleem 2 years ago
parent 90aabebe12
commit 8624515433

@ -80,7 +80,7 @@ class CreateRequestPageState extends State<CreateRequestPage> {
} else {
_serviceRequest = ServiceRequest();
}
_isLoading = true;
super.initState();
}
@ -123,7 +123,10 @@ class CreateRequestPageState extends State<CreateRequestPage> {
_subtitle = AppLocalization.of(context).subtitle;
if (_serviceRequestsProvider == null) {
_serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
getServiceRequestById(widget.serviceRequest.id);
if (widget.serviceRequest?.id != null) {
_isLoading = true;
getServiceRequestById(widget.serviceRequest.id);
}
}
return Scaffold(

@ -1,9 +1,13 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:open_file/open_file.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
import 'package:url_launcher/url_launcher.dart';
class MultiFilesPickerItem extends StatelessWidget {
final File file;
@ -31,7 +35,7 @@ class MultiFilesPickerItem extends StatelessWidget {
),
child: MaterialButton(
padding: EdgeInsets.zero,
onPressed: () {
onPressed: () async {
if (isImage) {
Navigator.of(context).push(
MaterialPageRoute(
@ -39,7 +43,7 @@ class MultiFilesPickerItem extends StatelessWidget {
body: SafeArea(
child: Stack(
children: [
Center(child: isImage ? InteractiveViewer(child: Image(image: (_isLocalUrl(file.path) ? FileImage(file) : NetworkImage(file.path)))) : const SizedBox.shrink()),
InteractiveViewer(child: Image(image: (_isLocalUrl(file.path) ? FileImage(file) : NetworkImage(file.path)))).center,
const ABackButton(),
],
),
@ -47,6 +51,13 @@ class MultiFilesPickerItem extends StatelessWidget {
),
),
);
} else if (_isLocalUrl(file.path)) {
OpenFile.open(file.path);
} else {
if (!await launchUrl(Uri.parse(file.path), mode: LaunchMode.externalApplication)) {
Fluttertoast.showToast(msg: "UnExpected Error with file.");
throw Exception('Could not launch ');
}
}
},
child: Align(

@ -701,6 +701,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.2"
open_file:
dependency: "direct main"
description:
name: open_file
sha256: a5a32d44acb7c899987d0999e1e3cbb0a0f1adebbf41ac813ec6d2d8faa0af20
url: "https://pub.dev"
source: hosted
version: "3.3.2"
package_info:
dependency: "direct main"
description:

@ -64,6 +64,7 @@ dependencies:
file_picker: ^5.2.5
record_mp3: ^2.1.0
path_provider: ^2.1.0
open_file: ^3.3.2
dev_dependencies:
flutter_test:

Loading…
Cancel
Save