Skip to content

Commit

Permalink
Merge pull request AppFlowy-IO#469 from AppFlowy-IO/feat_local_folder
Browse files Browse the repository at this point in the history
chore: show appflowy document path in debug info
  • Loading branch information
appflowy authored Apr 28, 2022
2 parents 0662e37 + b779097 commit fa3a28e
Show file tree
Hide file tree
Showing 14 changed files with 142 additions and 182 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/dart_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
working-directory: frontend/app_flowy
run: |
flutter packages pub get
flutter packages pub run easy_localization:generate -S ./assets/translations -f keys -O lib/generated -o locale_keys.g.dart
flutter packages pub run easy_localization:generate -f keys -o locale_keys.g.dart -S assets/translations -s en.json
flutter packages pub run build_runner build --delete-conflicting-outputs
- name: Build FlowySDK
Expand Down
38 changes: 16 additions & 22 deletions frontend/app_flowy/lib/startup/tasks/rust_sdk.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,21 @@ class InitRustSDKTask extends LaunchTask {

@override
Future<void> initialize(LaunchContext context) async {
switch (context.env) {
case IntegrationMode.release:
Directory documentsDir = await getApplicationDocumentsDirectory();
return Directory('${documentsDir.path}/flowy').create().then(
(Directory directory) async {
await context.getIt<FlowySDK>().init(directory);
},
);
case IntegrationMode.develop:
Directory documentsDir = await getApplicationDocumentsDirectory();
return Directory('${documentsDir.path}/flowy_dev').create().then(
(Directory directory) async {
await context.getIt<FlowySDK>().init(directory);
},
);
case IntegrationMode.test:
final directory = Directory("${Directory.current.path}/.sandbox");
await context.getIt<FlowySDK>().init(directory);
break;
default:
assert(false, 'Unsupported env');
}
await appFlowyDocumentDirectory().then((directory) async {
await context.getIt<FlowySDK>().init(directory);
});
}
}

Future<Directory> appFlowyDocumentDirectory() async {
Directory documentsDir = await getApplicationDocumentsDirectory();

switch (integrationEnv()) {
case IntegrationMode.develop:
return Directory('${documentsDir.path}/flowy_dev').create();
case IntegrationMode.release:
return Directory('${documentsDir.path}/flowy').create();
case IntegrationMode.test:
return Directory("${Directory.current.path}/.sandbox");
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'package:app_flowy/startup/tasks/rust_sdk.dart';
import 'package:app_flowy/workspace/presentation/home/home_stack.dart';
import 'package:app_flowy/workspace/presentation/widgets/pop_up_action.dart';
import 'package:easy_localization/easy_localization.dart';
Expand All @@ -6,7 +7,6 @@ import 'package:flowy_infra_ui/flowy_infra_ui.dart';
import 'package:flowy_infra_ui/style_widget/button.dart';
import 'package:flowy_infra_ui/style_widget/text.dart';
import 'package:flowy_infra_ui/widget/spacing.dart';
import 'package:flowy_sdk/log.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
Expand Down Expand Up @@ -46,67 +46,7 @@ class QuestionBubble extends StatelessWidget {
_launchURL("https://discord.gg/9Q2xaN37tV");
break;
case BubbleAction.debug:
final deviceInfoPlugin = DeviceInfoPlugin();
final deviceInfo = deviceInfoPlugin.deviceInfo;

deviceInfo.then((info) {
var debugText = "";
info.toMap().forEach((key, value) {
debugText = debugText + "$key: $value\n";
});

Clipboard.setData(ClipboardData(text: debugText));

Widget toast = Container(
padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 12.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(25.0),
color: theme.main1,
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
const Icon(Icons.check),
const SizedBox(
width: 12.0,
),
Text(LocaleKeys.questionBubble_debug_success.tr()),
],
),
);

fToast.showToast(
child: toast,
gravity: ToastGravity.BOTTOM,
toastDuration: const Duration(seconds: 3),
);
}).catchError((error) {
Log.info("Debug info has not yet been implemented on this platform");

Widget toast = Container(
padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 12.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(25.0),
color: Colors.red,
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
const Icon(Icons.close),
const SizedBox(
width: 12.0,
),
Text(LocaleKeys.questionBubble_debug_fail.tr()),
],
),
);

fToast.showToast(
child: toast,
gravity: ToastGravity.BOTTOM,
toastDuration: const Duration(seconds: 3),
);
}, test: (e) => e is UnimplementedError);
const _DebugToast().show();
break;
}
});
Expand All @@ -130,6 +70,78 @@ class QuestionBubble extends StatelessWidget {
}
}

class _DebugToast extends StatelessWidget {
const _DebugToast({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
return FutureBuilder(
future: Future(() async {
var debugInfo = "";
debugInfo += await _getDeviceInfo();
debugInfo += await _getDocumentPath();

Clipboard.setData(ClipboardData(text: debugInfo));
}),
builder: (BuildContext context, AsyncSnapshot<void> snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasError) {
return _done(context, Text("Error: ${snapshot.error}"));
} else {
return _done(context, null);
}
} else {
return const CircularProgressIndicator();
}
},
);
}

Widget _done(BuildContext context, Widget? error) {
final theme = context.watch<AppTheme>();
return Container(
padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 12.0),
decoration: BoxDecoration(borderRadius: BorderRadius.circular(25.0), color: theme.main1),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
const Icon(Icons.check),
const SizedBox(width: 12.0),
(error == null) ? Text(LocaleKeys.questionBubble_debug_success.tr()) : error
],
),
);
}

void show() {
fToast.showToast(
child: this,
gravity: ToastGravity.BOTTOM,
toastDuration: const Duration(seconds: 3),
);
}

Future<String> _getDeviceInfo() async {
final deviceInfoPlugin = DeviceInfoPlugin();
final deviceInfo = deviceInfoPlugin.deviceInfo;

return deviceInfo.then((info) {
var debugText = "";
info.toMap().forEach((key, value) {
debugText = debugText + "$key: $value\n";
});
return debugText;
});
}

Future<String> _getDocumentPath() async {
return appFlowyDocumentDirectory().then((directory) {
final path = directory.path.toString();
return "Document: $path\n";
});
}
}

class QuestionBubbleActionSheet with ActionList<BubbleActionWrapper>, FlowyOverlayDelegate {
final Function(dartz.Option<BubbleAction>) onSelected;
final _items = BubbleAction.values.map((action) => BubbleActionWrapper(action)).toList();
Expand Down
62 changes: 20 additions & 42 deletions frontend/rust-lib/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit fa3a28e

Please sign in to comment.