Move code to zip logs into the settings page

This commit is contained in:
Vishnu Mohandas 2020-10-31 00:05:47 +05:30
parent 5730d265a3
commit c81ad63490
2 changed files with 17 additions and 10 deletions

View file

@ -22,8 +22,6 @@ import 'package:photos/ui/memories_widget.dart';
import 'package:photos/ui/search_page.dart';
import 'package:photos/services/user_service.dart';
import 'package:photos/ui/shared_collections_gallery.dart';
import 'package:photos/utils/logging_util.dart';
import 'package:shake/shake.dart';
import 'package:logging/logging.dart';
import 'package:uni_links/uni_links.dart';
@ -44,7 +42,6 @@ class _HomeWidgetState extends State<HomeWidget> {
final _selectedFiles = SelectedFiles();
final _memoriesWidget = MemoriesWidget();
ShakeDetector _detector;
int _selectedNavBarItem = 0;
StreamSubscription<LocalPhotosUpdatedEvent>
_localPhotosUpdatedEventSubscription;
@ -52,12 +49,6 @@ class _HomeWidgetState extends State<HomeWidget> {
@override
void initState() {
_detector = ShakeDetector.autoStart(
shakeThresholdGravity: 3,
onPhoneShake: () {
_logger.info("Emailing logs");
LoggingUtil.instance.emailLogs();
});
_localPhotosUpdatedEventSubscription =
Bus.instance.on<LocalPhotosUpdatedEvent>().listen((event) {
setState(() {});
@ -216,7 +207,6 @@ class _HomeWidgetState extends State<HomeWidget> {
@override
void dispose() {
_detector.stopListening();
_localPhotosUpdatedEventSubscription.cancel();
_tabChangedEventSubscription.cancel();
super.dispose();

View file

@ -1,3 +1,6 @@
import 'dart:io';
import 'package:archive/archive_io.dart';
import 'package:crisp/crisp.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
@ -6,10 +9,12 @@ import 'package:flutter/widgets.dart';
import 'package:flutter_email_sender/flutter_email_sender.dart';
import 'package:flutter_sodium/flutter_sodium.dart';
import 'package:logging/logging.dart';
import 'package:path_provider/path_provider.dart';
import 'package:photos/core/configuration.dart';
import 'package:photos/db/files_db.dart';
import 'package:photos/ui/loading_widget.dart';
import 'package:photos/utils/date_time_util.dart';
import 'package:photos/utils/dialog_util.dart';
class SettingsPage extends StatelessWidget {
const SettingsPage({Key key}) : super(key: key);
@ -235,8 +240,20 @@ class SupportSectionWidget extends StatelessWidget {
GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () async {
final dialog = createProgressDialog(context, "Preparing logs...");
await dialog.show();
final tempPath = (await getTemporaryDirectory()).path;
final zipFilePath = tempPath + "/logs.zip";
final logsDirectory = Directory(tempPath + "/logs");
var encoder = ZipFileEncoder();
encoder.create(zipFilePath);
encoder.addDirectory(logsDirectory);
encoder.close();
await dialog.hide();
final Email email = Email(
recipients: ['support@ente.io'],
cc: ['vishnu@ente.io'],
attachmentPaths: [zipFilePath],
isHTML: false,
);
await FlutterEmailSender.send(email);