Plus you usually have to move a bit. GPS tells you which direction you are moving, not which direction you are facing. Usually it becomes valid when the GPS speed becomes valid too.
If you need to know which direction you are facing, ie, the orientation of the phone, then the magnetometers will get you most of the way there, just don't go staking your life on the readings. I assume Android will translate the magnetic flux readings into a NSEW bearing, but I'd be (pleasantly) surprised if it took into account the magnetic declination of true/geographic vs magnetic north, which varies depending on where you are. Nearby ferrous objects (eg, car bodies, concrete steel reinforcement) and electromagnetic fields don't help.
Once you do have a reasonably good directional fix, you could use the gyroscopes to keep ahold of that... except that gyroscopes don't seem to be common on Android phones. Phones that support VR should have them, Samsung seems to be good in that regard.
although I still suspect that BearingValid and SpeedValid follow each other closely, because they would both be derived by Doppler techniques, rather than the time-of-flight ranging used for calculating position.
There is a common misconception that speed measured via GPS is done so as a function of position against time. If this were the case, GPS velocity would be just about unusable, because GPS position relies on precise measurements of the distance from the receiver to the satellite, and therefore suffers from numerous effects - such as atmospheric interference - which delays the signal.
Fortunately, velocity isn't measured like this: instead, the Doppler shift in the signals coming from the satellites is captured and this leads to an incredibly accurate measurement of speed.