Skip to content

Commit

Permalink
Use new library for exporting data (#515)
Browse files Browse the repository at this point in the history
* use platform client for file saving

* delete old file saving code

* add missing default file names on error reporting screen
  • Loading branch information
derdilla authored Jan 26, 2025
1 parent 6e3d1eb commit fa89f65
Show file tree
Hide file tree
Showing 8 changed files with 34 additions and 190 deletions.
10 changes: 0 additions & 10 deletions app/android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,15 +55,5 @@
<meta-data
android:name="flutterEmbedding"
android:value="2" />
<provider
android:name="com.derdilla.blood_pressure_app.FileSharer"
android:authorities="com.derdilla.bloodPressureApp.share"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>

</application>
</manifest>

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,5 @@ import java.io.File
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
val shareFolder = File(context.cacheDir, "share")
if (shareFolder.exists()) shareFolder.deleteRecursively();

MethodChannel(flutterEngine.dartExecutor.binaryMessenger, StorageProvider.CHANNEL)
.setMethodCallHandler(StorageProvider(context, shareFolder))
}
}

This file was deleted.

7 changes: 5 additions & 2 deletions app/lib/features/export_import/export_button_bar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import 'package:blood_pressure_app/model/storage/export_pdf_settings_store.dart'
import 'package:blood_pressure_app/model/storage/export_settings_store.dart';
import 'package:blood_pressure_app/model/storage/interval_store.dart';
import 'package:blood_pressure_app/model/storage/settings_store.dart';
import 'package:blood_pressure_app/platform_integration/platform_client.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
Expand Down Expand Up @@ -231,7 +230,11 @@ Future<List<FullEntry>> _getEntries(BuildContext context) async {
Future<void> _exportData(BuildContext context, Uint8List data, String fullFileName, String mimeType) async {
final settings = Provider.of<ExportSettings>(context, listen: false);
if (settings.defaultExportDir.isEmpty || !Platform.isAndroid) {
await PlatformClient.shareData(data, mimeType, fullFileName);
await FilePicker.platform.saveFile(
type: FileType.any, // mimeType
fileName: fullFileName,
bytes: data,
);
} else {
const userDir = PersistentUserDirAccessAndroid();
await userDir.writeFile(settings.defaultExportDir, fullFileName, mimeType, data);
Expand Down
68 changes: 0 additions & 68 deletions app/lib/platform_integration/platform_client.dart

This file was deleted.

29 changes: 24 additions & 5 deletions app/lib/screens/error_reporting_screen.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import 'package:blood_pressure_app/platform_integration/platform_client.dart';
import 'dart:io';

import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:package_info_plus/package_info_plus.dart';
Expand Down Expand Up @@ -107,7 +109,11 @@ class ErrorScreen extends StatelessWidget {

assert(dbPath != inMemoryDatabasePath);
dbPath = join(dbPath, 'blood_pressure.db');
await PlatformClient.shareFile(dbPath, 'application/vnd.sqlite3');
await FilePicker.platform.saveFile(
fileName: 'blood_pressure.db',
bytes: File(dbPath).readAsBytesSync(),
type: FileType.any, // application/vnd.sqlite3
);
} catch(e) {
scaffoldMessenger.showSnackBar(SnackBar(
content: Text('ERR: $e'),),);
Expand All @@ -122,7 +128,12 @@ class ErrorScreen extends StatelessWidget {

assert(dbPath != inMemoryDatabasePath);
dbPath = join(dbPath, 'config.db');
await PlatformClient.shareFile(dbPath, 'application/vnd.sqlite3');

await FilePicker.platform.saveFile(
fileName: 'config.db',
bytes: File(dbPath).readAsBytesSync(),
type: FileType.any, // application/vnd.sqlite3
);
} catch(e) {
scaffoldMessenger.showSnackBar(SnackBar(
content: Text('ERR: $e'),),);
Expand All @@ -137,7 +148,11 @@ class ErrorScreen extends StatelessWidget {

assert(dbPath != inMemoryDatabasePath);
dbPath = join(dbPath, 'medicine.intakes');
await PlatformClient.shareFile(dbPath, 'application/octet-stream');
await FilePicker.platform.saveFile(
fileName: 'medicine.intakes',
bytes: File(dbPath).readAsBytesSync(),
type: FileType.any, // application/octet-stream
);
} catch(e) {
scaffoldMessenger.showSnackBar(SnackBar(
content: Text('ERR: $e'),),);
Expand All @@ -152,7 +167,11 @@ class ErrorScreen extends StatelessWidget {

assert(dbPath != inMemoryDatabasePath);
dbPath = join(dbPath, 'bp.db');
await PlatformClient.shareFile(dbPath, 'application/vnd.sqlite3');
await FilePicker.platform.saveFile(
fileName: 'bp.db',
bytes: File(dbPath).readAsBytesSync(),
type: FileType.any, // application/vnd.sqlite3
);
} catch(e) {
scaffoldMessenger.showSnackBar(SnackBar(
content: Text('ERR: $e'),),);
Expand Down
8 changes: 5 additions & 3 deletions app/lib/screens/settings_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import 'dart:typed_data';

import 'package:archive/archive_io.dart';
import 'package:blood_pressure_app/components/input_dialoge.dart';
import 'package:blood_pressure_app/config.dart';
import 'package:blood_pressure_app/data_util/consistent_future_builder.dart';
import 'package:blood_pressure_app/features/settings/delete_data_screen.dart';
import 'package:blood_pressure_app/features/settings/enter_timeformat_dialoge.dart';
Expand All @@ -28,7 +27,6 @@ import 'package:blood_pressure_app/model/storage/db/settings_loader.dart';
import 'package:blood_pressure_app/model/storage/export_columns_store.dart';
import 'package:blood_pressure_app/model/storage/storage.dart';
import 'package:blood_pressure_app/model/weight_unit.dart';
import 'package:blood_pressure_app/platform_integration/platform_client.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
Expand Down Expand Up @@ -354,7 +352,11 @@ class SettingsPage extends StatelessWidget {
return;
}
final archiveData = Uint8List.fromList(compressedArchive);
await PlatformClient.shareData(archiveData, 'application/zip', 'bloodPressureSettings.zip');
await FilePicker.platform.saveFile(
type: FileType.any, // application/zip
fileName: 'bloodPressureSettings.zip',
bytes: archiveData,
);
},
),
ListTile(
Expand Down

0 comments on commit fa89f65

Please sign in to comment.