ZendriveDelegateProtocol
@protocol ZendriveDelegateProtocol <NSObject>
Delegate for Zendrive.
-
Called on delegate in the main thread when
ZendriveSDK detects a potential start of a drive.Declaration
Objective-C
- (void)processStartOfDrive:(nonnull ZendriveDriveStartInfo *)startInfo;Parameters
startInfoInfo about drive start. Refer to
ZendriveDriveStartInfofor further details. -
Called on delegate in the main thread when
ZendriveSDK resumes a drive after a gap.The gap in drive recording may occur due to an application restart by the OS, application kill and restart by a user, an application crash or other reasons. Drives started by calling
+[Zendrive startManualDrive:completionHandler:]are always resumed and they will not end until+[Zendrive stopManualDrive:completionHandler:]is called.Declaration
Objective-C
- (void)processResumeOfDrive:(nonnull ZendriveDriveResumeInfo *)resumeInfo;Parameters
resumeInfoInfo about drive resume. Refer to
ZendriveDriveResumeInfofor further details. -
Called on the delegate in the main thread when
ZendriveSDK detects a drive to have been completed.It is possible that
ZendriveSDK might decide at a later time that an ongoing trip was a falsely detected trip. In such scenarioprocessEndOfDrive:will be invoked on delegate withZendriveDriveInfo.driveType set toZendriveDriveTypeInvalid.Every trip with
ZendriveDriveInfo.driveType not set toZendriveDriveTypeInvalidwill receive a corresponding-processAnalysisOfDrive:callback containing additional info related to this drive.Declaration
Objective-C
- (void)processEndOfDrive: (nonnull ZendriveEstimatedDriveInfo *)estimatedDriveInfo;Parameters
estimatedDriveInfoBest estimate info about the drive. Refer to
ZendriveEstimatedDriveInfofor further details. -
Called on the delegate in the main thread when
ZendriveSDK finishes full analysis of all valid drives returned from-processEndOfDrive:callback.This will be called for all the
-processEndOfDrive:callbacks with the value ofZendriveDriveInfo.driveType not set toZendriveDriveTypeInvalid.This may contain additional or improved data over the
ZendriveEstimatedDriveInforeturned from-processEndOfDrive:Typically this callback will be fired within a few seconds after
-processEndOfDrive:callback but in some rare cases this delay can be really large depending on phone network conditions.This callback will be fired in trip occurrence sequence, i.e from oldest trip to the latest trip.
Declaration
Objective-C
- (void)processAnalysisOfDrive: (nonnull ZendriveAnalyzedDriveInfo *)analyzedDriveInfo;Parameters
analyzedDriveInfoAnalyzed insights of the drive.
-
This callback is fired on the main thread when an accident is detected by the SDK during a drive. Any ongoing auto-detected/manual drives will be stopped after this point.
Declaration
Objective-C
- (void)processAccidentDetected:(nonnull ZendriveAccidentInfo *)accidentInfo;Parameters
accidentInfoInfo about accident.
-
This callback is fired on main thread when location services are denied for the SDK. After this callback, drive detection is paused until location services are re-enabled for the SDK.
The expected behaviour is that the enclosing application shows an appropriate popup prompting the user to allow location services for the app.
The callback is triggered once every time location services are denied by the user and can be triggered in background or in foreground, depending on whether the SDK has enough CPU time to execute.
This callback is not sent if
ZendriveConfiguration.managesLocationPermissionvalue was set to NO at setup.Declaration
Objective-C
- (void)processLocationDenied; -
This method is called when location permission state is determined for the first time or whenever it changes.
This callback is not sent if
ZendriveConfiguration.managesLocationPermissionvalue was set to NO at setup.Declaration
Objective-C
- (void)processLocationApproved;
ZendriveDelegateProtocol Protocol Reference