Nudge constructor
Nudge({})
Factory constructor to ensure a single instance of Nudge.
Implementation
factory Nudge({
required String apiKey,
required bool debugMode,
required Region region,
bool disableNudge = false,
Function? registerRefreshToken,
Function(String? key)? registerAuth,
}) {
if (_instance == null) {
// Replace if none exists OR if old one was auto-created
NLogger.i("Creating new Nudge instance... ");
_instance = Nudge._internal(
apiKey: apiKey,
debugMode: debugMode,
region: region,
nudgeDisabled: disableNudge,
registerRefreshToken: registerRefreshToken,
registerAuth: registerAuth,
);
_autoCreated = false; // explicit init replaces auto
NLogger.i("Nudge instance created with API Key: $apiKey");
}
if (_autoCreated) {
// auto-created placeholder exists → promote in-place
_instance!._reconfigure(
apiKey: apiKey,
debugMode: debugMode,
region: region,
disableNudge: disableNudge,
registerRefreshToken: registerRefreshToken,
registerAuth: registerAuth,
);
// no new instance created
NLogger.i("Nudge instance Updated with API Key: $apiKey");
return _instance!;
}
// already a real instance → just return it
NLogger.i("Returning existing Nudge instance: $_instance");
return _instance!;
}