* Handle biometric authentication * jailbreak/root detection and biometric small fixes * remove server from initializeSecurityManager and fix loginEntry * Add screen capture prevention and other small fixes * added unit tests to SecurityManager * added shielded nativeID to protect views * use MobilePreventScreenCapture instead of MobileAllowScreenshots in config type definition * Apply Swizzle for screen capture on iOS * Apply patch to bottom sheet to prevent screen captures * fix ios sendReply * Fix SDWebImage swizzle to use the correct session * Fix potential crash on Android when using hardware keyboard * rename patch for network library to remove warning * add temp emm reference * fix initializeSecurityManager tests * fix translations * use siteName for jailbreak detection when connecting to a new server * fix i18n typo * do not query the entire config from the db only the required fields * migrate manage_apps to use defineMessages * use TestHelper.wait in tests * use defineMessages for security manager * fix missing else statement for gm_to_channel * created a TestHelper function to mockQuery and replace as jest.Mock with jest.mocked * fix unit tests * fix unit tests (again) and include setting the test environment to UTC * Fix keyboard disappearing on iOS * update react-native-emm
54 lines
1.5 KiB
Swift
54 lines
1.5 KiB
Swift
//
|
|
// GekidouWrapper.swift
|
|
// Mattermost
|
|
//
|
|
// Created by Elias Nahum on 06-04-22.
|
|
// Copyright © 2022 Facebook. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import Gekidou
|
|
import react_native_emm
|
|
|
|
@objc class GekidouWrapper: NSObject {
|
|
@objc public static let `default` = GekidouWrapper()
|
|
|
|
override init() {
|
|
ScreenCaptureManager.startTrackingScreens()
|
|
}
|
|
|
|
@objc func postNotificationReceipt(_ userInfo: [AnyHashable:Any]) {
|
|
PushNotification.default.postNotificationReceipt(userInfo)
|
|
}
|
|
|
|
@objc func fetchDataForPushNotification(_ notification: [AnyHashable:Any], withContentHandler contentHander: @escaping ((_ data: Data?) -> Void)) {
|
|
PushNotification.default.fetchDataForPushNotification(notification, withContentHandler: { data in
|
|
let jsonData = try? JSONEncoder().encode(data)
|
|
contentHander(jsonData)
|
|
})
|
|
}
|
|
|
|
@objc func verifySignature(_ notification: [AnyHashable:Any]) -> Bool {
|
|
return PushNotification.default.verifySignature(notification)
|
|
}
|
|
|
|
@objc func attachSession(_ id: String, completionHandler: @escaping () -> Void) {
|
|
let shareExtension = ShareExtension()
|
|
shareExtension.attachSession(
|
|
id: id,
|
|
completionHandler: completionHandler
|
|
)
|
|
}
|
|
|
|
@objc func setPreference(_ value: Any?, forKey name: String) {
|
|
Preferences.default.set(value, forKey: name)
|
|
}
|
|
|
|
@objc func getToken(for url: String) -> String? {
|
|
if let token = try? Keychain.default.getToken(for: url) {
|
|
return token
|
|
}
|
|
|
|
return nil
|
|
}
|
|
}
|