pub struct ENManager { /* private fields */ }ENManager only.Expand description
Manages Exposure Notification functionality.
See also Apple’s documentation
Implementations§
Source§impl ENManager
impl ENManager
Sourcepub unsafe fn activityHandler(&self) -> ENActivityHandler
Available on crate feature block2 only.
pub unsafe fn activityHandler(&self) -> ENActivityHandler
block2 only.Invoked when the app is launched for an activity while it might not be running. When the app is launched, it should create an ENManager instance, set this handler, and then activate the manager.
Sourcepub unsafe fn setActivityHandler(&self, activity_handler: ENActivityHandler)
Available on crate feature block2 only.
pub unsafe fn setActivityHandler(&self, activity_handler: ENActivityHandler)
block2 only.Setter for activityHandler.
This is [copied][objc2_foundation::NSCopying::copy] when set.
§Safety
activity_handler must be a valid pointer or null.
pub unsafe fn dispatchQueue(&self) -> Retained<DispatchQueue>
dispatch2 only.Sourcepub unsafe fn setDispatchQueue(&self, dispatch_queue: &DispatchQueue)
Available on crate feature dispatch2 only.
pub unsafe fn setDispatchQueue(&self, dispatch_queue: &DispatchQueue)
dispatch2 only.Sourcepub unsafe fn exposureNotificationStatus(&self) -> ENStatus
pub unsafe fn exposureNotificationStatus(&self) -> ENStatus
Overall status of Exposure Notification. KVO may be used to monitor for changes.
Sourcepub unsafe fn invalidationHandler(&self) -> dispatch_block_t
Available on crate feature dispatch2 only.
pub unsafe fn invalidationHandler(&self) -> dispatch_block_t
dispatch2 only.Invoked exactly once when invalidation completes. This property is cleared before it’s invoked to break retain cycles.
Sourcepub unsafe fn setInvalidationHandler(
&self,
invalidation_handler: dispatch_block_t,
)
Available on crate feature dispatch2 only.
pub unsafe fn setInvalidationHandler( &self, invalidation_handler: dispatch_block_t, )
dispatch2 only.Setter for invalidationHandler.
This is [copied][objc2_foundation::NSCopying::copy] when set.
§Safety
invalidation_handler must be a valid pointer or null.
Sourcepub unsafe fn activateWithCompletionHandler(
&self,
completion_handler: ENErrorHandler,
)
Available on crate features ENCommon and block2 only.
pub unsafe fn activateWithCompletionHandler( &self, completion_handler: ENErrorHandler, )
ENCommon and block2 only.Activates the object to prepare it for use. Properties may not be usable until the completion handler reports success.
§Safety
completion_handler must be a valid pointer.
Sourcepub unsafe fn invalidate(&self)
pub unsafe fn invalidate(&self)
Stops any outstanding operations and invalidates this object. Once this is called, the object can no longer be used. To start using ENManager again, a new instance of the class must be created and activated.
Sourcepub unsafe fn getUserTraveledWithCompletionHandler(
&self,
completion_handler: ENGetUserTraveledHandler,
)
Available on crate feature block2 only.
pub unsafe fn getUserTraveledWithCompletionHandler( &self, completion_handler: ENGetUserTraveledHandler, )
block2 only.Reports if the user traveled within an exposure period (e.g. 14 days).
§Safety
completion_handler must be a valid pointer.
Available on crate feature ENCommon only.
ENCommon only.Reports the current authorization status of the app. Apps can use this property to preflight authorization in order to determine if the user will be prompted.
Sourcepub unsafe fn exposureNotificationEnabled(&self) -> bool
pub unsafe fn exposureNotificationEnabled(&self) -> bool
Indicates if Exposure Notification is enabled on the system. KVO may be used to monitor for changes. This will be NO until activateWithCompletionHandler has completed successfully. Note that even if it’s enabled, it may be inactive for other reasons, such as Bluetooth being turned off. The exposureNotificationStatus property can be monitored for the overall status of Exposure Notification.
Sourcepub unsafe fn setExposureNotificationEnabled_completionHandler(
&self,
enabled: bool,
completion_handler: ENErrorHandler,
)
Available on crate features ENCommon and block2 only.
pub unsafe fn setExposureNotificationEnabled_completionHandler( &self, enabled: bool, completion_handler: ENErrorHandler, )
ENCommon and block2 only.Enables or disables Exposure Notification. If not previously authorized, this shows a user dialog for consent to enable Exposure Notification. Note: Disabling stops Bluetooth advertising and scanning related to Exposure Notification, but the Diagnosis Keys and data will remain.
§Safety
completion_handler must be a valid pointer.
Sourcepub unsafe fn detectExposuresWithConfiguration_completionHandler(
&self,
configuration: &ENExposureConfiguration,
completion_handler: ENDetectExposuresHandler,
) -> Retained<NSProgress>
Available on crate features ENCommon and block2 only.
pub unsafe fn detectExposuresWithConfiguration_completionHandler( &self, configuration: &ENExposureConfiguration, completion_handler: ENDetectExposuresHandler, ) -> Retained<NSProgress>
ENCommon and block2 only.Detects exposures using the specified configuration to control the scoring algorithm. This uses the diagnosis keys already known to the system. Only available to apps with ENAPIVersion 2 or higher.
§Safety
completion_handler must be a valid pointer.
Sourcepub unsafe fn detectExposuresWithConfiguration_diagnosisKeyURLs_completionHandler(
&self,
configuration: &ENExposureConfiguration,
diagnosis_key_ur_ls: &NSArray<NSURL>,
completion_handler: ENDetectExposuresHandler,
) -> Retained<NSProgress>
Available on crate features ENCommon and block2 only.
pub unsafe fn detectExposuresWithConfiguration_diagnosisKeyURLs_completionHandler( &self, configuration: &ENExposureConfiguration, diagnosis_key_ur_ls: &NSArray<NSURL>, completion_handler: ENDetectExposuresHandler, ) -> Retained<NSProgress>
ENCommon and block2 only.Detects exposures using the specified configuration to control the scoring algorithm and URLs to specify the files containing diagnosis keys the app has downloaded. The diagnosis key files must be signed appropriately. When the app’s ENAPIVersion is 2 or higher, keys already known to the system are included in the analysis.
§Safety
completion_handler must be a valid pointer.
Sourcepub unsafe fn getExposureInfoFromSummary_userExplanation_completionHandler(
&self,
summary: &ENExposureDetectionSummary,
user_explanation: &NSString,
completion_handler: ENGetExposureInfoHandler,
) -> Retained<NSProgress>
👎Deprecated: Use getExposureWindowsFromSummary, if needed.Available on crate features ENCommon and block2 only.
pub unsafe fn getExposureInfoFromSummary_userExplanation_completionHandler( &self, summary: &ENExposureDetectionSummary, user_explanation: &NSString, completion_handler: ENGetExposureInfoHandler, ) -> Retained<NSProgress>
ENCommon and block2 only.Gets info about each exposure from the summary provided when exposure detection completes. Using this API will inform the user that their exposure details have been revealed to the app. The user explanation string will be displayed as part of the UI to inform the user of using this API.
§Safety
completion_handler must be a valid pointer.
Sourcepub unsafe fn getExposureWindowsFromSummary_completionHandler(
&self,
summary: &ENExposureDetectionSummary,
completion_handler: ENGetExposureWindowsHandler,
) -> Retained<NSProgress>
Available on crate features ENCommon and block2 only.
pub unsafe fn getExposureWindowsFromSummary_completionHandler( &self, summary: &ENExposureDetectionSummary, completion_handler: ENGetExposureWindowsHandler, ) -> Retained<NSProgress>
ENCommon and block2 only.Gets info about each exposure window from the summary provided when exposure detection completes.
§Safety
completion_handler must be a valid pointer.
Sourcepub unsafe fn getDiagnosisKeysWithCompletionHandler(
&self,
completion_handler: ENGetDiagnosisKeysHandler,
)
Available on crate features ENCommon and block2 only.
pub unsafe fn getDiagnosisKeysWithCompletionHandler( &self, completion_handler: ENGetDiagnosisKeysHandler, )
ENCommon and block2 only.Requests the temporary exposure keys used by this device to share with a server. Each use of this API will present the user with system UI to authorize it.
§Safety
completion_handler must be a valid pointer.
Sourcepub unsafe fn getTestDiagnosisKeysWithCompletionHandler(
&self,
completion_handler: ENGetDiagnosisKeysHandler,
)
Available on crate features ENCommon and block2 only.
pub unsafe fn getTestDiagnosisKeysWithCompletionHandler( &self, completion_handler: ENGetDiagnosisKeysHandler, )
ENCommon and block2 only.Requests the temporary exposure keys, including the current key, used by this device for testing. Each use of this API will present the user with system UI to authorize it. WARNING: This API is only for use by developers. It requires a special entitlement that is not allowed in the app store. It’s only intended to allow developers to test without needing to wait 24 hours for a key to be released.
§Safety
completion_handler must be a valid pointer.
Sourcepub unsafe fn diagnosisKeysAvailableHandler(
&self,
) -> ENDiagnosisKeysAvailableHandler
Available on crate features ENCommon and block2 only.
pub unsafe fn diagnosisKeysAvailableHandler( &self, ) -> ENDiagnosisKeysAvailableHandler
ENCommon and block2 only.Invoked after requestPreAuthorizedDiagnosisKeys if user authorization is still valid.
§Safety
The returned block’s argument must be a valid pointer.
Sourcepub unsafe fn setDiagnosisKeysAvailableHandler(
&self,
diagnosis_keys_available_handler: ENDiagnosisKeysAvailableHandler,
)
Available on crate features ENCommon and block2 only.
pub unsafe fn setDiagnosisKeysAvailableHandler( &self, diagnosis_keys_available_handler: ENDiagnosisKeysAvailableHandler, )
ENCommon and block2 only.Setter for diagnosisKeysAvailableHandler.
This is [copied][objc2_foundation::NSCopying::copy] when set.
§Safety
diagnosis_keys_available_handler must be a valid pointer or null.
Sourcepub unsafe fn preAuthorizeDiagnosisKeysWithCompletionHandler(
&self,
completion_handler: ENErrorHandler,
)
Available on crate features ENCommon and block2 only.
pub unsafe fn preAuthorizeDiagnosisKeysWithCompletionHandler( &self, completion_handler: ENErrorHandler, )
ENCommon and block2 only.Authorizes a one-time, future release of diagnosis keys without a user prompt at the time of release. This allows the user to authorize ahead of time in case they are unable to approve at the time of positive diagnosis. WARNING: Application should be in foreground to request the authorization
§Safety
completion_handler must be a valid pointer.
Sourcepub unsafe fn requestPreAuthorizedDiagnosisKeysWithCompletionHandler(
&self,
completion_handler: ENErrorHandler,
)
Available on crate features ENCommon and block2 only.
pub unsafe fn requestPreAuthorizedDiagnosisKeysWithCompletionHandler( &self, completion_handler: ENErrorHandler, )
ENCommon and block2 only.Requests diagnosis keys after previously using preAuthorizeDiagnosisKeys successfully. This will display a notification to the user for the user to know the keys will be returned. Keys are returned by invoking diagnosisKeysAvailable, which must be set before calling this.
§Safety
completion_handler must be a valid pointer.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl ClassType for ENManager
impl ClassType for ENManager
Source§const NAME: &'static str = "ENManager"
const NAME: &'static str = "ENManager"
Source§type ThreadKind = <<ENManager as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<ENManager as ClassType>::Super as ClassType>::ThreadKind
Source§impl NSObjectProtocol for ENManager
impl NSObjectProtocol for ENManager
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref