Skip to content
This repository has been archived by the owner on Nov 7, 2023. It is now read-only.

Commit

Permalink
refactor: feedback on 'Copy Error'
Browse files Browse the repository at this point in the history
  • Loading branch information
zyrouge committed Nov 12, 2021
1 parent a35ae29 commit ca0aae1
Show file tree
Hide file tree
Showing 14 changed files with 40 additions and 19 deletions.
2 changes: 1 addition & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import './modules/database/database.dart';
import './modules/helpers/logger.dart';
import './modules/helpers/ui.dart';
import './modules/translator/translator.dart';
import './modules/utils/list.dart';
import './modules/utils/utils.dart';
import './ui/router.dart';

Future<void> main(final List<String> args) async {
Expand Down
1 change: 1 addition & 0 deletions lib/modules/translator/translations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -157,4 +157,5 @@ abstract class TranslationSentences {
String previousEpisode();
String nextEpisode();
String ignoreBadHttpSslCertificates();
String copiedErrorToClipboard();
}
3 changes: 3 additions & 0 deletions lib/modules/translator/translations/en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -459,4 +459,7 @@ class Sentences extends TranslationSentences {

@override
String ignoreBadHttpSslCertificates() => 'Ignore bad HTTP SSL certificates';

@override
String copiedErrorToClipboard() => 'Copied error to clipboard';
}
1 change: 1 addition & 0 deletions lib/modules/utils/utils.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export './crypto.dart';
export './duration.dart';
export './error.dart';
export './function.dart';
export './list.dart';
export './string.dart';
19 changes: 16 additions & 3 deletions lib/ui/components/error_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ import 'package:flutter/material.dart';
import '../../modules/helpers/faces.dart';
import '../../modules/helpers/ui.dart';
import '../../modules/translator/translator.dart';
import '../../modules/utils/error.dart';
import '../../modules/utils/list.dart';
import '../../modules/utils/utils.dart';

class KawaiiErrorWidget extends StatelessWidget {
const KawaiiErrorWidget({
Expand Down Expand Up @@ -131,9 +130,23 @@ class KawaiiErrorWidget extends StatelessWidget {
<String>[
'Message: $message',
if (error != null) 'Error: $error',
if (stack != null) 'Stack trace: $stack',
if (stack != null) 'Stack trace:\n$stack',
].join('\n'),
);

FunctionUtils.withValue(
context,
(final BuildContext context) =>
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
Translator.t.copiedErrorToClipboard(),
style: Theme.of(context).textTheme.bodyText1,
),
backgroundColor: Theme.of(context).cardColor,
),
),
);
},
),
),
Expand Down
2 changes: 1 addition & 1 deletion lib/ui/components/material_tiles/header.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import '../../../modules/helpers/ui.dart';
import '../../../modules/utils/function.dart';
import '../../../modules/utils/utils.dart';

class MaterialHeaderTile extends StatelessWidget {
const MaterialHeaderTile({
Expand Down
2 changes: 1 addition & 1 deletion lib/ui/components/material_tiles/utils.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import '../../../modules/helpers/ui.dart';
import '../../../modules/utils/function.dart';
import '../../../modules/utils/utils.dart';

abstract class MaterialTileUtils {
static Widget buildWrapper(
Expand Down
2 changes: 1 addition & 1 deletion lib/ui/components/settings/keyboard_tite.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:flutter/services.dart';
import '../../../modules/helpers/keyboard.dart';
import '../../../modules/helpers/ui.dart';
import '../../../modules/translator/translator.dart';
import '../../../modules/utils/function.dart';
import '../../../modules/utils/utils.dart';
import '../material_tiles/base.dart';

class SettingsKeyboardTile extends StatefulWidget {
Expand Down
2 changes: 1 addition & 1 deletion lib/ui/components/trackers/detailed_item.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import '../../../modules/helpers/assets.dart';
import '../../../modules/helpers/ui.dart';
import '../../../modules/trackers/provider.dart';
import '../../../modules/translator/translator.dart';
import '../../../modules/utils/string.dart';
import '../../../modules/utils/utils.dart';
import '../../pages/search_page/search_page.dart' as search_page;
import '../../router.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/ui/pages/anime_page/anime_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import '../../../modules/helpers/ui.dart';
import '../../../modules/state/hooks.dart';
import '../../../modules/state/stateful_holder.dart';
import '../../../modules/translator/translator.dart';
import '../../../modules/utils/error.dart';
import '../../../modules/utils/utils.dart';
import '../../components/error_widget.dart';
import '../../components/placeholder_appbar.dart';
import '../../components/reactive_state_builder.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/ui/pages/settings_page/setting_labels/about.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import '../../../../modules/database/database.dart';
import '../../../../modules/helpers/assets.dart';
import '../../../../modules/helpers/ui.dart';
import '../../../../modules/translator/translator.dart';
import '../../../../modules/utils/function.dart';
import '../../../../modules/utils/utils.dart';
import '../../../components/material_tiles/base.dart';
import '../../../components/size_aware_builder.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/ui/pages/settings_page/setting_labels/developers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import '../../../../modules/database/database.dart';
import '../../../../modules/helpers/logger.dart';
import '../../../../modules/translator/translator.dart';
import '../../../../modules/utils/function.dart';
import '../../../../modules/utils/utils.dart';
import '../../../components/material_tiles/base.dart';
import '../../../components/material_tiles/switch.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/ui/pages/settings_page/settings_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import '../../../modules/app/state.dart';
import '../../../modules/database/database.dart';
import '../../../modules/helpers/ui.dart';
import '../../../modules/translator/translator.dart';
import '../../../modules/utils/function.dart';
import '../../../modules/utils/utils.dart';
import '../../components/material_tiles/base.dart';
import '../../components/size_aware_builder.dart';

Expand Down
17 changes: 10 additions & 7 deletions packages/extensions/lib/hetu/helpers/error.dart
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,20 @@ class HError implements Error {
]) =>
HError(err.err, stack ?? err.stack, task ?? err.task);

@override
StackTrace? get stackTrace =>
stack != null ? StackTrace.fromString(stack!) : null;
String prettyString() => '$err\n$stackTrace';

@override
String toString() {
final String stack = indentString(stackTrace?.toString() ?? '-', ' ');
final String task = indentString(this.task?.toString() ?? '-', ' ');
StackTrace get stackTrace {
final String stackString = indentString(stack?.toString() ?? '-', ' ');
final String taskString = indentString(task?.toString() ?? '-', ' ');

return 'Error: $err\nStack Trace:\n$stack\nTask Trace:\n$task';
return StackTrace.fromString(
'Stack Trace:\n$stackString\nTask Trace:\n$taskString',
);
}

@override
String toString() => err;
}

class HErrorClassBinding extends HTExternalClass {
Expand Down

0 comments on commit ca0aae1

Please sign in to comment.