showDebugPage static method
void
showDebugPage()
Show debug page
Implementation
static void showDebugPage() {
if (!_enabled) {
debugPrint('SwiftViewInterceptor: Debug tool is not enabled.');
return;
}
// Priority 1: Try to get navigator from global key first (works with GetMaterialApp)
if (_navigatorKey != null) {
final navigatorState = _navigatorKey!.currentState;
if (navigatorState != null) {
navigatorState.push(
MaterialPageRoute(
builder: (context) => const SwiftDebugPage(),
),
);
debugPrint('SwiftViewInterceptor: Navigated using global navigatorKey.');
return;
} else {
debugPrint('SwiftViewInterceptor: navigatorKey is set but currentState is null. Navigator may not be built yet.');
}
}
// Priority 2: Fallback to context-based navigation
if (_context != null) {
// Try to find navigator from context (root navigator)
final navigatorState = Navigator.maybeOf(_context!, rootNavigator: true);
if (navigatorState != null) {
navigatorState.push(
MaterialPageRoute(
builder: (context) => const SwiftDebugPage(),
),
);
debugPrint('SwiftViewInterceptor: Navigated using context with rootNavigator.');
return;
}
// Try regular navigator (non-root)
final navigator = Navigator.maybeOf(_context!);
if (navigator != null) {
navigator.push(
MaterialPageRoute(
builder: (context) => const SwiftDebugPage(),
),
);
debugPrint('SwiftViewInterceptor: Navigated using context navigator.');
return;
}
// Last resort: try to find any navigator in the widget tree
final ancestorNavigator = _context!.findAncestorStateOfType<NavigatorState>();
if (ancestorNavigator != null) {
ancestorNavigator.push(
MaterialPageRoute(
builder: (context) => const SwiftDebugPage(),
),
);
debugPrint('SwiftViewInterceptor: Navigated using ancestor NavigatorState.');
return;
}
}
// If all else fails, print a detailed warning
debugPrint('SwiftViewInterceptor: Could not find Navigator.');
debugPrint(' - navigatorKey: ${_navigatorKey != null ? "set" : "null"}');
debugPrint(' - navigatorKey.currentState: ${_navigatorKey?.currentState != null ? "available" : "null"}');
debugPrint(' - context: ${_context != null ? "set" : "null"}');
debugPrint(' - Make sure to:');
debugPrint(' 1. Pass navigatorKey to SwiftFlutter.init(navigatorKey: yourKey)');
debugPrint(' 2. Use the same key in GetMaterialApp/MaterialApp: navigatorKey: yourKey');
}