There are a lot of old questions and answers from many, many years back about the topic of migrating an existing paid app to a freemium model using in app purchases, but they all just state the same limited workarounds.
So is there an official way to do this in 2019? Or at least a method that avoids the usual pitfalls, like
Negative impact on user experience
Will eventually fail when the user buys a new device
SharedPreferences
There are other equally flawed methods as well which aren't even worth mentioning. The correct and easy fix would of course be a simple API call to Google Play Services:
bool legacyPremiumUser = didUserEverPurchaseThisApp();
Does anything like this exist today? Even just a way to identify a user across devices would be acceptable.
Since there has been no answer for over a year, I might as well post my own.
I ended up doing some kind of mishmash of
If all else fails, they can contact me manually by email or an in-app feedback form and I'll try to find their purchase in Google Play order management and/or just take their word for it and unlock legacy premium for their Google account manually.
It's far from perfect, but it beats asking legacy customers to pay again.. and again, and again...