diff --git a/apps/readest-app/src/app/reader/components/settings/LayoutPanel.tsx b/apps/readest-app/src/app/reader/components/settings/LayoutPanel.tsx index be6706a0..16a7215c 100644 --- a/apps/readest-app/src/app/reader/components/settings/LayoutPanel.tsx +++ b/apps/readest-app/src/app/reader/components/settings/LayoutPanel.tsx @@ -676,7 +676,7 @@ const LayoutPanel: React.FC = ({ bookKey, onRegisterRese - {appService?.isMobileApp && ( + {appService?.hasOrientationLock && (

{_('Screen')}

diff --git a/apps/readest-app/src/services/appService.ts b/apps/readest-app/src/services/appService.ts index 634634b0..7d857f97 100644 --- a/apps/readest-app/src/services/appService.ts +++ b/apps/readest-app/src/services/appService.ts @@ -63,6 +63,7 @@ export abstract class BaseAppService implements AppService { hasSafeAreaInset = false; hasHaptics = false; hasUpdater = false; + hasOrientationLock = false; distChannel = 'readest'; abstract fs: FileSystem; diff --git a/apps/readest-app/src/services/nativeAppService.ts b/apps/readest-app/src/services/nativeAppService.ts index 5d306001..72260ea4 100644 --- a/apps/readest-app/src/services/nativeAppService.ts +++ b/apps/readest-app/src/services/nativeAppService.ts @@ -19,7 +19,7 @@ import { type as osType } from '@tauri-apps/plugin-os'; import { Book } from '@/types/book'; import { FileSystem, BaseDir, AppPlatform } from '@/types/system'; -import { isContentURI, isValidURL } from '@/utils/misc'; +import { getOSPlatform, isContentURI, isValidURL } from '@/utils/misc'; import { getCoverFilename, getFilename } from '@/utils/book'; import { copyURIToPath } from '@/utils/bridge'; import { NativeFile, RemoteFile } from '@/utils/file'; @@ -227,6 +227,9 @@ export class NativeAppService extends BaseAppService { OS_TYPE !== 'ios' && !process.env['NEXT_PUBLIC_DISABLE_UPDATER'] && !window.__READEST_UPDATER_DISABLED; + // orientation lock is not supported on iPad + override hasOrientationLock = + (OS_TYPE === 'ios' && getOSPlatform() === 'ios') || OS_TYPE === 'android'; override distChannel = process.env['NEXT_PUBLIC_DIST_CHANNEL'] || 'readest'; override resolvePath(fp: string, base: BaseDir): { baseDir: number; base: BaseDir; fp: string } { diff --git a/apps/readest-app/src/types/system.ts b/apps/readest-app/src/types/system.ts index 3162323c..11a78d55 100644 --- a/apps/readest-app/src/types/system.ts +++ b/apps/readest-app/src/types/system.ts @@ -34,6 +34,7 @@ export interface AppService { hasSafeAreaInset: boolean; hasHaptics: boolean; hasUpdater: boolean; + hasOrientationLock: boolean; isMobile: boolean; isAppDataSandbox: boolean; isMobileApp: boolean;