From 95e91c567540cf17ff7d564a4c5ffb5d7aa2ef59 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 9 Sep 2022 16:03:15 +0200 Subject: [PATCH 1/4] DiskStorageService: add security key Ref: #34 --- .../lib/services/disk_storage_service.dart | 10 ++++++++++ .../allocate_disk_space_model_test.mocks.dart | 4 ++++ .../choose_security_key_page_test.mocks.dart | 8 ++++++++ .../install_alongside_model_test.mocks.dart | 4 ++++ .../installation_type_model_test.mocks.dart | 4 ++++ .../not_enough_disk_space_model_test.mocks.dart | 4 ++++ .../select_guided_storage_model_test.mocks.dart | 4 ++++ .../services/disk_storage_service_test.dart | 17 +++++++++++++++++ .../write_changes_to_disk_model_test.mocks.dart | 4 ++++ 9 files changed, 59 insertions(+) diff --git a/packages/ubuntu_desktop_installer/lib/services/disk_storage_service.dart b/packages/ubuntu_desktop_installer/lib/services/disk_storage_service.dart index aa3207d26e..08be53cf74 100644 --- a/packages/ubuntu_desktop_installer/lib/services/disk_storage_service.dart +++ b/packages/ubuntu_desktop_installer/lib/services/disk_storage_service.dart @@ -35,6 +35,7 @@ class DiskStorageService { int? _largestDiskSize; List? _existingOS; GuidedStorageTarget? _guidedTarget; + String? _securityKey; /// Whether the system has multiple disks available for guided partitioning. bool get hasMultipleDisks => _hasMultipleDisks ?? false; @@ -62,6 +63,14 @@ class DiskStorageService { _useLvm = useLvm; } + /// A security key for full disk encryption. + String? get securityKey => _securityKey; + set securityKey(String? securityKey) { + final hiddenKey = securityKey == null ? null : '*' * securityKey.length; + log.debug('set security key: $hiddenKey'); + _securityKey = securityKey; + } + /// A guided storage target. GuidedStorageTarget? get guidedTarget => _guidedTarget; set guidedTarget(GuidedStorageTarget? target) { @@ -92,6 +101,7 @@ class DiskStorageService { GuidedChoiceV2( target: guidedTarget!, useLvm: useLvm, + password: securityKey, ), ); } diff --git a/packages/ubuntu_desktop_installer/test/allocate_disk_space/allocate_disk_space_model_test.mocks.dart b/packages/ubuntu_desktop_installer/test/allocate_disk_space/allocate_disk_space_model_test.mocks.dart index 58e319c6e7..1040b50357 100644 --- a/packages/ubuntu_desktop_installer/test/allocate_disk_space/allocate_disk_space_model_test.mocks.dart +++ b/packages/ubuntu_desktop_installer/test/allocate_disk_space/allocate_disk_space_model_test.mocks.dart @@ -73,6 +73,10 @@ class MockDiskStorageService extends _i1.Mock super.noSuchMethod(Invocation.setter(#useLvm, useLvm), returnValueForMissingStub: null); @override + set securityKey(String? securityKey) => + super.noSuchMethod(Invocation.setter(#securityKey, securityKey), + returnValueForMissingStub: null); + @override set guidedTarget(_i2.GuidedStorageTarget? target) => super.noSuchMethod(Invocation.setter(#guidedTarget, target), returnValueForMissingStub: null); diff --git a/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_page_test.mocks.dart b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_page_test.mocks.dart index e8f0f31b8f..f5c0df70ca 100644 --- a/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_page_test.mocks.dart +++ b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_page_test.mocks.dart @@ -47,6 +47,14 @@ class MockChooseSecurityKeyModel extends _i1.Mock super.noSuchMethod(Invocation.setter(#confirmedSecurityKey, value), returnValueForMissingStub: null); @override + bool get showSecurityKey => (super + .noSuchMethod(Invocation.getter(#showSecurityKey), returnValue: false) + as bool); + @override + set showSecurityKey(bool? value) => + super.noSuchMethod(Invocation.setter(#showSecurityKey, value), + returnValueForMissingStub: null); + @override bool get isValid => (super.noSuchMethod(Invocation.getter(#isValid), returnValue: false) as bool); diff --git a/packages/ubuntu_desktop_installer/test/install_alongside/install_alongside_model_test.mocks.dart b/packages/ubuntu_desktop_installer/test/install_alongside/install_alongside_model_test.mocks.dart index 8e2ca7630d..4fab2f7d62 100644 --- a/packages/ubuntu_desktop_installer/test/install_alongside/install_alongside_model_test.mocks.dart +++ b/packages/ubuntu_desktop_installer/test/install_alongside/install_alongside_model_test.mocks.dart @@ -73,6 +73,10 @@ class MockDiskStorageService extends _i1.Mock super.noSuchMethod(Invocation.setter(#useLvm, useLvm), returnValueForMissingStub: null); @override + set securityKey(String? securityKey) => + super.noSuchMethod(Invocation.setter(#securityKey, securityKey), + returnValueForMissingStub: null); + @override set guidedTarget(_i2.GuidedStorageTarget? target) => super.noSuchMethod(Invocation.setter(#guidedTarget, target), returnValueForMissingStub: null); diff --git a/packages/ubuntu_desktop_installer/test/installation_type/installation_type_model_test.mocks.dart b/packages/ubuntu_desktop_installer/test/installation_type/installation_type_model_test.mocks.dart index 5fc67de2ac..5254504d0f 100644 --- a/packages/ubuntu_desktop_installer/test/installation_type/installation_type_model_test.mocks.dart +++ b/packages/ubuntu_desktop_installer/test/installation_type/installation_type_model_test.mocks.dart @@ -77,6 +77,10 @@ class MockDiskStorageService extends _i1.Mock super.noSuchMethod(Invocation.setter(#useLvm, useLvm), returnValueForMissingStub: null); @override + set securityKey(String? securityKey) => + super.noSuchMethod(Invocation.setter(#securityKey, securityKey), + returnValueForMissingStub: null); + @override set guidedTarget(_i2.GuidedStorageTarget? target) => super.noSuchMethod(Invocation.setter(#guidedTarget, target), returnValueForMissingStub: null); diff --git a/packages/ubuntu_desktop_installer/test/not_enough_disk_space/not_enough_disk_space_model_test.mocks.dart b/packages/ubuntu_desktop_installer/test/not_enough_disk_space/not_enough_disk_space_model_test.mocks.dart index 32148b56a4..f4f268da34 100644 --- a/packages/ubuntu_desktop_installer/test/not_enough_disk_space/not_enough_disk_space_model_test.mocks.dart +++ b/packages/ubuntu_desktop_installer/test/not_enough_disk_space/not_enough_disk_space_model_test.mocks.dart @@ -73,6 +73,10 @@ class MockDiskStorageService extends _i1.Mock super.noSuchMethod(Invocation.setter(#useLvm, useLvm), returnValueForMissingStub: null); @override + set securityKey(String? securityKey) => + super.noSuchMethod(Invocation.setter(#securityKey, securityKey), + returnValueForMissingStub: null); + @override set guidedTarget(_i2.GuidedStorageTarget? target) => super.noSuchMethod(Invocation.setter(#guidedTarget, target), returnValueForMissingStub: null); diff --git a/packages/ubuntu_desktop_installer/test/select_guided_storage/select_guided_storage_model_test.mocks.dart b/packages/ubuntu_desktop_installer/test/select_guided_storage/select_guided_storage_model_test.mocks.dart index 7b6447b324..adb11100ee 100644 --- a/packages/ubuntu_desktop_installer/test/select_guided_storage/select_guided_storage_model_test.mocks.dart +++ b/packages/ubuntu_desktop_installer/test/select_guided_storage/select_guided_storage_model_test.mocks.dart @@ -73,6 +73,10 @@ class MockDiskStorageService extends _i1.Mock super.noSuchMethod(Invocation.setter(#useLvm, useLvm), returnValueForMissingStub: null); @override + set securityKey(String? securityKey) => + super.noSuchMethod(Invocation.setter(#securityKey, securityKey), + returnValueForMissingStub: null); + @override set guidedTarget(_i2.GuidedStorageTarget? target) => super.noSuchMethod(Invocation.setter(#guidedTarget, target), returnValueForMissingStub: null); diff --git a/packages/ubuntu_desktop_installer/test/services/disk_storage_service_test.dart b/packages/ubuntu_desktop_installer/test/services/disk_storage_service_test.dart index 4daf3fcbad..efb48cc185 100644 --- a/packages/ubuntu_desktop_installer/test/services/disk_storage_service_test.dart +++ b/packages/ubuntu_desktop_installer/test/services/disk_storage_service_test.dart @@ -268,6 +268,23 @@ void main() { expect(service.guidedTarget, isNull); }); + test('set security key', () async { + final target = GuidedStorageTargetReformat(diskId: testDisks.first.id); + final choice = GuidedChoiceV2(target: target, password: 'foo123'); + when(client.setGuidedStorageV2(choice)) + .thenAnswer((_) async => testGuidedStorageResponse(configured: choice)); + + final service = DiskStorageService(client); + await untilCalled(client.getStorageV2()); + + service.securityKey = 'foo123'; + expect(service.securityKey, equals('foo123')); + + service.guidedTarget = target; + await service.setGuidedStorage(); + verify(client.setGuidedStorageV2(choice)).called(1); + }); + test('has enough disk space', () async { final service = DiskStorageService(client); when(client.getStorageV2()).thenAnswer((_) async => testStorageResponse( diff --git a/packages/ubuntu_desktop_installer/test/write_changes_to_disk/write_changes_to_disk_model_test.mocks.dart b/packages/ubuntu_desktop_installer/test/write_changes_to_disk/write_changes_to_disk_model_test.mocks.dart index af17db9271..320aeb0352 100644 --- a/packages/ubuntu_desktop_installer/test/write_changes_to_disk/write_changes_to_disk_model_test.mocks.dart +++ b/packages/ubuntu_desktop_installer/test/write_changes_to_disk/write_changes_to_disk_model_test.mocks.dart @@ -73,6 +73,10 @@ class MockDiskStorageService extends _i1.Mock super.noSuchMethod(Invocation.setter(#useLvm, useLvm), returnValueForMissingStub: null); @override + set securityKey(String? securityKey) => + super.noSuchMethod(Invocation.setter(#securityKey, securityKey), + returnValueForMissingStub: null); + @override set guidedTarget(_i2.GuidedStorageTarget? target) => super.noSuchMethod(Invocation.setter(#guidedTarget, target), returnValueForMissingStub: null); From c1117da6242b8ff68674c70c98ad5681ce75d215 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 9 Sep 2022 16:06:05 +0200 Subject: [PATCH 2/4] Choose a security key: implement the page Ref: #34 --- .../lib/l10n/app_en.arb | 2 + .../lib/l10n/app_localizations.dart | 12 ++ .../choose_security_key_model.dart | 20 ++- .../choose_security_key_page.dart | 13 +- .../choose_security_key_widgets.dart | 27 ++- .../choose_security_key_model_test.dart | 27 ++- .../choose_security_key_model_test.mocks.dart | 163 ++++++++++++++++++ .../choose_security_key_page_test.dart | 29 +++- 8 files changed, 268 insertions(+), 25 deletions(-) create mode 100644 packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.mocks.dart diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_en.arb b/packages/ubuntu_desktop_installer/lib/l10n/app_en.arb index 2210bbb0e5..e81edbd06d 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_en.arb +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_en.arb @@ -80,6 +80,7 @@ "dontInstallDriverSoftwareNowDescription": "You can install it later from Software & Updates.", "configureSecureBootSecurityKeyRequired": "Security key is required", "secureBootSecurityKeysDontMatch": "Security keys do not match", + "showSecurityKey": "Show security key", "connectToInternetPageTitle": "Connect to internet", "connectToInternetDescription": "Connecting this computer to the internet will help Ubuntu install any extra software needed and help choose your time zone.\n\nConnect by ethernet cable, or choose a Wi-Fi network", "useWiredConnection": "Use wired connection", @@ -176,6 +177,7 @@ } }, "installationTypeLVMSelected": "LVM selected", + "installationTypeLVMEncryptionSelected": "LVM and encryption selected", "installationTypeEncrypt": "Encrypt the new {RELEASE} installation for security", "@installationTypeEncrypt": { "type": "text", diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations.dart index ed76731f30..4f61db6168 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations.dart @@ -465,6 +465,12 @@ abstract class AppLocalizations { /// **'Security keys do not match'** String get secureBootSecurityKeysDontMatch; + /// No description provided for @showSecurityKey. + /// + /// In en, this message translates to: + /// **'Show security key'** + String get showSecurityKey; + /// No description provided for @connectToInternetPageTitle. /// /// In en, this message translates to: @@ -747,6 +753,12 @@ abstract class AppLocalizations { /// **'LVM selected'** String get installationTypeLVMSelected; + /// No description provided for @installationTypeLVMEncryptionSelected. + /// + /// In en, this message translates to: + /// **'LVM and encryption selected'** + String get installationTypeLVMEncryptionSelected; + /// No description provided for @installationTypeEncrypt. /// /// In en, this message translates to: diff --git a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_model.dart b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_model.dart index 09d233c004..78ac4f2531 100644 --- a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_model.dart +++ b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_model.dart @@ -1,21 +1,24 @@ import 'package:flutter/foundation.dart'; import 'package:safe_change_notifier/safe_change_notifier.dart'; -import 'package:subiquity_client/subiquity_client.dart'; + +import '../../services.dart'; /// View model for [ChooseSecurityKeyPage]. class ChooseSecurityKeyModel extends SafeChangeNotifier { /// Creates the model with the given client. - ChooseSecurityKeyModel(this._client) { + ChooseSecurityKeyModel(this._service) { Listenable.merge([ _securityKey, _confirmedSecurityKey, + _showSecurityKey, ]).addListener(notifyListeners); } - // ignore: unused_field, will be used for sending the security key to subiquity - final SubiquityClient _client; + final DiskStorageService _service; + final _securityKey = ValueNotifier(''); final _confirmedSecurityKey = ValueNotifier(''); + final _showSecurityKey = ValueNotifier(false); /// The current security key. String get securityKey => _securityKey.value; @@ -25,17 +28,22 @@ class ChooseSecurityKeyModel extends SafeChangeNotifier { String get confirmedSecurityKey => _confirmedSecurityKey.value; set confirmedSecurityKey(String value) => _confirmedSecurityKey.value = value; + /// Defines if the security is shown. + bool get showSecurityKey => _showSecurityKey.value; + set showSecurityKey(bool value) => _showSecurityKey.value = value; + /// Whether the current input is valid. bool get isValid => securityKey.isNotEmpty && securityKey == confirmedSecurityKey; /// Loads the security key. Future loadSecurityKey() async { - // TODO: fetch from subiquity + _securityKey.value = + _confirmedSecurityKey.value = _service.securityKey ?? ''; } /// Saves the security key. Future saveSecurityKey() async { - // TODO: send to subiquity + _service.securityKey = securityKey; } } diff --git a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_page.dart b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_page.dart index dd01df645f..ce417a59a8 100644 --- a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_page.dart +++ b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_page.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_html/flutter_html.dart'; import 'package:form_field_validator/form_field_validator.dart'; import 'package:provider/provider.dart'; -import 'package:subiquity_client/subiquity_client.dart'; +import 'package:ubuntu_widgets/ubuntu_widgets.dart'; import 'package:ubuntu_wizard/constants.dart'; import 'package:ubuntu_wizard/utils.dart'; import 'package:ubuntu_wizard/widgets.dart'; @@ -26,9 +26,9 @@ class ChooseSecurityKeyPage extends StatefulWidget { /// Creates an instance with [ChooseSecurityKeyModel]. static Widget create(BuildContext context) { - final client = getService(); + final service = getService(); return ChangeNotifierProvider( - create: (_) => ChooseSecurityKeyModel(client), + create: (_) => ChooseSecurityKeyModel(service), child: const ChooseSecurityKeyPage(), ); } @@ -41,9 +41,10 @@ class _ChooseSecurityKeyPageState extends State { @override void initState() { super.initState(); - final model = Provider.of(context, listen: false); - model.loadSecurityKey(); + WidgetsBinding.instance.addPostFrameCallback((_) { + model.loadSecurityKey(); + }); } @override @@ -63,6 +64,8 @@ class _ChooseSecurityKeyPageState extends State { _SecurityKeyFormField(fieldWidth: fieldWidth), const SizedBox(height: kContentSpacing), _ConfirmSecurityKeyFormField(fieldWidth: fieldWidth), + const SizedBox(height: kContentSpacing / 2), + const _SecurityKeyShowButton(), const SizedBox(height: kContentSpacing), Align( alignment: Alignment.centerLeft, diff --git a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_widgets.dart b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_widgets.dart index 58cf85d33a..7a3ccc23cf 100644 --- a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_widgets.dart +++ b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_widgets.dart @@ -10,11 +10,13 @@ class _SecurityKeyFormField extends StatelessWidget { final lang = AppLocalizations.of(context); final securityKey = context .select((model) => model.securityKey); + final showSecurityKey = context + .select((model) => model.showSecurityKey); return ValidatedFormField( fieldWidth: fieldWidth, labelText: lang.chooseSecurityKeyHint, - obscureText: true, + obscureText: !showSecurityKey, successWidget: securityKey.isNotEmpty ? const SuccessIcon() : null, initialValue: securityKey, validator: RequiredValidator( @@ -41,11 +43,13 @@ class _ConfirmSecurityKeyFormField extends StatelessWidget { .select((model) => model.securityKey); final confirmedSecurityKey = context.select( (model) => model.confirmedSecurityKey); + final showSecurityKey = context + .select((model) => model.showSecurityKey); return ValidatedFormField( fieldWidth: fieldWidth, labelText: lang.chooseSecurityKeyConfirmHint, - obscureText: true, + obscureText: !showSecurityKey, successWidget: confirmedSecurityKey.isNotEmpty ? const SuccessIcon() : null, initialValue: confirmedSecurityKey, @@ -62,3 +66,22 @@ class _ConfirmSecurityKeyFormField extends StatelessWidget { ); } } + +class _SecurityKeyShowButton extends StatelessWidget { + const _SecurityKeyShowButton(); + + @override + Widget build(BuildContext context) { + final lang = AppLocalizations.of(context); + final showSecurityKey = context + .select((model) => model.showSecurityKey); + + return CheckButton( + value: showSecurityKey, + title: Text(lang.showSecurityKey), + onChanged: (value) { + context.read().showSecurityKey = value!; + }, + ); + } +} diff --git a/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.dart b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.dart index 57fd60126d..03e67d1049 100644 --- a/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.dart +++ b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.dart @@ -1,10 +1,15 @@ import 'package:flutter_test/flutter_test.dart'; +import 'package:mockito/annotations.dart'; +import 'package:mockito/mockito.dart'; import 'package:ubuntu_desktop_installer/pages/choose_security_key/choose_security_key_model.dart'; -import 'package:ubuntu_test/mocks.dart'; +import 'package:ubuntu_desktop_installer/services/disk_storage_service.dart'; +import 'choose_security_key_model_test.mocks.dart'; + +@GenerateMocks([DiskStorageService]) void main() { test('notify changes', () { - final model = ChooseSecurityKeyModel(MockSubiquityClient()); + final model = ChooseSecurityKeyModel(MockDiskStorageService()); var wasNotified = false; model.addListener(() => wasNotified = true); @@ -18,10 +23,15 @@ void main() { expect(model.confirmedSecurityKey, isEmpty); model.confirmedSecurityKey = 'bar'; expect(wasNotified, isTrue); + + wasNotified = false; + expect(model.showSecurityKey, isFalse); + model.showSecurityKey = true; + expect(wasNotified, isTrue); }); test('validation', () { - final model = ChooseSecurityKeyModel(MockSubiquityClient()); + final model = ChooseSecurityKeyModel(MockDiskStorageService()); expect(model.isValid, isFalse); void testValid( @@ -38,4 +48,15 @@ void main() { testValid('foo', 'foo', isTrue); testValid('foo', 'bar', isFalse); }); + + test('save security key', () async { + final service = MockDiskStorageService(); + + final model = ChooseSecurityKeyModel(service); + model.securityKey = 'foo123'; + + await model.saveSecurityKey(); + verify(service.securityKey = 'foo123').called(1); + verifyNever(service.setGuidedStorage()); + }); } diff --git a/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.mocks.dart b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.mocks.dart new file mode 100644 index 0000000000..682141d811 --- /dev/null +++ b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.mocks.dart @@ -0,0 +1,163 @@ +// Mocks generated by Mockito 5.3.0 from annotations +// in ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.dart. +// Do not manually edit this file. + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'dart:async' as _i4; + +import 'package:mockito/mockito.dart' as _i1; +import 'package:subiquity_client/subiquity_client.dart' as _i2; +import 'package:ubuntu_desktop_installer/services/disk_storage_service.dart' + as _i3; + +// ignore_for_file: type=lint +// ignore_for_file: avoid_redundant_argument_values +// ignore_for_file: avoid_setters_without_getters +// ignore_for_file: comment_references +// ignore_for_file: implementation_imports +// ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: prefer_const_constructors +// ignore_for_file: unnecessary_parenthesis +// ignore_for_file: camel_case_types +// ignore_for_file: subtype_of_sealed_class + +class _FakeGuidedStorageResponseV2_0 extends _i1.SmartFake + implements _i2.GuidedStorageResponseV2 { + _FakeGuidedStorageResponseV2_0(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); +} + +/// A class which mocks [DiskStorageService]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockDiskStorageService extends _i1.Mock + implements _i3.DiskStorageService { + MockDiskStorageService() { + _i1.throwOnMissingStub(this); + } + + @override + bool get hasMultipleDisks => + (super.noSuchMethod(Invocation.getter(#hasMultipleDisks), + returnValue: false) as bool); + @override + bool get needRoot => + (super.noSuchMethod(Invocation.getter(#needRoot), returnValue: false) + as bool); + @override + bool get needBoot => + (super.noSuchMethod(Invocation.getter(#needBoot), returnValue: false) + as bool); + @override + bool get hasRst => + (super.noSuchMethod(Invocation.getter(#hasRst), returnValue: false) + as bool); + @override + bool get hasBitLocker => + (super.noSuchMethod(Invocation.getter(#hasBitLocker), returnValue: false) + as bool); + @override + bool get hasEncryption => + (super.noSuchMethod(Invocation.getter(#hasEncryption), returnValue: false) + as bool); + @override + bool get hasSecureBoot => + (super.noSuchMethod(Invocation.getter(#hasSecureBoot), returnValue: false) + as bool); + @override + bool get useLvm => + (super.noSuchMethod(Invocation.getter(#useLvm), returnValue: false) + as bool); + @override + set useLvm(bool? useLvm) => + super.noSuchMethod(Invocation.setter(#useLvm, useLvm), + returnValueForMissingStub: null); + @override + set securityKey(String? securityKey) => + super.noSuchMethod(Invocation.setter(#securityKey, securityKey), + returnValueForMissingStub: null); + @override + set guidedTarget(_i2.GuidedStorageTarget? target) => + super.noSuchMethod(Invocation.setter(#guidedTarget, target), + returnValueForMissingStub: null); + @override + int get installMinimumSize => (super + .noSuchMethod(Invocation.getter(#installMinimumSize), returnValue: 0) + as int); + @override + int get largestDiskSize => + (super.noSuchMethod(Invocation.getter(#largestDiskSize), returnValue: 0) + as int); + @override + bool get hasEnoughDiskSpace => + (super.noSuchMethod(Invocation.getter(#hasEnoughDiskSpace), + returnValue: false) as bool); + @override + _i4.Future init() => (super.noSuchMethod(Invocation.method(#init, []), + returnValue: _i4.Future.value(), + returnValueForMissingStub: _i4.Future.value()) as _i4.Future); + @override + _i4.Future<_i2.GuidedStorageResponseV2> getGuidedStorage() => + (super.noSuchMethod(Invocation.method(#getGuidedStorage, []), + returnValue: _i4.Future<_i2.GuidedStorageResponseV2>.value( + _FakeGuidedStorageResponseV2_0( + this, Invocation.method(#getGuidedStorage, [])))) + as _i4.Future<_i2.GuidedStorageResponseV2>); + @override + _i4.Future<_i2.GuidedStorageResponseV2> setGuidedStorage() => + (super.noSuchMethod(Invocation.method(#setGuidedStorage, []), + returnValue: _i4.Future<_i2.GuidedStorageResponseV2>.value( + _FakeGuidedStorageResponseV2_0( + this, Invocation.method(#setGuidedStorage, [])))) + as _i4.Future<_i2.GuidedStorageResponseV2>); + @override + _i4.Future> getStorage() => + (super.noSuchMethod(Invocation.method(#getStorage, []), + returnValue: _i4.Future>.value(<_i2.Disk>[])) + as _i4.Future>); + @override + _i4.Future> getOriginalStorage() => + (super.noSuchMethod(Invocation.method(#getOriginalStorage, []), + returnValue: _i4.Future>.value(<_i2.Disk>[])) + as _i4.Future>); + @override + _i4.Future> addPartition( + _i2.Disk? disk, _i2.Gap? gap, _i2.Partition? partition) => + (super.noSuchMethod( + Invocation.method(#addPartition, [disk, gap, partition]), + returnValue: _i4.Future>.value(<_i2.Disk>[])) + as _i4.Future>); + @override + _i4.Future> editPartition( + _i2.Disk? disk, _i2.Partition? partition) => + (super.noSuchMethod(Invocation.method(#editPartition, [disk, partition]), + returnValue: _i4.Future>.value(<_i2.Disk>[])) + as _i4.Future>); + @override + _i4.Future> deletePartition( + _i2.Disk? disk, _i2.Partition? partition) => + (super.noSuchMethod( + Invocation.method(#deletePartition, [disk, partition]), + returnValue: _i4.Future>.value(<_i2.Disk>[])) + as _i4.Future>); + @override + _i4.Future> setStorage(List<_i2.Disk>? disks) => + (super.noSuchMethod(Invocation.method(#setStorage, [disks]), + returnValue: _i4.Future>.value(<_i2.Disk>[])) + as _i4.Future>); + @override + _i4.Future> resetStorage() => + (super.noSuchMethod(Invocation.method(#resetStorage, []), + returnValue: _i4.Future>.value(<_i2.Disk>[])) + as _i4.Future>); + @override + _i4.Future> addBootPartition(_i2.Disk? disk) => + (super.noSuchMethod(Invocation.method(#addBootPartition, [disk]), + returnValue: _i4.Future>.value(<_i2.Disk>[])) + as _i4.Future>); + @override + _i4.Future> reformatDisk(_i2.Disk? disk) => + (super.noSuchMethod(Invocation.method(#reformatDisk, [disk]), + returnValue: _i4.Future>.value(<_i2.Disk>[])) + as _i4.Future>); +} diff --git a/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_page_test.dart b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_page_test.dart index ee7bc2c80d..2bfac80797 100644 --- a/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_page_test.dart +++ b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_page_test.dart @@ -3,13 +3,13 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import 'package:provider/provider.dart'; -import 'package:subiquity_client/subiquity_client.dart'; import 'package:ubuntu_desktop_installer/pages/choose_security_key/choose_security_key_model.dart'; import 'package:ubuntu_desktop_installer/pages/choose_security_key/choose_security_key_page.dart'; import 'package:ubuntu_desktop_installer/services.dart'; -import 'package:ubuntu_test/mocks.dart'; +import 'package:ubuntu_widgets/ubuntu_widgets.dart'; import '../test_utils.dart'; +import 'choose_security_key_model_test.mocks.dart'; import 'choose_security_key_page_test.mocks.dart'; // ignore_for_file: type=lint @@ -20,11 +20,13 @@ void main() { bool? isValid, String? securityKey, String? confirmedSecurityKey, + bool? showSecurityKey, }) { final model = MockChooseSecurityKeyModel(); when(model.isValid).thenReturn(isValid ?? false); when(model.securityKey).thenReturn(securityKey ?? ''); when(model.confirmedSecurityKey).thenReturn(confirmedSecurityKey ?? ''); + when(model.showSecurityKey).thenReturn(showSecurityKey ?? false); return model; } @@ -79,12 +81,21 @@ void main() { expect(tester.widget(continueButton).enabled, isFalse); }); - testWidgets('load and save security key', (tester) async { - final model = buildModel(isValid: true); + testWidgets('show security key', (tester) async { + final model = buildModel(showSecurityKey: false); await tester.pumpWidget(tester.buildApp((_) => buildPage(model))); - verify(model.loadSecurityKey()).called(1); - verifyNever(model.saveSecurityKey()); + final showSecurityKeyButton = + find.widgetWithText(CheckButton, tester.lang.showSecurityKey); + expect(showSecurityKeyButton, findsOneWidget); + + await tester.tap(showSecurityKeyButton); + verify(model.showSecurityKey = true).called(1); + }); + + testWidgets('save security key', (tester) async { + final model = buildModel(isValid: true); + await tester.pumpWidget(tester.buildApp((_) => buildPage(model))); final continueButton = find.widgetWithText( OutlinedButton, @@ -97,9 +108,9 @@ void main() { }); testWidgets('creates a model', (tester) async { - final client = MockSubiquityClient(); - when(client.identity()).thenAnswer((_) async => IdentityData()); - registerMockService(client); + final service = MockDiskStorageService(); + when(service.securityKey).thenReturn(null); + registerMockService(service); await tester.pumpWidget(tester.buildApp(ChooseSecurityKeyPage.create)); From eb6b17cf1bc510b2e6d28cd50d2e431ee4a2dd82 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 9 Sep 2022 16:07:20 +0200 Subject: [PATCH 3/4] Regenerate l10n --- .../lib/l10n/app_localizations_am.dart | 6 ++++++ .../lib/l10n/app_localizations_ar.dart | 6 ++++++ .../lib/l10n/app_localizations_be.dart | 6 ++++++ .../lib/l10n/app_localizations_bg.dart | 6 ++++++ .../lib/l10n/app_localizations_bn.dart | 6 ++++++ .../lib/l10n/app_localizations_bo.dart | 6 ++++++ .../lib/l10n/app_localizations_bs.dart | 6 ++++++ .../lib/l10n/app_localizations_ca.dart | 6 ++++++ .../lib/l10n/app_localizations_cs.dart | 6 ++++++ .../lib/l10n/app_localizations_cy.dart | 6 ++++++ .../lib/l10n/app_localizations_da.dart | 6 ++++++ .../lib/l10n/app_localizations_de.dart | 6 ++++++ .../lib/l10n/app_localizations_dz.dart | 6 ++++++ .../lib/l10n/app_localizations_el.dart | 6 ++++++ .../lib/l10n/app_localizations_en.dart | 6 ++++++ .../lib/l10n/app_localizations_eo.dart | 6 ++++++ .../lib/l10n/app_localizations_es.dart | 6 ++++++ .../lib/l10n/app_localizations_et.dart | 6 ++++++ .../lib/l10n/app_localizations_eu.dart | 6 ++++++ .../lib/l10n/app_localizations_fa.dart | 6 ++++++ .../lib/l10n/app_localizations_fi.dart | 6 ++++++ .../lib/l10n/app_localizations_fr.dart | 6 ++++++ .../lib/l10n/app_localizations_ga.dart | 6 ++++++ .../lib/l10n/app_localizations_gl.dart | 6 ++++++ .../lib/l10n/app_localizations_gu.dart | 6 ++++++ .../lib/l10n/app_localizations_he.dart | 6 ++++++ .../lib/l10n/app_localizations_hi.dart | 6 ++++++ .../lib/l10n/app_localizations_hr.dart | 6 ++++++ .../lib/l10n/app_localizations_hu.dart | 6 ++++++ .../lib/l10n/app_localizations_id.dart | 6 ++++++ .../lib/l10n/app_localizations_is.dart | 6 ++++++ .../lib/l10n/app_localizations_it.dart | 6 ++++++ .../lib/l10n/app_localizations_ja.dart | 6 ++++++ .../lib/l10n/app_localizations_ka.dart | 6 ++++++ .../lib/l10n/app_localizations_kk.dart | 6 ++++++ .../lib/l10n/app_localizations_km.dart | 6 ++++++ .../lib/l10n/app_localizations_kn.dart | 6 ++++++ .../lib/l10n/app_localizations_ko.dart | 6 ++++++ .../lib/l10n/app_localizations_ku.dart | 6 ++++++ .../lib/l10n/app_localizations_lo.dart | 6 ++++++ .../lib/l10n/app_localizations_lt.dart | 6 ++++++ .../lib/l10n/app_localizations_lv.dart | 6 ++++++ .../lib/l10n/app_localizations_mk.dart | 6 ++++++ .../lib/l10n/app_localizations_ml.dart | 6 ++++++ .../lib/l10n/app_localizations_mr.dart | 6 ++++++ .../lib/l10n/app_localizations_my.dart | 6 ++++++ .../lib/l10n/app_localizations_nb.dart | 6 ++++++ .../lib/l10n/app_localizations_ne.dart | 6 ++++++ .../lib/l10n/app_localizations_nl.dart | 6 ++++++ .../lib/l10n/app_localizations_nn.dart | 6 ++++++ .../lib/l10n/app_localizations_oc.dart | 6 ++++++ .../lib/l10n/app_localizations_pa.dart | 6 ++++++ .../lib/l10n/app_localizations_pl.dart | 6 ++++++ .../lib/l10n/app_localizations_pt.dart | 6 ++++++ .../lib/l10n/app_localizations_ro.dart | 6 ++++++ .../lib/l10n/app_localizations_ru.dart | 6 ++++++ .../lib/l10n/app_localizations_se.dart | 6 ++++++ .../lib/l10n/app_localizations_si.dart | 6 ++++++ .../lib/l10n/app_localizations_sk.dart | 6 ++++++ .../lib/l10n/app_localizations_sl.dart | 6 ++++++ .../lib/l10n/app_localizations_sq.dart | 6 ++++++ .../lib/l10n/app_localizations_sr.dart | 6 ++++++ .../lib/l10n/app_localizations_sv.dart | 6 ++++++ .../lib/l10n/app_localizations_ta.dart | 6 ++++++ .../lib/l10n/app_localizations_te.dart | 6 ++++++ .../lib/l10n/app_localizations_tg.dart | 6 ++++++ .../lib/l10n/app_localizations_th.dart | 6 ++++++ .../lib/l10n/app_localizations_tl.dart | 6 ++++++ .../lib/l10n/app_localizations_tr.dart | 6 ++++++ .../lib/l10n/app_localizations_ug.dart | 6 ++++++ .../lib/l10n/app_localizations_uk.dart | 6 ++++++ .../lib/l10n/app_localizations_vi.dart | 6 ++++++ .../lib/l10n/app_localizations_zh.dart | 6 ++++++ 73 files changed, 438 insertions(+) diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_am.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_am.dart index 3f989eeeb4..31e12a8e18 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_am.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_am.dart @@ -135,6 +135,9 @@ class AppLocalizationsAm extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsAm extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ar.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ar.dart index d370b8709e..d4bef38890 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ar.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ar.dart @@ -135,6 +135,9 @@ class AppLocalizationsAr extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsAr extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_be.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_be.dart index 0a94a6fdc7..8388e8c80b 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_be.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_be.dart @@ -135,6 +135,9 @@ class AppLocalizationsBe extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsBe extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bg.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bg.dart index 66b3745a75..0de7426ad1 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bg.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bg.dart @@ -135,6 +135,9 @@ class AppLocalizationsBg extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsBg extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bn.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bn.dart index 895694ad0c..b3a17f476c 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bn.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bn.dart @@ -135,6 +135,9 @@ class AppLocalizationsBn extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsBn extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bo.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bo.dart index 5f7105dd19..c6f5cb3c19 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bo.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bo.dart @@ -135,6 +135,9 @@ class AppLocalizationsBo extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsBo extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bs.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bs.dart index becb6ede6c..7c8530fc01 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bs.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_bs.dart @@ -135,6 +135,9 @@ class AppLocalizationsBs extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsBs extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ca.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ca.dart index 16c83129ff..6f4a94d6b5 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ca.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ca.dart @@ -135,6 +135,9 @@ class AppLocalizationsCa extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsCa extends AppLocalizations { @override String get installationTypeLVMSelected => 'Seleccionat LVM'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_cs.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_cs.dart index 9264403619..ec11e04c85 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_cs.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_cs.dart @@ -135,6 +135,9 @@ class AppLocalizationsCs extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Do každé z kolonek pro klíč zabezpečení jste napsali něco jiného'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Připojit k Internetu'; @@ -292,6 +295,9 @@ class AppLocalizationsCs extends AppLocalizations { @override String get installationTypeLVMSelected => 'Vybráno LVM'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Zabezpečit novou instalaci $RELEASE šifrováním'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_cy.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_cy.dart index 74d5d7771d..4371501024 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_cy.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_cy.dart @@ -135,6 +135,9 @@ class AppLocalizationsCy extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsCy extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_da.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_da.dart index eecf9a173b..9bd7518983 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_da.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_da.dart @@ -135,6 +135,9 @@ class AppLocalizationsDa extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsDa extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_de.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_de.dart index de81131c74..a2c6fa71de 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_de.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_de.dart @@ -135,6 +135,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Die Sicherheitsschlüssel stimmen nicht überein'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Mit dem Internet verbinden'; @@ -292,6 +295,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM ausgewählt'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Die neue $RELEASE -Installation zur Sicherheit verschlüsseln'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_dz.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_dz.dart index 0785928a95..177ff4f887 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_dz.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_dz.dart @@ -135,6 +135,9 @@ class AppLocalizationsDz extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsDz extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_el.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_el.dart index 2276b8a690..406e29c5eb 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_el.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_el.dart @@ -135,6 +135,9 @@ class AppLocalizationsEl extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsEl extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_en.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_en.dart index 5fbc08fbf9..c84531ed46 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_en.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_en.dart @@ -135,6 +135,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_eo.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_eo.dart index 598a48ae80..513921cc88 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_eo.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_eo.dart @@ -135,6 +135,9 @@ class AppLocalizationsEo extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'La sekurigaj ŝlosiloj ne kongruas'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Konekti al Interreto'; @@ -292,6 +295,9 @@ class AppLocalizationsEo extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM elektita'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Ĉifri la novan instalaĵon de $RELEASE por sekurigi ĝin'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_es.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_es.dart index f921a26643..7d088b86fc 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_es.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_es.dart @@ -135,6 +135,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Las claves de seguridad no coinciden'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Conectarse a Internet'; @@ -292,6 +295,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get installationTypeLVMSelected => 'Se seleccionó LVM'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Cifrar la instalación nueva de $RELEASE por seguridad'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_et.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_et.dart index 9a4c3d1f8f..955a025595 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_et.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_et.dart @@ -135,6 +135,9 @@ class AppLocalizationsEt extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsEt extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_eu.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_eu.dart index 08eb4b2f22..f3b71ee90c 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_eu.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_eu.dart @@ -135,6 +135,9 @@ class AppLocalizationsEu extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsEu extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fa.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fa.dart index 1c7bb75db7..c0709ff80c 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fa.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fa.dart @@ -135,6 +135,9 @@ class AppLocalizationsFa extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsFa extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fi.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fi.dart index 92b0c6b887..9dafa68a8d 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fi.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fi.dart @@ -135,6 +135,9 @@ class AppLocalizationsFi extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Salausavaimet eivät täsmää'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Yhdistä internetiin'; @@ -292,6 +295,9 @@ class AppLocalizationsFi extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM valittu'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Salaa uusi $RELEASE-asennus paremman tietoturvan vuoksi'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fr.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fr.dart index f1012da8c6..ca07349a90 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fr.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_fr.dart @@ -135,6 +135,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Les codes de sécurité ne correspondent pas'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Se connecter à internet'; @@ -292,6 +295,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM sélectionné'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Chiffrer la nouvelle installation d’$RELEASE pour la sécurité'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ga.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ga.dart index fc2f5f801b..34d91182f5 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ga.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ga.dart @@ -135,6 +135,9 @@ class AppLocalizationsGa extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsGa extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_gl.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_gl.dart index 9726b1f832..e8fd8f4b4d 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_gl.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_gl.dart @@ -135,6 +135,9 @@ class AppLocalizationsGl extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsGl extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_gu.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_gu.dart index c0da956772..0b57ae5b37 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_gu.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_gu.dart @@ -135,6 +135,9 @@ class AppLocalizationsGu extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsGu extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_he.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_he.dart index 65ba67c36d..0e6ec4daa0 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_he.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_he.dart @@ -135,6 +135,9 @@ class AppLocalizationsHe extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'מפתחות האבטחה סותרים זה את זה'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'התחברות לאינטרנט'; @@ -292,6 +295,9 @@ class AppLocalizationsHe extends AppLocalizations { @override String get installationTypeLVMSelected => 'נבחר מנהל כרכים לוגי'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'להצפין את התקנת $RELEASE החדשה לשיפור האבטחה'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hi.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hi.dart index a76b2ddc0c..92c779cc78 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hi.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hi.dart @@ -135,6 +135,9 @@ class AppLocalizationsHi extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsHi extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hr.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hr.dart index fb2c53d89e..42e054b6cc 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hr.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hr.dart @@ -135,6 +135,9 @@ class AppLocalizationsHr extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsHr extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hu.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hu.dart index ad03b7b5a2..5ee3ab2ecf 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hu.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_hu.dart @@ -135,6 +135,9 @@ class AppLocalizationsHu extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'A biztonsági kulcsok nem egyeznek'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Csatlakozás az internethez'; @@ -292,6 +295,9 @@ class AppLocalizationsHu extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM kiválasztva'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Az új $RELEASE telepítés titkosítása a biztonság érdekében'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_id.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_id.dart index 5a2764e6fc..6e8096c395 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_id.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_id.dart @@ -135,6 +135,9 @@ class AppLocalizationsId extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Kunci keamanan tidak cocok'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Menyambung ke internet'; @@ -292,6 +295,9 @@ class AppLocalizationsId extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM dipilih'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Enkripsi instalasi $RELEASE baru untuk keamanan'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_is.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_is.dart index ce71f6c4cf..65e9e3ba7f 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_is.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_is.dart @@ -135,6 +135,9 @@ class AppLocalizationsIs extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsIs extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_it.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_it.dart index c684d3957d..d72cc28447 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_it.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_it.dart @@ -135,6 +135,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Le chiavi di sicurezza non corrispondono'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connetti alla rete'; @@ -292,6 +295,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ja.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ja.dart index 1cc6093fd0..92075e037e 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ja.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ja.dart @@ -135,6 +135,9 @@ class AppLocalizationsJa extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'セキュリティキーが一致しません'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'インターネットに接続'; @@ -292,6 +295,9 @@ class AppLocalizationsJa extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM を選択しました'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'セキュリティのためディスクを暗号化し、 $RELEASE をインストールする'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ka.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ka.dart index 652db0ad50..85b95dae18 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ka.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ka.dart @@ -135,6 +135,9 @@ class AppLocalizationsKa extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsKa extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_kk.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_kk.dart index b7050ab930..bad7630187 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_kk.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_kk.dart @@ -135,6 +135,9 @@ class AppLocalizationsKk extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsKk extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_km.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_km.dart index b053276132..c7a742e02a 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_km.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_km.dart @@ -135,6 +135,9 @@ class AppLocalizationsKm extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsKm extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_kn.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_kn.dart index 829985beb9..96f2d97035 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_kn.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_kn.dart @@ -135,6 +135,9 @@ class AppLocalizationsKn extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsKn extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ko.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ko.dart index a65660b910..fd95e766d3 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ko.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ko.dart @@ -135,6 +135,9 @@ class AppLocalizationsKo extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => '보안 키가 일치하지 않습니다'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => '인터넷에 연결하기'; @@ -292,6 +295,9 @@ class AppLocalizationsKo extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM 선택됨'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return '보안을 위해 새 $RELEASE 설치 암호화'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ku.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ku.dart index cf1bf43af4..d032b313a6 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ku.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ku.dart @@ -135,6 +135,9 @@ class AppLocalizationsKu extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsKu extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lo.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lo.dart index 2884ced28d..605ed8886f 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lo.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lo.dart @@ -135,6 +135,9 @@ class AppLocalizationsLo extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsLo extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lt.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lt.dart index 651bf7fdcf..d8603962bc 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lt.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lt.dart @@ -135,6 +135,9 @@ class AppLocalizationsLt extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Saugumo raktai nesutampa'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Prisijunkite prie interneto'; @@ -292,6 +295,9 @@ class AppLocalizationsLt extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM pasirinkta'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Šifruoti naują $RELEASE diegimą, kad būtų užtikrintas saugumas'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lv.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lv.dart index e492114e91..f29f4ccdab 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lv.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_lv.dart @@ -135,6 +135,9 @@ class AppLocalizationsLv extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsLv extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_mk.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_mk.dart index 0c59bc5647..1daa07486a 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_mk.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_mk.dart @@ -135,6 +135,9 @@ class AppLocalizationsMk extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsMk extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ml.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ml.dart index 57aa413edf..e7b670d571 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ml.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ml.dart @@ -135,6 +135,9 @@ class AppLocalizationsMl extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'സുരക്ഷാ കീകൾ പൊരുത്തപ്പെടുന്നില്ല'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'ഇന്റർനെറ്റ് ആയിട്ട് ബന്ധിപ്പിക്കുക'; @@ -292,6 +295,9 @@ class AppLocalizationsMl extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM തിരഞ്ഞെടുത്തു'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'സുരക്ഷയ്ക്കായി പുതിയ $RELEASE ഇൻസ്റ്റാളേഷൻ എൻക്രിപ്റ്റ് ചെയ്യുക'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_mr.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_mr.dart index 1f1893c332..b92879b4e0 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_mr.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_mr.dart @@ -135,6 +135,9 @@ class AppLocalizationsMr extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsMr extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_my.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_my.dart index 68ee7a3dc9..2f8e3f2a0d 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_my.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_my.dart @@ -135,6 +135,9 @@ class AppLocalizationsMy extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsMy extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nb.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nb.dart index ee3cfb8052..cb0877ce84 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nb.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nb.dart @@ -135,6 +135,9 @@ class AppLocalizationsNb extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Sikkerhetsnøkkel stemmer ikke'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Koble til internett'; @@ -292,6 +295,9 @@ class AppLocalizationsNb extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM valg'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Kryptere nye $RELEASE installasjon for sikkerhet'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ne.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ne.dart index ed7c32259a..ab19e159d8 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ne.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ne.dart @@ -135,6 +135,9 @@ class AppLocalizationsNe extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsNe extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nl.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nl.dart index dda8776d1d..bacd8692a3 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nl.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nl.dart @@ -135,6 +135,9 @@ class AppLocalizationsNl extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsNl extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nn.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nn.dart index aeafd1e3e7..6532c5321b 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nn.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_nn.dart @@ -135,6 +135,9 @@ class AppLocalizationsNn extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsNn extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_oc.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_oc.dart index 68f86cb68c..a780cca52e 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_oc.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_oc.dart @@ -135,6 +135,9 @@ class AppLocalizationsOc extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Las claus de seguretat correspondon pas'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Se connectar a internet'; @@ -292,6 +295,9 @@ class AppLocalizationsOc extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM seleccionat'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Chifrar l’installacion de $RELEASE novèla per la seguretat'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pa.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pa.dart index b232e8e039..5de5705d21 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pa.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pa.dart @@ -135,6 +135,9 @@ class AppLocalizationsPa extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsPa extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pl.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pl.dart index 1f97ce2062..01149f27c6 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pl.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pl.dart @@ -135,6 +135,9 @@ class AppLocalizationsPl extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Klucze bezpieczeństwa nie są zgodne'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Połącz się z Internetem'; @@ -292,6 +295,9 @@ class AppLocalizationsPl extends AppLocalizations { @override String get installationTypeLVMSelected => 'Wybrano LVM'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Zaszyfruj nową instalację $RELEASE dla bezpieczeństwa'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pt.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pt.dart index 50358bff0f..f622e9344f 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pt.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_pt.dart @@ -135,6 +135,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Chaves de segurança não correspondem'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selecionado'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Criptografar a nova instalação do $RELEASE para maior segurança'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ro.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ro.dart index a4eefb428a..350fdc2d87 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ro.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ro.dart @@ -135,6 +135,9 @@ class AppLocalizationsRo extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsRo extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ru.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ru.dart index accbde1b5e..d18824e505 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ru.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ru.dart @@ -135,6 +135,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Ключи безопасности не совпадают'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Интернет соединение'; @@ -292,6 +295,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get installationTypeLVMSelected => 'Выбран LVM'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Зашифровать новую установку $RELEASE для безопасности'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_se.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_se.dart index 17a3e092e9..60303ffbe3 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_se.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_se.dart @@ -135,6 +135,9 @@ class AppLocalizationsSe extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsSe extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_si.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_si.dart index 76c5638da5..6e809a28fa 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_si.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_si.dart @@ -135,6 +135,9 @@ class AppLocalizationsSi extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsSi extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sk.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sk.dart index aab6d044be..2d9a19b15f 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sk.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sk.dart @@ -135,6 +135,9 @@ class AppLocalizationsSk extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsSk extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sl.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sl.dart index 2575ee0b0d..9f052a4f4e 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sl.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sl.dart @@ -135,6 +135,9 @@ class AppLocalizationsSl extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsSl extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sq.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sq.dart index 327dfe58d0..bb537a646b 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sq.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sq.dart @@ -135,6 +135,9 @@ class AppLocalizationsSq extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsSq extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sr.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sr.dart index 42c8df1814..6e89d46be1 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sr.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sr.dart @@ -135,6 +135,9 @@ class AppLocalizationsSr extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsSr extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sv.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sv.dart index 026e4e9c79..7f62bcef0b 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sv.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_sv.dart @@ -135,6 +135,9 @@ class AppLocalizationsSv extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Säkerhetsnycklarna matchar inte'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Anslut till internet'; @@ -292,6 +295,9 @@ class AppLocalizationsSv extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM valt'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Kryptera den nya $RELEASE-installationen för säkerhet'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ta.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ta.dart index bf9e14a370..41b085f06a 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ta.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ta.dart @@ -135,6 +135,9 @@ class AppLocalizationsTa extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsTa extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_te.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_te.dart index 116c732b14..c621edd4f5 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_te.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_te.dart @@ -135,6 +135,9 @@ class AppLocalizationsTe extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsTe extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tg.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tg.dart index b62b3b639f..07fe64fd21 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tg.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tg.dart @@ -135,6 +135,9 @@ class AppLocalizationsTg extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsTg extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_th.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_th.dart index cce88c9939..2281ca0d9a 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_th.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_th.dart @@ -135,6 +135,9 @@ class AppLocalizationsTh extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsTh extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tl.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tl.dart index d140258e2b..209bfd2579 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tl.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tl.dart @@ -135,6 +135,9 @@ class AppLocalizationsTl extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsTl extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tr.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tr.dart index 32e8ad361f..a4205efdea 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tr.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_tr.dart @@ -135,6 +135,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Güvenlik anahtarları uyuşmamaktadır'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'İnternete bağlan'; @@ -292,6 +295,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM seçildi'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ug.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ug.dart index 8404ade762..8668d60f60 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ug.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_ug.dart @@ -135,6 +135,9 @@ class AppLocalizationsUg extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsUg extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_uk.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_uk.dart index 6928f44d94..dfaff1f1aa 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_uk.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_uk.dart @@ -135,6 +135,9 @@ class AppLocalizationsUk extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsUk extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_vi.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_vi.dart index 9a93e7aff5..b875aa788c 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_vi.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_vi.dart @@ -135,6 +135,9 @@ class AppLocalizationsVi extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => 'Security keys do not match'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => 'Connect to internet'; @@ -292,6 +295,9 @@ class AppLocalizationsVi extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM selected'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return 'Encrypt the new $RELEASE installation for security'; diff --git a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_zh.dart b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_zh.dart index e2aa3a4dad..d17038cff1 100644 --- a/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_zh.dart +++ b/packages/ubuntu_desktop_installer/lib/l10n/app_localizations_zh.dart @@ -135,6 +135,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get secureBootSecurityKeysDontMatch => '安全密钥不匹配'; + @override + String get showSecurityKey => 'Show security key'; + @override String get connectToInternetPageTitle => '连接到互联网'; @@ -292,6 +295,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get installationTypeLVMSelected => 'LVM已选择'; + @override + String get installationTypeLVMEncryptionSelected => 'LVM and encryption selected'; + @override String installationTypeEncrypt(Object RELEASE) { return '为安全起见,对新的$RELEASE安装进行加密'; From ab356dbcc9c8e7c886e665a42c80572c088d6581 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 21 Sep 2022 14:25:48 +0200 Subject: [PATCH 4/4] Clear & reload the security key when navigating away or back --- .../choose_security_key_model.dart | 6 ++++-- .../choose_security_key_page.dart | 1 + .../choose_security_key_model_test.dart | 12 +++++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_model.dart b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_model.dart index 78ac4f2531..0ffe6c21fa 100644 --- a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_model.dart +++ b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_model.dart @@ -36,14 +36,16 @@ class ChooseSecurityKeyModel extends SafeChangeNotifier { bool get isValid => securityKey.isNotEmpty && securityKey == confirmedSecurityKey; - /// Loads the security key. + /// Loads the security key from the service. Future loadSecurityKey() async { _securityKey.value = _confirmedSecurityKey.value = _service.securityKey ?? ''; } - /// Saves the security key. + /// Saves the security key to the service and clears the local values. Future saveSecurityKey() async { _service.securityKey = securityKey; + _securityKey.value = ''; + _confirmedSecurityKey.value = ''; } } diff --git a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_page.dart b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_page.dart index ce417a59a8..4c269deea1 100644 --- a/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_page.dart +++ b/packages/ubuntu_desktop_installer/lib/pages/choose_security_key/choose_security_key_page.dart @@ -88,6 +88,7 @@ class _ChooseSecurityKeyPageState extends State { enabled: context .select((model) => model.isValid), onNext: context.read().saveSecurityKey, + onBack: context.read().loadSecurityKey, ), ], ); diff --git a/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.dart b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.dart index 03e67d1049..07d7f99922 100644 --- a/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.dart +++ b/packages/ubuntu_desktop_installer/test/choose_security_key/choose_security_key_model_test.dart @@ -49,14 +49,24 @@ void main() { testValid('foo', 'bar', isFalse); }); - test('save security key', () async { + test('save, clear and load security key', () async { final service = MockDiskStorageService(); final model = ChooseSecurityKeyModel(service); model.securityKey = 'foo123'; + model.confirmedSecurityKey = 'foo123'; await model.saveSecurityKey(); + expect(model.securityKey, isEmpty); + expect(model.confirmedSecurityKey, isEmpty); + verify(service.securityKey = 'foo123').called(1); verifyNever(service.setGuidedStorage()); + when(service.securityKey).thenReturn('bar456'); + + await model.loadSecurityKey(); + verify(service.securityKey).called(1); + expect(model.securityKey, 'bar456'); + expect(model.confirmedSecurityKey, 'bar456'); }); }