added support for overriding locales
This commit is contained in:
+18
@@ -17,6 +17,7 @@
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/material.dart' show ThemeMode;
|
||||
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
|
||||
import 'package:riverpod/riverpod.dart';
|
||||
@@ -141,6 +142,18 @@ class EngineSettingsReplicationService
|
||||
.read(preferenceFixatorProvider.notifier)
|
||||
.register('pdfjs.disabled', !settings.enablePdfJs);
|
||||
}
|
||||
if (!const DeepCollectionEquality.unordered().equals(
|
||||
previous.value?.locales,
|
||||
settings.locales,
|
||||
)) {
|
||||
// ignore: only_use_keep_alive_inside_keep_alive
|
||||
await ref
|
||||
.read(preferenceFixatorProvider.notifier)
|
||||
.register(
|
||||
'intl.accept_languages',
|
||||
settings.locales.join(','),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
await _service.setDefaultSettings(settings);
|
||||
|
||||
@@ -149,6 +162,11 @@ class EngineSettingsReplicationService
|
||||
.read(preferenceFixatorProvider.notifier)
|
||||
.register('pdfjs.disabled', !settings.enablePdfJs);
|
||||
|
||||
// ignore: only_use_keep_alive_inside_keep_alive
|
||||
await ref
|
||||
.read(preferenceFixatorProvider.notifier)
|
||||
.register('intl.accept_languages', settings.locales.join(','));
|
||||
|
||||
initialSettingsSent = true;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ final class EngineSettingsReplicationServiceProvider
|
||||
}
|
||||
|
||||
String _$engineSettingsReplicationServiceHash() =>
|
||||
r'd28cc58a94f45008a478bf52a9c40d61811b591d';
|
||||
r'7583ebc8ca9c11377486ff5a3e763493dcdc903a';
|
||||
|
||||
abstract class _$EngineSettingsReplicationService extends $Notifier<void> {
|
||||
void build();
|
||||
|
||||
+2
-2
@@ -25,8 +25,6 @@ class PreferenceChangeListener extends _$PreferenceChangeListener {
|
||||
@Riverpod()
|
||||
class PreferenceFixator extends _$PreferenceFixator {
|
||||
Future<void> register(String name, Object value) async {
|
||||
await GeckoPrefService().applyPrefs({name: value});
|
||||
|
||||
state = {...state}
|
||||
..update(
|
||||
name,
|
||||
@@ -36,6 +34,8 @@ class PreferenceFixator extends _$PreferenceFixator {
|
||||
return value;
|
||||
},
|
||||
);
|
||||
|
||||
await GeckoPrefService().applyPrefs({name: value});
|
||||
}
|
||||
|
||||
Future<void> unregister(String name) async {
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ final class PreferenceFixatorProvider
|
||||
}
|
||||
}
|
||||
|
||||
String _$preferenceFixatorHash() => r'dfa323859c660d3db74dba7297e2a33b758ed78a';
|
||||
String _$preferenceFixatorHash() => r'c76245d5c420e2e3f6c026f23c017c939b69ef59';
|
||||
|
||||
abstract class _$PreferenceFixator extends $Notifier<Map<String, Object>> {
|
||||
Map<String, Object> build();
|
||||
|
||||
Reference in New Issue
Block a user