Change error prompts
This commit is contained in:
@@ -14,9 +14,9 @@ sealed class UpdateFailure with _$UpdateFailure, Failure {
|
||||
]) = UpdateUnexpectedFailure;
|
||||
|
||||
@override
|
||||
String present(TranslationsEn t) {
|
||||
({String type, String? message}) present(TranslationsEn t) {
|
||||
return switch (this) {
|
||||
UpdateUnexpectedFailure() => t.failure.unexpected,
|
||||
UpdateUnexpectedFailure() => (type: t.failure.unexpected, message: null),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,15 +25,20 @@ sealed class ConnectionFailure with _$ConnectionFailure, Failure {
|
||||
CoreConnectionFailure;
|
||||
|
||||
@override
|
||||
String present(TranslationsEn t) {
|
||||
({String type, String? message}) present(TranslationsEn t) {
|
||||
return switch (this) {
|
||||
UnexpectedConnectionFailure() => t.failure.connectivity.unexpected,
|
||||
MissingVpnPermission(:final message) =>
|
||||
t.failure.connectivity.missingVpnPermission +
|
||||
(message == null ? "" : ": $message"),
|
||||
MissingNotificationPermission(:final message) =>
|
||||
t.failure.connectivity.missingNotificationPermission +
|
||||
(message == null ? "" : ": $message"),
|
||||
UnexpectedConnectionFailure() => (
|
||||
type: t.failure.connectivity.unexpected,
|
||||
message: null
|
||||
),
|
||||
MissingVpnPermission(:final message) => (
|
||||
type: t.failure.connectivity.missingVpnPermission,
|
||||
message: message
|
||||
),
|
||||
MissingNotificationPermission(:final message) => (
|
||||
type: t.failure.connectivity.missingNotificationPermission,
|
||||
message: message
|
||||
),
|
||||
CoreConnectionFailure(:final failure) => failure.present(t),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -42,19 +42,32 @@ sealed class CoreServiceFailure with _$CoreServiceFailure, Failure {
|
||||
};
|
||||
|
||||
@override
|
||||
String present(TranslationsEn t) {
|
||||
({String type, String? message}) present(TranslationsEn t) {
|
||||
return switch (this) {
|
||||
UnexpectedCoreServiceFailure() => t.failure.singbox.unexpected,
|
||||
CoreServiceNotRunning(:final message) =>
|
||||
t.failure.singbox.serviceNotRunning +
|
||||
(message == null ? "" : ": $message"),
|
||||
InvalidConfig(:final message) =>
|
||||
t.failure.singbox.invalidConfig + (message == null ? "" : ": $message"),
|
||||
CoreServiceCreateFailure(:final message) =>
|
||||
t.failure.singbox.create + (message == null ? "" : ": $message"),
|
||||
CoreServiceStartFailure(:final message) =>
|
||||
t.failure.singbox.start + (message == null ? "" : ": $message"),
|
||||
CoreServiceOtherFailure(:final message) => message ?? "",
|
||||
UnexpectedCoreServiceFailure() => (
|
||||
type: t.failure.singbox.unexpected,
|
||||
message: null
|
||||
),
|
||||
CoreServiceNotRunning(:final message) => (
|
||||
type: t.failure.singbox.serviceNotRunning,
|
||||
message: message
|
||||
),
|
||||
InvalidConfig(:final message) => (
|
||||
type: t.failure.singbox.invalidConfig,
|
||||
message: message
|
||||
),
|
||||
CoreServiceCreateFailure(:final message) => (
|
||||
type: t.failure.singbox.create,
|
||||
message: message
|
||||
),
|
||||
CoreServiceStartFailure(:final message) => (
|
||||
type: t.failure.singbox.start,
|
||||
message: message
|
||||
),
|
||||
CoreServiceOtherFailure(:final message) => (
|
||||
type: t.failure.singbox.unexpected,
|
||||
message: message
|
||||
),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,20 @@ import 'package:hiddify/core/locale/locale.dart';
|
||||
|
||||
// TODO: rewrite
|
||||
mixin Failure {
|
||||
String present(TranslationsEn t);
|
||||
({String type, String? message}) present(TranslationsEn t);
|
||||
}
|
||||
|
||||
extension ErrorPresenter on TranslationsEn {
|
||||
String presentError(Object error) {
|
||||
if (error case Failure()) return error.present(this);
|
||||
String printError(Object error) {
|
||||
if (error case Failure()) {
|
||||
final err = error.present(this);
|
||||
return err.type + (err.message == null ? "" : ": ${err.message}");
|
||||
}
|
||||
return failure.unexpected;
|
||||
}
|
||||
|
||||
({String type, String? message}) presentError(Object error) {
|
||||
if (error case Failure()) return error.present(this);
|
||||
return (type: failure.unexpected, message: null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,13 +19,20 @@ sealed class ProfileFailure with _$ProfileFailure, Failure {
|
||||
ProfileInvalidConfigFailure;
|
||||
|
||||
@override
|
||||
String present(TranslationsEn t) {
|
||||
({String type, String? message}) present(TranslationsEn t) {
|
||||
return switch (this) {
|
||||
ProfileUnexpectedFailure() => t.failure.profiles.unexpected,
|
||||
ProfileNotFoundFailure() => t.failure.profiles.notFound,
|
||||
ProfileInvalidConfigFailure(:final message) =>
|
||||
t.failure.profiles.invalidConfig +
|
||||
(message == null ? "" : ": $message"),
|
||||
ProfileUnexpectedFailure() => (
|
||||
type: t.failure.profiles.unexpected,
|
||||
message: null
|
||||
),
|
||||
ProfileNotFoundFailure() => (
|
||||
type: t.failure.profiles.notFound,
|
||||
message: null
|
||||
),
|
||||
ProfileInvalidConfigFailure(:final message) => (
|
||||
type: t.failure.profiles.invalidConfig,
|
||||
message: message
|
||||
),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user