NavigationEventCallback


public abstract class NavigationEventCallback<T extends NavigationEventInfo>

Known direct subclasses
TestNavigationEventCallback

A test implementation of NavigationEventCallback that records received events and invocation counts.


Callback for handling NavigationEvents.

This class maintains its own isEnabled state and will only receive callbacks when enabled.

Summary

Public constructors

<T extends NavigationEventInfo> NavigationEventCallback(boolean isEnabled)

Public methods

final boolean

Controls whether this callback is active and should be considered for event dispatching.

void

Callback for handling NavigationEventDispatcher.dispatchOnCancelled.

void

Callback for handling NavigationEventDispatcher.dispatchOnCompleted.

void

Callback for handling NavigationEventDispatcher.dispatchOnProgressed.

void

Callback for handling NavigationEventDispatcher.dispatchOnStarted.

final void

Removes this callback from the NavigationEventDispatcher it is registered with.

final void
setEnabled(boolean isEnabled)

Controls whether this callback is active and should be considered for event dispatching.

final void
setInfo(@NonNull T currentInfo, T previousInfo)

Updates the current and previous navigation information for this callback.

Public constructors

public <T extends NavigationEventInfo> NavigationEventCallback(boolean isEnabled)
Parameters
boolean isEnabled

The initial enabled state for this callback.

Public methods

isEnabled

Added in 1.0.0-alpha06
public final boolean isEnabled()

Controls whether this callback is active and should be considered for event dispatching.

A callback's effective enabled state is hierarchical; it is directly influenced by the NavigationEventDispatcher it is registered with.

Getting the value:

  • This will return false if the associated dispatcher exists and its isEnabled state is false, regardless of the callback's own local setting. This provides a powerful mechanism to disable a whole group of callbacks at once by simply disabling their dispatcher.

  • Otherwise, it returns the callback's own locally stored state.

Setting the value:

  • This updates the local enabled state of the callback itself.

  • More importantly, it immediately notifies the dispatcher (if one is attached) that its list of enabled callbacks might have changed, prompting a re-evaluation. This ensures the system's state remains consistent and responsive to changes.

For a callback to be truly active, both its local isEnabled property and its dispatcher's isEnabled property must evaluate to true.

onEventCancelled

Added in 1.0.0-alpha06
public void onEventCancelled()

Callback for handling NavigationEventDispatcher.dispatchOnCancelled.

onEventCompleted

Added in 1.0.0-alpha06
public void onEventCompleted()

Callback for handling NavigationEventDispatcher.dispatchOnCompleted.

onEventProgressed

Added in 1.0.0-alpha06
public void onEventProgressed(@NonNull NavigationEvent event)

Callback for handling NavigationEventDispatcher.dispatchOnProgressed.

onEventStarted

Added in 1.0.0-alpha06
public void onEventStarted(@NonNull NavigationEvent event)

Callback for handling NavigationEventDispatcher.dispatchOnStarted.

remove

Added in 1.0.0-alpha06
public final void remove()

Removes this callback from the NavigationEventDispatcher it is registered with. If the callback is not registered, this call does nothing.

setEnabled

Added in 1.0.0-alpha06
public final void setEnabled(boolean isEnabled)

Controls whether this callback is active and should be considered for event dispatching.

A callback's effective enabled state is hierarchical; it is directly influenced by the NavigationEventDispatcher it is registered with.

Getting the value:

  • This will return false if the associated dispatcher exists and its isEnabled state is false, regardless of the callback's own local setting. This provides a powerful mechanism to disable a whole group of callbacks at once by simply disabling their dispatcher.

  • Otherwise, it returns the callback's own locally stored state.

Setting the value:

  • This updates the local enabled state of the callback itself.

  • More importantly, it immediately notifies the dispatcher (if one is attached) that its list of enabled callbacks might have changed, prompting a re-evaluation. This ensures the system's state remains consistent and responsive to changes.

For a callback to be truly active, both its local isEnabled property and its dispatcher's isEnabled property must evaluate to true.

setInfo

Added in 1.0.0-alpha06
public final void setInfo(@NonNull T currentInfo, T previousInfo)

Updates the current and previous navigation information for this callback.

This method updates the callback's local info and then notifies the central NavigationEventProcessor. The processor is responsible for deciding whether to update the global navigation state, ensuring that only the highest-priority callback can influence the state.

Parameters
@NonNull T currentInfo

The new navigation information to be set as the current state.

T previousInfo

The navigation information to be set as the previous state.