Closed DaVinci9196 closed 4 days ago
Shouldn't we rather make sure to never call ProfileManager.ensureInitialized()
before it's needed? It's never needed when the main services app is not installed as we can't check if relevant services are enabled.
Also, the current code doesn't assume the remote profile to be applied if the applied dataset is empty or an exception occurs while fetching it. So it's unclear to me how we can run into the issue you mention.
Your current code also checks a random subset of profile fields to be unset. Why isn't a single one enough and why did you choose those and not others. The check seems a little fuzzy to me.
Shouldn't we rather make sure to never call
ProfileManager.ensureInitialized()
before it's needed? It's never needed when the main services app is not installed as we can't check if relevant services are enabled.Also, the current code doesn't assume the remote profile to be applied if the applied dataset is empty or an exception occurs while fetching it. So it's unclear to me how we can run into the issue you mention.
Your current code also checks a random subset of profile fields to be unset. Why isn't a single one enough and why did you choose those and not others. The check seems a little fuzzy to me.
You can try this APP app:SoundCloud packagename:com.soundcloud.android 1.Install vending without installing mg 2.open SoundCloud and click “upgrade”. Tips: There is a problem 3.install mg 4.open SoundCloud and click “upgrade”. Tips: There is a problem 5.Removing the app from the background and re-entering it also has the same problem
I think "vending" should display an error and not initialize anything if microg services isn't installed as it isn't a supported configuration.
I think "vending" should display an error and not initialize anything if microg services isn't installed as it isn't a supported configuration.
If mg is not installed, the third-party APP will prompt. If we prompt again, it will be repeated and affect the user experience.
We can (in my opinion):
I think this is fine for now. We can think about more elaborate handling of this situation (notification or similar warning) at a later point.
Reproduction steps: 1.Install vending without installing mg 2.Find an APP to trigger IAP and trigger build info initialization 3.install mg 4.IAP problem found
The problem is that the build info of vending depends on mg. If mg is not installed, the parameters in the build are null. The build info is initialized only once, so it will not be initialized again after mg is installed, resulting in the parameters in the build being null all the time.