45 lines
1.3 KiB
Dart
45 lines
1.3 KiB
Dart
import 'package:flutter_qjs/flutter_qjs.dart';
|
|
import 'package:mangayomi/models/source.dart';
|
|
import 'package:mangayomi/modules/browse/extension/providers/extension_preferences_providers.dart';
|
|
|
|
class JsPreferences {
|
|
late JavascriptRuntime runtime;
|
|
late Source? source;
|
|
JsPreferences(this.runtime, this.source);
|
|
|
|
init() {
|
|
runtime.onMessage('getPreferenceValue', (dynamic args) async {
|
|
return await getPreferenceValueAsync(source!.id!, args[0]);
|
|
});
|
|
runtime.onMessage('getPrefStringValue', (dynamic args) async {
|
|
return getSourcePreferenceStringValue(source!.id!, args[0], args[1]);
|
|
});
|
|
runtime.onMessage('setPrefStringValue', (dynamic args) async {
|
|
return setSourcePreferenceStringValue(source!.id!, args[0], args[1]);
|
|
});
|
|
|
|
runtime.evaluate('''
|
|
async function getPreferenceValue(key) {
|
|
const result = await sendMessage(
|
|
"getPreferenceValue",
|
|
JSON.stringify([key])
|
|
);
|
|
return result;
|
|
}
|
|
async function getPrefStringValue(key,defaultValue) {
|
|
const result = await sendMessage(
|
|
"getPrefStringValue",
|
|
JSON.stringify([key,defaultValue])
|
|
);
|
|
return result;
|
|
}
|
|
async function setPrefStringValue(key,defaultValue) {
|
|
const result = await sendMessage(
|
|
"setPrefStringValue",
|
|
JSON.stringify([key,defaultValue])
|
|
);
|
|
return result;
|
|
}
|
|
''');
|
|
}
|
|
}
|