Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SecureApplicationProvider.of(context) crashes #7

Open
Kostya1375 opened this issue Aug 31, 2020 · 1 comment
Open

SecureApplicationProvider.of(context) crashes #7

Kostya1375 opened this issue Aug 31, 2020 · 1 comment

Comments

@Kostya1375
Copy link

I've wrapped my app as guided in to SecureApplication

return MaterialApp(
        title: Strings.appName,
        theme: ThemeData(...),
        home: SecureApplication(
          child: SecureGate(
              lockedBuilder: (context, secureApplicationController) =>
                  AuthPage(secureApplicationController),
              child: RatesPage()),
        ),
        navigatorObservers: [
          FirebaseAnalyticsObserver(...)
        ]);

And now after multiple navigations to other pages I'm trying to get instance of SecureApplicaitonController to enable/disable securing

class SecurityPage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _SecurityPageState();
}

class _SecurityPageState extends State<SecurityPage> {
  final LocalAuthentication _auth = LocalAuthentication();
  SecurityState _state = SecurityState(null, null);
  SharedPreferences _prefs;

  @override
  void initState() {
    super.initState();
    SharedPreferences.getInstance().then(onPreferencesAcquired);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(...),
      body: SecureGate(
        child: Builder(
          builder: (context) {
            var valueNotifier = SecureApplicationProvider.of(context); // <- Here comes the problems
            return Column(children: _getSettingsList(valueNotifier));
          },
        ),
      ),
    );
  }

And now I'm getting this error:

When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
#1      SecureApplicationProvider.of (package:secure_application/secure_application_provider.dart:24:12)
#2      _SecureGateState.didChangeDependencies (package:secure_application/secure_gate.dart:60:64)
#3      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4705:12)
#4      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4520:5)
...     Normal element mounting (19 frames)
#23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)
#24     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5991:32)
...     Normal element mounting (210 frames)
#234    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)
#235    Element.updateChild (package:flutter/src/widgets/framework.dart:3258:18)
#236    RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5624:32)
#237    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6001:17)
#238    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#239    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#240    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#241    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#242    StatefulElement.update (package:flutter/src/widgets/framework.dart:4751:5)
#243    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#244    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#245    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#246    ProxyElement.update (package:flutter/src/widgets/framework.dart:4906:5)
#247    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:183:11)
#248    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#249    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#250    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#251    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#252    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#253    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#254    StatefulElement.update (package:flutter/src/widgets/framework.dart:4751:5)
#255    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#256    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#257    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#258    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#259    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#260    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#261    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#262    StatelessElement.update (package:flutter/src/widgets/framework.dart:4627:5)
#263    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#264    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#265    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#266    ProxyElement.update (package:flutter/src/widgets/framework.dart:4906:5)
#267    Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#268    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#269    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#270    Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#271    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:33)
#272    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:866:20)
#273    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
#274    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15)
#275    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1056:9)
#276    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:972:5)
#280    _invoke (dart:ui/hooks.dart:253:10)
#281    _drawFrame (dart:ui/hooks.dart:211:3)
(elided 3 frames from dart:async)

════════════════════════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building _BodyBuilder:
The getter 'secureData' was called on null.
Receiver: null
Tried calling: secureData

The relevant error-causing widget was: 
  Scaffold file:///Users/kostya1375/FlutterProjects/GodexApp/lib/ui/screen/settings_screen.dart:255:12
When the exception was thrown, this was the stack: 
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
#1      SecureApplicationProvider.of (package:secure_application/secure_application_provider.dart:24:12)
#2      _SecureGateState.didChangeDependencies (package:secure_application/secure_gate.dart:60:64)
#3      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4705:12)
#4      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4520:5)
...
@TreyThomas93
Copy link

Most likely the context you are passing is null.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants