-
Notifications
You must be signed in to change notification settings - Fork 34
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
Onboarding fixes #632
Comments
Fix crashes on android visible in Google Play. |
Downgrade the iOS frequency from 1m to 5m, which is likely to be good enough, and will reduce data bloat. |
while modifying the pipeline, take a look at the reason why the pipeline is taking so much resources when it is not doing much. We can see a clear pattern of ~ 30-40% utilization around xx:05. There is a much smaller spike of ~ 3% at around XX:25, which should correspond to the pipeline for the staging site, except that the pipeline actually runs at XX:15. I am not sure what, if anything, runs at XX:25 - the staging pipeline is done in 10 seconds.
|
I don't know why this was at XX:20 before, but it is now pretty consistently at XX:15. So:
But why? There are more participants in the staging site, so the data processed in each round should be larger or about the same. The mini-pilot does have more overall data, but that shouldn't matter when we work only on a subset of the data on each run anyway. |
Looking at the database logs from #634, There are similar entries in the stage database as well, around XX:15
|
Note that, other than one query in the middle, all the slow queries use |
so the queries are: 2x Both of them are for the Also, where the heck am I calling |
Looking through the location where I access
It doesn't directly have a reference to |
But I sort the results for this query (as seen above). Where do I query for filtered_location as an aggregate without sorting? I am at a loss. |
ok so to avoid rabbit holing, I am going to focus on fixing the |
Looking at the prepilot queries, I see multiple entries for aggregate for different keys - e.g.
I am pretty sure that this is not an actual aggregate call that I make since I don't actually do anything fancy with statemachine transitions, for example. It is just that the query plan returns this. Looking at the actual plan, where we select values and then sum them, I suspect that this is from Although I looked for instances of |
@asiripanich as part of the onboarding improvements, I have the iOS settings page open now instead of the Would you be willing to install the new version using TestFlight and see if it is intuitive? |
Looks good! Will test and let you know. On a somewhat related issue, has anyone complained to you that enabling the precise location option seems to consume significantly more battery than what it used to be a version earlier? |
So the current onboarding flow is:
Is this too onerous? Should it be changed? If so, how? |
would be great to do something similar for "Motion and Activity" settings. We already do check for the motion activity permission and prompt the user to enable it. However, there doesn't appear to be a callback that we can easily hook into, similar to the location callback. Instead, we have to use the UserInfo in some way; need to figure out how. Also, we only check the permission if the motion activity manager is enabled.
When we first started the project, this was a primary concern, since there were still phone models (notably iPhone 5s) that did not have the M7 coprocessor. However, recently, we ran into a situation in which the user had an iPhone 6, but had their "Motion and Fitness" service turned off, which presumably returns false for We may need to check whether the phone is iPhone6+ and assume that |
Unfortunately, just returns
Maybe at some point we can stop assuming that people are using older model phones if we get to an iOS version that is high enough |
Ah. From https://en.wikipedia.org/wiki/IPhone_5
We only currently support iOS 11+, so I think we can assume that if the activity is not available, then the service must be disabled. Except on the simulator, where it is never enabled. Here's how we can check for simulator or not |
One question: what should we do if |
So if the user does not have the Motion and Fitness settings service enabled, we need to open the "Privacy" settings. Unfortunately, there is no current way to open the Settings to anything other than the app page.
Listed in the Apple URL scheme reference are the standard ones like |
Refactoring the code significantly to centralize the checking in the |
We don't make this change in the location onboarding because if location services is turned off, then the first call to location services seems to launch a prompt that goes directly to the location screen. Does this happen for motion activity as well? |
Actually, on a phone with the co-processor and the service turned off, |
Error codes
|
Just to document the behavior:
|
The one place where this fails is if the location services are off, we are prompted, we turn them on, but don't change the permission. Don't get the prompt in that case. |
In that case, we first get a callback when the auth status is 2 (
Then we get a callback with 0 (
So it looks like there is a problem because there is already an alert controller. Should not?? happen in a real phone? |
Ok, so we do get the permissions prompt on the second call this time, but when we open the app settings, there is no location prompt; presumably because we have never prompted for it. Does this also happen when we turn off location after the app install? The callback on enable is with It is fixed the next time the app is killed and relaunched (e.g. as part of the diary init). But only if the user sees it :) |
so it seems like if we get a |
Just a reminder, @shankari I haven't received an invitation to test the app. |
@asiripanich can you check your spam folder? I just re-sent for the third time 😄 |
My apologies! I can see them now. |
@asiripanich one of the other users had their motion and fitness service turned off. So we didn't prompt for the permission and all their trips were "unknown". So I added in some additional fixes for that as well. Would be great if you would test with multiple combinations of
All turned off and on at various times before, during and after the install. If things are turned off, you should get prompts to fix them and eventually you should get to the state where all the above are enabled/turned on. |
Will test them out. Shouldn't you mention that the app needs "precise location"? tracking doesn't work on my rciti branch without the option on. |
@asiripanich points out that we should really check for the accuracy authorization as well. |
was able to work around it by accessing the loc manager singleton. |
@asiripanich any updates on the testing? Would like to submit to the stores if possible. |
Testing now.. |
WIP Off: Location service and Motion and Activity service
Off: Motion and Activity service
Both on
Disable precise location
|
for the motion and activity service, we can't open the settings page directly |
With a customised app, can't we bundle the latest version of the UI with the app? so users don't need to download when they first install the app? |
@asiripanich you can try out v1.0.9 (published Sunday) to see how the new version of the UI is bundled with the app. Make sure you to it soon, I will almost certainly push an app update at the end of June 😄 |
This is superceded by the status screen changes in #680 |
eaicf.filter_accuracy(uuid)
that works on a person-by-person basisThe text was updated successfully, but these errors were encountered: