Acknowledged

bug: AppBase.isTrial returns true when called from the datafield's constructor

On my fenix6, 25.10 when I start my app (which is beta, but built as release, and unlocked in order to test that I am pro (aka not trial)) AppBase.isTrial returns true when it is called for the first time, from my app's constructor.

When isTrial is being called later, from the datafield's compute or onUpdate then it correctly returns false.

  • As far as I can tell, the app trial processing code needs to be able to call the derived AppBase functions allowTrialMessage, and getTrialDaysRemaining to query app trial state. The virtual machine can't safely call those functions until we have a fully constructed application instance, so we must do it after the derived AppBase initialize is called.

    The documentation doesn't explicitly say so, but it looks all app trial processing should probably not be used until after initialize.

    I think we can file a bug report or two for this. The first would be to configure app trial state before onStart is called so that the app can check it from inside onStart. The second would be to throw an exception if the app tries to call isTrial before construction has completed. I don't see much else that we can do.