import preferences from '@ohos.data.preferences' import type { SDKConfig } from './Types' const TOKEN_KEY = 'xuqm_token' const PREF_NAME = 'xuqm_sdk_prefs' export class SDKContext { private static _config: SDKConfig | null = null private static _token: string | null = null private static _userId: string | null = null private static _pref: preferences.Preferences | null = null static init(config: SDKConfig): void { SDKContext._config = config if (config.debug) { console.log('[XuqmSDK] init appKey=' + config.appKey) } } static getConfig(): SDKConfig { if (!SDKContext._config) { throw new Error('XuqmSDK not initialized. Call XuqmSDK.init() first.') } return SDKContext._config } static async initPreferences(context: Context): Promise { SDKContext._pref = await preferences.getPreferences(context, PREF_NAME) const saved = await SDKContext._pref.get(TOKEN_KEY, '') as string if (saved) SDKContext._token = saved } static async setToken(token: string | null): Promise { SDKContext._token = token if (SDKContext._pref) { if (token) { await SDKContext._pref.put(TOKEN_KEY, token) } else { await SDKContext._pref.delete(TOKEN_KEY) } await SDKContext._pref.flush() } } static getToken(): string | null { return SDKContext._token } static setUserId(userId: string | null): void { SDKContext._userId = userId } static getUserId(): string | null { return SDKContext._userId } }