index.uts 1.7 KB
Newer Older
DCloud-yyl's avatar
DCloud-yyl 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
import {
	OnOsThemeChange,
	OffOsThemeChange,
	OnOsThemeChangeCallback,
	OsThemeChangeResult,
	SetAppTheme,
	SetAppThemeOptions,
	SetAppThemeSuccessResult,
	OnAppThemeChange,
	OnAppThemeChangeCallback,
	AppThemeChangeResult
} from '../interface.uts'

import { AppThemeFailImpl } from '../unierror.uts'

/**
 * 监听系统主题变化
*/
export const onOsThemeChange : OnOsThemeChange = function (callback : OnOsThemeChangeCallback) : number {
	return UTSiOS.onOsThemeChange((theme : string) : void => {
		let result : OsThemeChangeResult = {
			osTheme: theme
		}
		callback(result)
	})
}

/**
 * 取消监听系统主题变化
*/
export const offOsThemeChange : OffOsThemeChange = function (id : number) : void {
	UTSiOS.offOsThemeChange(id)
}

/**
 * 设置应用主题
*/
export const setAppTheme : SetAppTheme = function (options : SetAppThemeOptions) : void {
	
	if (options.theme == 'light' || options.theme == 'dark' || options.theme == 'auto') {
		UTSiOS.setAppTheme(options.theme)
	} else {
		let error = new AppThemeFailImpl(702001)
		options.fail?.(error)
		options.complete?.(error)
		return
	}
		
	let result : SetAppThemeSuccessResult = {
		theme: options.theme
	}
	options.success?.(result)
	options.complete?.(result)
}

/**
 * 监听应用主题变化
*/
export const onAppThemeChange: OnAppThemeChange = function (callback: OnAppThemeChangeCallback) : number {
	return UTSiOS.onAppThemeChange((theme : string) : void => {
		let result : AppThemeChangeResult = {
			appTheme: theme
		}
		callback(result)
	})
}

/**
 * 取消监听应用主题变化
*/
export const offAppThemeChange = function (id : number) : void {
	UTSiOS.offAppThemeChange(id)
}