[com.editionsemmanuel.emmasongs] EmmaSongs does not allow to restore subscription paid on another device
- Dominant language
- Java
- Stars
- 14.6k
- Forks
- 3.2k
- PR merge metrics
- PR metrics pending
Description
**Affected app**
Name: EmmaSongs
Package id: com.editionsemmanuel.emmasongs
**Describe the bug**
EmmaSongs does not allow to restore a subscription I paid on another device. This is an app that works only with a yearly subscription. Without the restore, the app is completely useless.
**To Reproduce**
Steps to reproduce the behavior:
1. Purchase the app on another phone (most probably with Google Play Services and without MicroG)
2. Open the application EmmaSongs when the subscription is still active (I have a yearly subscription ending in around 2 months from now on) on a phone without Google Play Services but with MicroG instead
3. Click on “Already have a subscription?” (see screenshot)
4. Click on restore (see screenshot)
5. Observe the message “You don’t have any active subscriptions” (see screenshot), which is a wrong statement, my subscription is still recognized as valid by the Google Play Store.
**Expected behavior**
The restore should be possible and the application should be usable.
**Screenshots**
**System**
Android Version: 15
Custom ROM: /e/OS v4.0-a15 (latest)
Phone: FairPhone 5 bought with FairPhone OS
**microG**
microG Core version: 0.3.15.250932-17
microG Self-Check results: All ticked
**Additional context**
The application EmmaSongs is fully working for me on another phone with Google Play Services.
Logs from adb logcat :
~ adb logcat -c
~ adb logcat | grep -E 'microg|GmsCore|IAB|Billing|Purchase'
07-04 23:46:35.078 9519 12863 D Billing : getPurchasesExtraParams(apiVersion=19, packageName=com.editionsemmanuel.emmasongs, type=inapp, continuationToken=null, extraParams=Bundle[{billingClientSessionId=6734387444441020727, playBillingLibraryVersion=7.1.1, enablePendingPurchases=true}])
07-04 23:46:35.078 9519 12864 D Billing : getPurchasesExtraParams(apiVersion=19, packageName=com.editionsemmanuel.emmasongs, type=subs, continuationToken=null, extraParams=Bundle[{billingClientSessionId=6734387444441020727, playBillingLibraryVersion=7.1.1, enablePendingPurchases=true}])
07-04 23:46:35.079 9519 12863 D Billing : Result: Bundle[{INAPP_PURCHASE_ITEM_LIST=[], DEBUG_MESSAGE=, RESPONSE_CODE=0, INAPP_PURCHASE_DATA_LIST=[], INAPP_DATA_SIGNATURE_LIST=[]}]
07-04 23:46:35.079 9519 12864 D Billing : Result: Bundle[{INAPP_PURCHASE_ITEM_LIST=[], DEBUG_MESSAGE=, RESPONSE_CODE=0, INAPP_PURCHASE_DATA_LIST=[], INAPP_DATA_SIGNATURE_LIST=[]}]
^C
This seems to be similar to the 3 below issues but the message is different (at least from the UI of EmmaSongs):
https://github.com/microg/GmsCore/issues/2326
https://github.com/microg/GmsCore/issues/916
https://github.com/microg/GmsCore/issues/2254
This is a similar issue to https://github.com/microg/GmsCore/issues/617 but I do not run Lineage OS.
I saw that some In App Purchase code exists in MicroG :
1. https://github.com/microg/GmsCore/issues/309 (Commit : https://github.com/microg/GmsCore/commit/d4d7713f8a045c7f08ed3ff659cd50a7878e326f)
2. https://github.com/microg/GmsCore/blob/master/vending-app/src/main/java/org/microg/vending/billing/InAppBillingServiceImpl.kt
Maybe some code around this could be added/changed to support more IAP scenarios like mine.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with vending-app/src/main/java/org/microg/vending/billing/InAppBillingServiceImpl.kt and the logged getPurchasesExtraParams results for EmmaSongs. Compare the behavior with related issues 2326, 916, 2254, and 617, then determine what is needed for restoring an active subscription purchased on another device. Done means the reported subscription is returned instead of an empty active-subscription result in this scenario.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile, payments
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100