Wake Lock (#2444)
This commit is contained in:
parent
1d261a5a7c
commit
65ccdc7301
11 changed files with 375 additions and 590 deletions
|
@ -1,6 +1,6 @@
|
|||
import { HttpClient, HttpParams } from '@angular/common/http';
|
||||
import {DestroyRef, inject, Injectable} from '@angular/core';
|
||||
import {Location} from '@angular/common';
|
||||
import {DestroyRef, Inject, inject, Injectable} from '@angular/core';
|
||||
import {DOCUMENT, Location} from '@angular/common';
|
||||
import { Router } from '@angular/router';
|
||||
import { environment } from 'src/environments/environment';
|
||||
import { ChapterInfo } from '../manga-reader/_models/chapter-info';
|
||||
|
@ -10,8 +10,6 @@ import { MangaFormat } from '../_models/manga-format';
|
|||
import { BookmarkInfo } from '../_models/manga-reader/bookmark-info';
|
||||
import { PageBookmark } from '../_models/readers/page-bookmark';
|
||||
import { ProgressBookmark } from '../_models/readers/progress-bookmark';
|
||||
import { UtilityService } from '../shared/_services/utility.service';
|
||||
import { FilterUtilitiesService } from '../shared/_services/filter-utilities.service';
|
||||
import { FileDimension } from '../manga-reader/_models/file-dimension';
|
||||
import screenfull from 'screenfull';
|
||||
import { TextResonse } from '../_types/text-response';
|
||||
|
@ -19,6 +17,8 @@ import { AccountService } from './account.service';
|
|||
import {takeUntilDestroyed} from "@angular/core/rxjs-interop";
|
||||
import {PersonalToC} from "../_models/readers/personal-toc";
|
||||
import {SeriesFilterV2} from "../_models/metadata/v2/series-filter-v2";
|
||||
import NoSleep from 'nosleep.js';
|
||||
|
||||
|
||||
export const CHAPTER_ID_DOESNT_EXIST = -1;
|
||||
export const CHAPTER_ID_NOT_FETCHED = -2;
|
||||
|
@ -35,9 +35,11 @@ export class ReaderService {
|
|||
// Override background color for reader and restore it onDestroy
|
||||
private originalBodyColor!: string;
|
||||
|
||||
private noSleep = new NoSleep();
|
||||
|
||||
constructor(private httpClient: HttpClient, private router: Router,
|
||||
private location: Location, private utilityService: UtilityService,
|
||||
private filterUtilityService: FilterUtilitiesService, private accountService: AccountService) {
|
||||
private location: Location, private accountService: AccountService,
|
||||
@Inject(DOCUMENT) private document: Document) {
|
||||
this.accountService.currentUser$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(user => {
|
||||
if (user) {
|
||||
this.encodedKey = encodeURIComponent(user.apiKey);
|
||||
|
@ -45,6 +47,30 @@ export class ReaderService {
|
|||
});
|
||||
}
|
||||
|
||||
enableWakeLock(element?: Element | Document) {
|
||||
// Enable wake lock.
|
||||
// (must be wrapped in a user input event handler e.g. a mouse or touch handler)
|
||||
|
||||
if (!element) element = this.document;
|
||||
|
||||
const enableNoSleepHandler = () => {
|
||||
element!.removeEventListener('click', enableNoSleepHandler, false);
|
||||
element!.removeEventListener('touchmove', enableNoSleepHandler, false);
|
||||
element!.removeEventListener('mousemove', enableNoSleepHandler, false);
|
||||
this.noSleep!.enable();
|
||||
};
|
||||
|
||||
// Enable wake lock.
|
||||
// (must be wrapped in a user input event handler e.g. a mouse or touch handler)
|
||||
element.addEventListener('click', enableNoSleepHandler, false);
|
||||
element.addEventListener('touchmove', enableNoSleepHandler, false);
|
||||
element.addEventListener('mousemove', enableNoSleepHandler, false);
|
||||
}
|
||||
|
||||
disableWakeLock() {
|
||||
this.noSleep.disable();
|
||||
}
|
||||
|
||||
|
||||
getNavigationArray(libraryId: number, seriesId: number, chapterId: number, format: MangaFormat) {
|
||||
if (format === undefined) format = MangaFormat.ARCHIVE;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue