improvements, all finish.

development-design-2.0
Sikander Saleem 3 years ago
parent 3c56c4889c
commit fe75109017

@ -1,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.cloudsolutions.tangheem">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
@ -19,10 +20,10 @@
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:exported="true"
android:hardwareAccelerated="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:exported="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user

@ -109,6 +109,8 @@ class Utils {
}
static void downloadFile(String url, String path, {Function(bool) onResponse}) {
print("url:$url");
print("path:$path");
var httpClient = http.Client();
var request = http.Request('GET', Uri.parse(url));
var response = httpClient.send(request);
@ -139,11 +141,13 @@ class Utils {
bytes.setRange(offset, offset + chunk.length, chunk);
offset += chunk.length;
}
print("file writeAsBytes:${bytes.length}");
await file.writeAsBytes(bytes);
onResponse(true);
return;
}, onError: (ex) {
debugPrint("onError:$ex");
onResponse(false);
}, cancelOnError: true);
}).onError((ex) {
debugPrint("onError:$ex");

@ -124,6 +124,7 @@ class _CommonHomeParentState extends State<CommonHomeParent> {
child: Stack(
children: [
screens[index],
if(MediaQuery.of(context).viewInsets.bottom == 0)
Align(
alignment: Alignment.bottomCenter,
child: Column(

@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';
import 'package:tangheem/api/tangheem_user_api_client.dart';
import 'package:tangheem/app_state/app_state.dart';
@ -83,6 +84,11 @@ class _PdfListScreenState extends State<PdfListScreen> {
}
}
Future<bool> _requestStoragePermission() async {
Map<Permission, PermissionStatus> statuses = await [Permission.storage].request();
return statuses[Permission.storage].isGranted;
}
@override
Widget build(BuildContext context) {
return SizedBox(
@ -114,8 +120,12 @@ class _PdfListScreenState extends State<PdfListScreen> {
"assets/icons/new/download_pdf.svg",
width: 44,
height: 50,
).onPress(() {
startFileDownload(contentList[index].exposeFilePath, contentList[index].fileName);
).onPress(() async {
if (await _requestStoragePermission()) {
startFileDownload(contentList[index].exposeFilePath, contentList[index].fileName);
} else {
Utils.showToast("يجب أن تعطي الإذن للتنزيل.");
}
}),
7.width,
ClipRRect(
@ -194,6 +204,5 @@ class PdfViewerScreen extends StatelessWidget {
pageSpacing: 0,
// pageLayoutMode:PdfPageLayoutMode.single
);
}
}

Loading…
Cancel
Save