70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
/**
|
|
* Web-Stub. Ergibt im Browser keinen funktionalen Schutz — der Filter ist
|
|
* inhärent device-bound. Verhindert nur dass Imports auf Web crashen.
|
|
*/
|
|
import { registerWebModule, NativeModule } from 'expo';
|
|
|
|
import type {
|
|
ActivateResult,
|
|
DeviceLayers,
|
|
DisableResult,
|
|
HealthProbeResult,
|
|
RebreakProtectionEvents,
|
|
SyncBlocklistResult,
|
|
} from './RebreakProtection.types';
|
|
|
|
class RebreakProtectionModuleWeb extends NativeModule<RebreakProtectionEvents> {
|
|
async activate(): Promise<ActivateResult> {
|
|
return { allLayersOn: false, missingLayers: [] };
|
|
}
|
|
|
|
async disable(): Promise<DisableResult> {
|
|
return { allLayersOff: true };
|
|
}
|
|
|
|
async getDeviceState(): Promise<DeviceLayers> {
|
|
return { blocklistCount: 0, blocklistLastSyncAt: null };
|
|
}
|
|
|
|
async syncBlocklist(): Promise<SyncBlocklistResult> {
|
|
return { updated: false, count: 0 };
|
|
}
|
|
|
|
async runHealthProbe(): Promise<HealthProbeResult> {
|
|
return {
|
|
outcome: 'offline',
|
|
reason: 'web_stub',
|
|
durationMs: 0,
|
|
target: '',
|
|
};
|
|
}
|
|
|
|
async openSystemSettings(): Promise<void> {
|
|
// no-op
|
|
}
|
|
|
|
// Android-only stubs (Web nutzt keinen davon, aber Type-Compat).
|
|
async isAccessibilityEnabled() {
|
|
return { enabled: false };
|
|
}
|
|
async openAccessibilitySettings() {
|
|
return { opened: false };
|
|
}
|
|
async armTamperLock() {
|
|
return { armed: false };
|
|
}
|
|
async disarmTamperLock() {
|
|
return { armed: false };
|
|
}
|
|
async getProtectionStatus() {
|
|
return {
|
|
vpnEnabled: false,
|
|
accessibilityEnabled: false,
|
|
blocklistCount: 0,
|
|
tamperArmed: false,
|
|
};
|
|
}
|
|
}
|
|
|
|
export default registerWebModule(RebreakProtectionModuleWeb, 'RebreakProtection');
|