This error occurs on some devices in the Play store
(android 12). I can't reproduce it unless I forcefully
pass NaN to my charts, so this might just fix the error.
Related to #206.
Exception java.lang.Error:
at com.horcrux.svg.PathParser.parse_number (PathParser.java:627)
at com.horcrux.svg.PathParser.parse_list_number (PathParser.java:594)
at com.horcrux.svg.PathParser.parse (PathParser.java:118)
at com.horcrux.svg.PathView.setD (PathView.java:28)
at com.horcrux.svg.RenderableViewManager$PathViewManager.setD (RenderableViewManager.java:751)
at com.horcrux.svg.RenderableViewManager$PathViewManager.setD (RenderableViewManager.java:740)
at com.facebook.react.viewmanagers.RNSVGPathManagerDelegate.setProperty (RNSVGPathManagerDelegate.java:112)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps (ViewManagerPropertyUpdater.java:46)
at com.facebook.react.uimanager.ViewManager.updateProperties (ViewManager.java:84)
at com.facebook.react.uimanager.ViewManager.createViewInstance (ViewManager.java:188)
at com.facebook.react.uimanager.ViewManager.createView (ViewManager.java:115)
at com.facebook.react.uimanager.NativeViewHierarchyManager.createView (NativeViewHierarchyManager.java:281)
at com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute (UIViewOperationQueue.java:194)
at com.facebook.react.uimanager.UIViewOperationQueue$1.run (UIViewOperationQueue.java:909)
at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches (UIViewOperationQueue.java:1026)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded (UIViewOperationQueue.java:1086)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame (GuardedFrameCallback.java:29)
at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame (ReactChoreographer.java:175)
at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame (ChoreographerCompat.java:85)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1106)
at android.view.Choreographer.doCallbacks (Choreographer.java:866)
at android.view.Choreographer.doFrame (Choreographer.java:792)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1092)
at android.os.Handler.handleCallback (Handler.java:938)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loopOnce (Looper.java:226)
at android.os.Looper.loop (Looper.java:313)
at android.app.ActivityThread.main (ActivityThread.java:8751)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)
Many of our errors in production are caused
by the alarm module finishing. In devices after
android version 7 we are "required" to use
startForegroundService or else the following
error supposedly occurs:
Exception java.lang.IllegalStateException:
at android.app.ContextImpl.startServiceCommon (ContextImpl.java:1725)
at android.app.ContextImpl.startService (ContextImpl.java:1680)
at android.content.ContextWrapper.startService (ContextWrapper.java:731)
at android.content.ContextWrapper.startService (ContextWrapper.java:731)
at com.massive.AlarmModule$getTimer$1.onFinish (AlarmModule.kt:144)
at android.os.CountDownTimer$1.handleMessage (CountDownTimer.java:127)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:236)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run (MessageQueueThreadImpl.java:228)
at java.lang.Thread.run (Thread.java:923)
I say supposedly because on all of my testing
devices (which are android 7+) this error
doesn't occur.
- This is partly to figure out what is happening in #206.
- It's also because we have the global timer bar
- Could never quite make it look like the text was centered
This bug is because I mis-named the event for the alarm finishing.
It would only be possible to create this bug if you do the following:
1. Create a timer
2. Swap to another app for it's duration and keep your phone screen
active
3. On timer completion, without tapping the notification, focus the app
4. See the timer has not been set to zero
If the load time is too fast (on a mid-tier device),
then for most people they will see a flicker of a
loading spinner (which looks like a bug). These indicators
would only marginally improve the experience of people with
the slowest devices, but for most people this will just look
like a bug.
I left the indicators in the InsightsPage since those queries
actually do take >=300ms on a mid-tier device.