| @@ -1,46 +1,43 @@ | |||
| JUCE breaking changes | |||
| ===================== | |||
| ===================== | |||
| Develop | |||
| ======= | |||
| Change | |||
| ------ | |||
| InAppPurchases class is now a JUCE Singleton. This means that you need | |||
| to get an instance via InAppPurchases::getInstance(), instead of storing a | |||
| InAppPurchases object yourself. | |||
| InAppPurchases class is now a JUCE Singleton. This means that you need | |||
| to get an instance via InAppPurchases::getInstance(), instead of storing a | |||
| InAppPurchases object yourself. | |||
| Possible Issues | |||
| --------------- | |||
| Any code using InAppPurchases needs to be updated to retrieve a singleton pointer | |||
| to InAppPurchases. | |||
| Any code using InAppPurchases needs to be updated to retrieve a singleton pointer | |||
| to InAppPurchases. | |||
| Workaround | |||
| ---------- | |||
| Instead of holding a InAppPurchase member yourself, you should get an instance | |||
| via InAppPurchases::getInstance(), e.g. | |||
| instead of: | |||
| InAppPurchases iap; | |||
| iap.purchaseProduct (…); | |||
| call: | |||
| ---------- | |||
| Instead of holding a InAppPurchase member yourself, you should get an instance | |||
| via InAppPurchases::getInstance(), e.g. | |||
| instead of: | |||
| InAppPurchases iap; | |||
| iap.purchaseProduct (…); | |||
| call: | |||
| InAppPurchases::getInstance()->purchaseProduct (…); | |||
| Rationale | |||
| --------- | |||
| This change was required to fix an issue on Android where on failed transaction | |||
| --------- | |||
| This change was required to fix an issue on Android where on failed transaction | |||
| a listener would not get called. | |||
| Develop | |||
| ======= | |||
| Change | |||
| ------ | |||
| JUCE's MPE classes have been updated to reflect the official specification | |||
| @@ -103,31 +100,6 @@ still running in background. This would result in assertions when starting a | |||
| second instance. | |||
| Change | |||
| ------ | |||
| Calling JUCEApplicationBase::quit() on Android will now really quit the app, | |||
| rather than just placing it in background. Starting with API level 21 (Android | |||
| 5.0), the app will not appear in recent apps list after calling quit(). Prior | |||
| to API 21, the app will still appear in recent app lists but when a user | |||
| chooses the app, a new instance of the app will be started. | |||
| Possible Issues | |||
| --------------- | |||
| Any code calling JUCEApplicationBase::quit() to place the app in background | |||
| will close the app instead. | |||
| Workaround | |||
| ---------- | |||
| Use Process::hide(). | |||
| Rationale | |||
| --------- | |||
| The old behaviour JUCEApplicationBase::quit() was confusing JUCE code, as a new | |||
| instance of JUCE app was attempted to be created, while the older instance was | |||
| still running in background. This would result in assertions when starting a | |||
| second instance. | |||
| Change | |||
| ------ | |||
| On Windows, release builds will now link to the dynamic C++ runtime by default | |||