Closed
Description
InstabugNavigatorObserver
errors on didPop
when the previousRoute
is not null, but previousRoute.settings.name.toString()
is an empty string ''
.
ScreenLoadingManager
@internal
String sanitizeScreenName(String screenName) {
const characterToBeRemoved = '/';
final lastIndex = screenName.length - 1; // lastIndex is -1 when `screenName` is `''`.
var sanitizedScreenName = screenName;
if (screenName == characterToBeRemoved) {
return 'ROOT_PAGE';
}
// screenName[0] errors when screenName is `''`
if (screenName[0] == characterToBeRemoved) {
sanitizedScreenName = sanitizedScreenName.substring(1);
}
// screenName[-1] also errors on empty string.
if (screenName[lastIndex] == characterToBeRemoved) {
sanitizedScreenName =
sanitizedScreenName.substring(0, sanitizedScreenName.length - 1);
}
return sanitizedScreenName;
}
Potential Fix
@internal
String sanitizeScreenName(String screenName) {
const characterToBeRemoved = '/';
final lastIndex = screenName.length - 1;
var sanitizedScreenName = screenName;
if (screenName.isEmpty) {
return ''; // Or any other placeholder for empty route name.
}
if (screenName == characterToBeRemoved) {
return 'ROOT_PAGE';
}
if (screenName[0] == characterToBeRemoved) {
sanitizedScreenName = sanitizedScreenName.substring(1);
}
if (screenName[lastIndex] == characterToBeRemoved) {
sanitizedScreenName =
sanitizedScreenName.substring(0, sanitizedScreenName.length - 1);
}
return sanitizedScreenName;
}
SDK Version
13.3.0
Flutter, iOS and Android Versions
Flutter 3.24.2