Skip to content

InstabugNavigatorObserver errors when screen name is an empty string. #504

Closed
@LuckUVeryX

Description

@LuckUVeryX

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    WIPWork In Progress

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions