Skip to content
Snippets Groups Projects
Commit 7d68c8b9 authored by jojohoch's avatar jojohoch
Browse files

[player] Rename variables and methods for hardware keyboard detection

parent 59acdfd0
No related branches found
No related tags found
No related merge requests found
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
import { UnitStateService } from '../../services/unit-state.service'; import { UnitStateService } from '../../services/unit-state.service';
import { ElementComponent } from 'common/directives/element-component.directive'; import { ElementComponent } from 'common/directives/element-component.directive';
import { ElementModelElementCodeMappingService } from '../../services/element-model-element-code-mapping.service'; import { ElementModelElementCodeMappingService } from '../../services/element-model-element-code-mapping.service';
...@@ -12,10 +11,12 @@ import { KeypadService } from '../../services/keypad.service'; ...@@ -12,10 +11,12 @@ import { KeypadService } from '../../services/keypad.service';
import { ElementFormGroupDirective } from '../../directives/element-form-group.directive'; import { ElementFormGroupDirective } from '../../directives/element-form-group.directive';
import { KeyboardService } from '../../services/keyboard.service'; import { KeyboardService } from '../../services/keyboard.service';
import { DeviceService } from '../../services/device.service'; import { DeviceService } from '../../services/device.service';
import { TextFieldSimpleComponent } from 'common/components/compound-elements/cloze/cloze-child-elements/text-field-simple.component'; import {
TextFieldSimpleComponent
} from 'common/components/compound-elements/cloze/cloze-child-elements/text-field-simple.component';
import { ClozeElement } from 'common/models/elements/compound-elements/cloze/cloze'; import { ClozeElement } from 'common/models/elements/compound-elements/cloze/cloze';
import { LikertElement } from 'common/models/elements/compound-elements/likert/likert'; import { LikertElement } from 'common/models/elements/compound-elements/likert/likert';
import { InputElement } from 'common/models/elements/element'; import { CompoundElement, InputElement } from 'common/models/elements/element';
@Component({ @Component({
selector: 'aspect-element-compound-group', selector: 'aspect-element-compound-group',
...@@ -44,11 +45,7 @@ export class ElementCompoundGroupComponent extends ElementFormGroupDirective imp ...@@ -44,11 +45,7 @@ export class ElementCompoundGroupComponent extends ElementFormGroupDirective imp
} }
ngOnInit(): void { ngOnInit(): void {
const childModels = this.elementModel.type === 'cloze' ? this.createForm((this.elementModel as CompoundElement).getChildElements() as InputElement[]);
// ClozeUtils.getClozeChildElements(this.elementModel as ClozeElement) :
[] :
(this.elementModel as LikertElement).rows;
this.createForm(childModels);
} }
onChildrenAdded(children: ElementComponent[]): void { onChildrenAdded(children: ElementComponent[]): void {
...@@ -71,7 +68,7 @@ export class ElementCompoundGroupComponent extends ElementFormGroupDirective imp ...@@ -71,7 +68,7 @@ export class ElementCompoundGroupComponent extends ElementFormGroupDirective imp
.onKeyDown .onKeyDown
.pipe(takeUntil(this.ngUnsubscribe)) .pipe(takeUntil(this.ngUnsubscribe))
.subscribe(element => { .subscribe(element => {
this.registerHardwareKeyboard(element, textFieldSimpleComponent); this.detectHardwareKeyboard(element, textFieldSimpleComponent);
}); });
} }
}); });
...@@ -88,9 +85,10 @@ export class ElementCompoundGroupComponent extends ElementFormGroupDirective imp ...@@ -88,9 +85,10 @@ export class ElementCompoundGroupComponent extends ElementFormGroupDirective imp
} }
} }
private registerHardwareKeyboard(inputElement: HTMLElement | null, private detectHardwareKeyboard(inputElement: HTMLElement | null,
elementComponent: TextFieldSimpleComponent): void { elementComponent: TextFieldSimpleComponent): void {
this.deviceService.registerHardwareKeyboard(); this.deviceService.hasHardwareKeyboard = true;
this.keyboardService.toggle(inputElement, elementComponent, this.deviceService.isMobileWithoutHardwareKeyboard); this.keyboardService.toggle(inputElement, elementComponent, this.deviceService.isMobileWithoutHardwareKeyboard);
} }
} }
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#elementComponent #elementComponent
[parentForm]="form" [parentForm]="form"
[elementModel]="elementModel | cast: TextAreaElement" [elementModel]="elementModel | cast: TextAreaElement"
(onKeyDown)="registerHardwareKeyboard($event, elementComponent)" (onKeyDown)="detectHardwareKeyboard($event, elementComponent)"
(onFocusChanged)="onFocusChanged($event, elementComponent)"> (onFocusChanged)="onFocusChanged($event, elementComponent)">
</aspect-text-area> </aspect-text-area>
<aspect-text-field <aspect-text-field
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#elementComponent #elementComponent
[parentForm]="form" [parentForm]="form"
[elementModel]="elementModel | cast: TextFieldElement" [elementModel]="elementModel | cast: TextFieldElement"
(onKeyDown)="registerHardwareKeyboard($event, elementComponent)" (onKeyDown)="detectHardwareKeyboard($event, elementComponent)"
(onFocusChanged)="onFocusChanged($event, elementComponent)"> (onFocusChanged)="onFocusChanged($event, elementComponent)">
</aspect-text-field> </aspect-text-field>
<aspect-spell-correct <aspect-spell-correct
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
#elementComponent #elementComponent
[parentForm]="form" [parentForm]="form"
[elementModel]="elementModel | cast: SpellCorrectElement" [elementModel]="elementModel | cast: SpellCorrectElement"
(onKeyDown)="registerHardwareKeyboard($event, elementComponent)" (onKeyDown)="detectHardwareKeyboard($event, elementComponent)"
(onFocusChanged)="onFocusChanged($event, elementComponent)"> (onFocusChanged)="onFocusChanged($event, elementComponent)">
</aspect-spell-correct> </aspect-spell-correct>
</form> </form>
......
...@@ -71,9 +71,9 @@ export class ElementTextInputGroupComponent extends ElementFormGroupDirective im ...@@ -71,9 +71,9 @@ export class ElementTextInputGroupComponent extends ElementFormGroupDirective im
} }
} }
registerHardwareKeyboard(inputElement: HTMLElement | null, detectHardwareKeyboard(inputElement: HTMLElement | null,
elementComponent: TextAreaComponent | TextFieldComponent | SpellCorrectComponent): void { elementComponent: TextAreaComponent | TextFieldComponent | SpellCorrectComponent): void {
this.deviceService.registerHardwareKeyboard(); this.deviceService.hasHardwareKeyboard = true;
this.keyboardService.toggle(inputElement, elementComponent, this.deviceService.isMobileWithoutHardwareKeyboard); this.keyboardService.toggle(inputElement, elementComponent, this.deviceService.isMobileWithoutHardwareKeyboard);
} }
} }
...@@ -4,7 +4,7 @@ import { ...@@ -4,7 +4,7 @@ import {
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
import { NativeEventService } from '../../services/native-event.service'; import { NativeEventService } from '../../services/native-event.service';
import { Page } from 'common/interfaces/unit'; import { Page } from 'common/models/page';
import { VeronaPostService } from 'player/modules/verona/services/verona-post.service'; import { VeronaPostService } from 'player/modules/verona/services/verona-post.service';
import { NavigationService } from 'player/src/app/services/navigation.service'; import { NavigationService } from 'player/src/app/services/navigation.service';
import { VopPageNavigationCommand } from 'player/modules/verona/models/verona'; import { VopPageNavigationCommand } from 'player/modules/verona/models/verona';
......
...@@ -6,8 +6,8 @@ import { LogService } from 'player/modules/logging/services/log.service'; ...@@ -6,8 +6,8 @@ import { LogService } from 'player/modules/logging/services/log.service';
providedIn: 'root' providedIn: 'root'
}) })
export class DeviceService { export class DeviceService {
hasHardwareKeyboard: boolean = false;
private readonly isTouch!: boolean; private readonly isTouch!: boolean;
private hasHardwareKeyboard: boolean = false;
private noSleep!: NoSleep; // Cannot be instanced in a constructor, must be instanced by a user event private noSleep!: NoSleep; // Cannot be instanced in a constructor, must be instanced by a user event
constructor() { constructor() {
...@@ -25,8 +25,4 @@ export class DeviceService { ...@@ -25,8 +25,4 @@ export class DeviceService {
get isMobileWithoutHardwareKeyboard(): boolean { get isMobileWithoutHardwareKeyboard(): boolean {
return this.isTouch && !this.hasHardwareKeyboard; return this.isTouch && !this.hasHardwareKeyboard;
} }
registerHardwareKeyboard(): void {
this.hasHardwareKeyboard = true;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment