mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
fix #128
This commit is contained in:
@@ -139,7 +139,9 @@ class _SearchPageState extends State<SearchPage> {
|
||||
@override
|
||||
void initState() {
|
||||
var defaultSearchTarget = appdata.settings['defaultSearchTarget'];
|
||||
if (defaultSearchTarget != null &&
|
||||
if (defaultSearchTarget == "_aggregated_") {
|
||||
aggregatedSearch = true;
|
||||
} else if (defaultSearchTarget != null &&
|
||||
ComicSource.find(defaultSearchTarget) != null) {
|
||||
searchTarget = defaultSearchTarget;
|
||||
} else {
|
||||
|
@@ -45,8 +45,9 @@ class _SearchResultPageState extends State<SearchResultPage> {
|
||||
if (suggestionsController.entry != null) {
|
||||
suggestionsController.remove();
|
||||
}
|
||||
text = checkAutoLanguage(text);
|
||||
setState(() {
|
||||
this.text = text;
|
||||
this.text = text!;
|
||||
});
|
||||
appdata.addSearchHistory(text);
|
||||
controller.currentText = text;
|
||||
@@ -92,13 +93,33 @@ class _SearchResultPageState extends State<SearchResultPage> {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
String checkAutoLanguage(String text) {
|
||||
var setting = appdata.settings["autoAddLanguageFilter"] ?? 'none';
|
||||
if (setting == 'none') {
|
||||
return text;
|
||||
}
|
||||
var searchSource = sourceKey;
|
||||
// TODO: Move it to a better place
|
||||
const enabledSources = [
|
||||
'nhentai',
|
||||
'ehentai',
|
||||
];
|
||||
if (!enabledSources.contains(searchSource)) {
|
||||
return text;
|
||||
}
|
||||
if (!text.contains('language:')) {
|
||||
return '$text language:$setting';
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
sourceKey = widget.sourceKey;
|
||||
controller = SearchBarController(
|
||||
currentText: widget.text,
|
||||
currentText: checkAutoLanguage(widget.text),
|
||||
onSearch: search,
|
||||
);
|
||||
sourceKey = widget.sourceKey;
|
||||
options = widget.options ?? const [];
|
||||
validateOptions();
|
||||
text = widget.text;
|
||||
@@ -162,6 +183,12 @@ class _SearchResultPageState extends State<SearchResultPage> {
|
||||
child: IconButton(
|
||||
icon: const Icon(Icons.tune),
|
||||
onPressed: () async {
|
||||
if (suggestionOverlay != null) {
|
||||
suggestionsController.remove();
|
||||
}
|
||||
|
||||
var previousOptions = options;
|
||||
var previousSourceKey = sourceKey;
|
||||
await showDialog(
|
||||
context: context,
|
||||
useRootNavigator: true,
|
||||
@@ -169,7 +196,11 @@ class _SearchResultPageState extends State<SearchResultPage> {
|
||||
return _SearchSettingsDialog(state: this);
|
||||
},
|
||||
);
|
||||
setState(() {});
|
||||
if (previousOptions != options || previousSourceKey != sourceKey) {
|
||||
text = checkAutoLanguage(controller.text);
|
||||
controller.currentText = text;
|
||||
setState(() {});
|
||||
}
|
||||
},
|
||||
),
|
||||
);
|
||||
|
@@ -88,6 +88,30 @@ class _ExploreSettingsState extends State<ExploreSettings> {
|
||||
title: "Keyword blocking".tl,
|
||||
builder: () => const _ManageBlockingWordView(),
|
||||
).toSliver(),
|
||||
SelectSetting(
|
||||
title: "Default Search Target".tl,
|
||||
settingKey: "defaultSearchTarget",
|
||||
optionTranslation: {
|
||||
'_aggregated_': "Aggregated".tl,
|
||||
...((){
|
||||
var map = <String, String>{};
|
||||
for (var c in ComicSource.all()) {
|
||||
map[c.key] = c.name;
|
||||
}
|
||||
return map;
|
||||
}()),
|
||||
},
|
||||
).toSliver(),
|
||||
SelectSetting(
|
||||
title: "Auto Language Filters".tl,
|
||||
settingKey: "autoAddLanguageFilter",
|
||||
optionTranslation: {
|
||||
'none': "None".tl,
|
||||
'chinese': "Chinese",
|
||||
'english': "English",
|
||||
'japanese': "Japanese",
|
||||
},
|
||||
).toSliver(),
|
||||
],
|
||||
);
|
||||
}
|
||||
@@ -150,7 +174,7 @@ class _ManageBlockingWordViewState extends State<_ManageBlockingWordView> {
|
||||
errorText: error,
|
||||
),
|
||||
onChanged: (s) {
|
||||
if(error != null){
|
||||
if (error != null) {
|
||||
setState(() {
|
||||
error = null;
|
||||
});
|
||||
@@ -160,7 +184,8 @@ class _ManageBlockingWordViewState extends State<_ManageBlockingWordView> {
|
||||
actions: [
|
||||
Button.filled(
|
||||
onPressed: () {
|
||||
if(appdata.settings["blockedWords"].contains(controller.text)){
|
||||
if (appdata.settings["blockedWords"]
|
||||
.contains(controller.text)) {
|
||||
setState(() {
|
||||
error = "Keyword already exists".tl;
|
||||
});
|
||||
|
Reference in New Issue
Block a user