fix: encoding and decoding logic

This commit is contained in:
Prateek Sunal 2024-04-27 16:02:42 +05:30
parent a22f38ca3b
commit adbb8f38c9
2 changed files with 14 additions and 15 deletions

View file

@ -151,11 +151,12 @@ class Code {
}
String toExportFormat() {
return Uri.parse(
rawData +
"&codeDisplay=" +
jsonEncode((display ?? CodeDisplay()).toJson()),
).toString();
return jsonEncode(
Uri.parse(
"$rawData&codeDisplay="
"${jsonEncode((display ?? CodeDisplay()).toJson())}",
).toString(),
);
}
static String _getIssuer(Uri uri) {

View file

@ -29,18 +29,16 @@ class CodeStore {
final List<Code> codes = [];
for (final entity in entities) {
try {
if (entity.rawData.startsWith('otpauth://')) {
final code = Code.fromOTPAuthUrl(entity.rawData);
code.generatedID = entity.generatedID;
code.hasSynced = entity.hasSynced;
codes.add(code);
final decodeJson = jsonDecode(entity.rawData);
late Code code;
if (decodeJson is String && decodeJson.startsWith('otpauth://')) {
code = Code.fromOTPAuthUrl(decodeJson);
} else {
final decodeJson = jsonDecode(entity.rawData);
final code = Code.fromExportJson(decodeJson);
code.generatedID = entity.generatedID;
code.hasSynced = entity.hasSynced;
codes.add(code);
code = Code.fromExportJson(decodeJson);
}
code.generatedID = entity.generatedID;
code.hasSynced = entity.hasSynced;
codes.add(code);
} catch (e) {
_logger.severe("Could not parse code", e);
}