summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@petroules.com>2015-08-05 02:11:20 -0700
committerAndy Nichols <andy.nichols@theqtcompany.com>2015-08-11 13:00:13 +0000
commit7810fd6bf0c5a749e1ab59c6805217afdb48a722 (patch)
tree0d9c5ab075a258ffd6dbf8cb82063f43d55bd56e
parente30df2ce13e7d1ec6add8bb0ea4f96217246ec3e (diff)
Adapt iOS backend to work on OS X as well.
Change-Id: Ieec9c7d02225697bfaeaaa3ca1a87fbcf77327ea Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
-rw-r--r--examples/purchasing/qthangman/qthangman.pro4
-rw-r--r--src/purchasing/doc/src/qtpurchasing-overview.qdoc2
-rw-r--r--src/purchasing/inapppurchase/inapppurchase.pri4
-rw-r--r--src/purchasing/inapppurchase/ios/ios.pri11
-rw-r--r--src/purchasing/inapppurchase/mac/mac.pri11
-rw-r--r--src/purchasing/inapppurchase/mac/qmacinapppurchasebackend.mm (renamed from src/purchasing/inapppurchase/ios/qiosinapppurchasebackend.mm)78
-rw-r--r--src/purchasing/inapppurchase/mac/qmacinapppurchasebackend_p.h (renamed from src/purchasing/inapppurchase/ios/qiosinapppurchasebackend_p.h)28
-rw-r--r--src/purchasing/inapppurchase/mac/qmacinapppurchaseproduct.mm (renamed from src/purchasing/inapppurchase/ios/qiosinapppurchaseproduct.mm)16
-rw-r--r--src/purchasing/inapppurchase/mac/qmacinapppurchaseproduct_p.h (renamed from src/purchasing/inapppurchase/ios/qiosinapppurchaseproduct_p.h)16
-rw-r--r--src/purchasing/inapppurchase/mac/qmacinapppurchasetransaction.mm (renamed from src/purchasing/inapppurchase/ios/qiosinapppurchasetransaction.mm)22
-rw-r--r--src/purchasing/inapppurchase/mac/qmacinapppurchasetransaction_p.h (renamed from src/purchasing/inapppurchase/ios/qiosinapppurchasetransaction_p.h)16
-rw-r--r--src/purchasing/inapppurchase/qinapppurchasebackendfactory.cpp8
-rw-r--r--src/purchasing/inapppurchase/qinappstore.cpp2
-rw-r--r--tests/auto/purchasing/qinappstore/tst_qinappstore.cpp2
14 files changed, 119 insertions, 101 deletions
diff --git a/examples/purchasing/qthangman/qthangman.pro b/examples/purchasing/qthangman/qthangman.pro
index d1bea15..96b87e9 100644
--- a/examples/purchasing/qthangman/qthangman.pro
+++ b/examples/purchasing/qthangman/qthangman.pro
@@ -31,9 +31,9 @@ OTHER_FILES += \
qml/qthangman/Word.qml \
enable2.txt
-ios {
+mac {
#Change the following lines to match your unique App ID
- #to enable in-app purchases on iOS
+ #to enable in-app purchases on OS X and iOS
#For example if your App ID is org.qtproject.qt.iosteam.qthangman"
#QMAKE_TARGET_BUNDLE_PREFIX = "org.qtproject.qt.iosteam"
#TARGET = qthangman
diff --git a/src/purchasing/doc/src/qtpurchasing-overview.qdoc b/src/purchasing/doc/src/qtpurchasing-overview.qdoc
index e72ba7e..71760d5 100644
--- a/src/purchasing/doc/src/qtpurchasing-overview.qdoc
+++ b/src/purchasing/doc/src/qtpurchasing-overview.qdoc
@@ -32,7 +32,7 @@
Qt Purchasing is an add-on library that enables Qt applications to support
in-app purchases. It is a cross-platform library that currently supports
- purchases made to the App Store on iOS, and Google Play on Android.
+ purchases made to the Mac App Store on OS X, App Store on iOS, and Google Play on Android.
\section1 In-App Purchases
diff --git a/src/purchasing/inapppurchase/inapppurchase.pri b/src/purchasing/inapppurchase/inapppurchase.pri
index 2f2acc3..85bab80 100644
--- a/src/purchasing/inapppurchase/inapppurchase.pri
+++ b/src/purchasing/inapppurchase/inapppurchase.pri
@@ -23,6 +23,6 @@ android {
include ($$PWD/android/android.pri)
}
-ios {
- include ($$PWD/ios/ios.pri)
+mac {
+ include ($$PWD/mac/mac.pri)
}
diff --git a/src/purchasing/inapppurchase/ios/ios.pri b/src/purchasing/inapppurchase/ios/ios.pri
deleted file mode 100644
index b0b1b55..0000000
--- a/src/purchasing/inapppurchase/ios/ios.pri
+++ /dev/null
@@ -1,11 +0,0 @@
-LIBS += -framework StoreKit -framework Foundation
-INCLUDEPATH += $$PWD
-HEADERS += \
- inapppurchase/ios/qiosinapppurchaseproduct_p.h \
- inapppurchase/ios/qiosinapppurchasebackend_p.h \
- inapppurchase/ios/qiosinapppurchasetransaction_p.h
-
-OBJECTIVE_SOURCES += \
- inapppurchase/ios/qiosinapppurchasebackend.mm \
- inapppurchase/ios/qiosinapppurchaseproduct.mm \
- inapppurchase/ios/qiosinapppurchasetransaction.mm
diff --git a/src/purchasing/inapppurchase/mac/mac.pri b/src/purchasing/inapppurchase/mac/mac.pri
new file mode 100644
index 0000000..10672eb
--- /dev/null
+++ b/src/purchasing/inapppurchase/mac/mac.pri
@@ -0,0 +1,11 @@
+LIBS += -framework StoreKit -framework Foundation
+INCLUDEPATH += $$PWD
+HEADERS += \
+ $$PWD/qmacinapppurchasebackend_p.h \
+ $$PWD/qmacinapppurchasetransaction_p.h \
+ $$PWD/qmacinapppurchaseproduct_p.h
+
+OBJECTIVE_SOURCES += \
+ $$PWD/qmacinapppurchasebackend.mm \
+ $$PWD/qmacinapppurchaseproduct.mm \
+ $$PWD/qmacinapppurchasetransaction.mm
diff --git a/src/purchasing/inapppurchase/ios/qiosinapppurchasebackend.mm b/src/purchasing/inapppurchase/mac/qmacinapppurchasebackend.mm
index 92f3bb0..a820211 100644
--- a/src/purchasing/inapppurchase/ios/qiosinapppurchasebackend.mm
+++ b/src/purchasing/inapppurchase/mac/qmacinapppurchasebackend.mm
@@ -26,17 +26,17 @@
**
****************************************************************************/
-#include "qiosinapppurchasebackend_p.h"
-#include "qiosinapppurchaseproduct_p.h"
-#include "qiosinapppurchasetransaction_p.h"
+#include "qmacinapppurchasebackend_p.h"
+#include "qmacinapppurchaseproduct_p.h"
+#include "qmacinapppurchasetransaction_p.h"
#include <QtCore/QString>
#import <StoreKit/StoreKit.h>
-@interface InAppPurchaseManager : NSObject <SKProductsRequestDelegate, SKPaymentTransactionObserver>
+@interface QT_MANGLE_NAMESPACE(InAppPurchaseManager) : NSObject <SKProductsRequestDelegate, SKPaymentTransactionObserver>
{
- QIosInAppPurchaseBackend *backend;
+ QMacInAppPurchaseBackend *backend;
NSMutableArray *pendingTransactions;
}
@@ -45,13 +45,15 @@
@end
-@implementation InAppPurchaseManager
+@implementation QT_MANGLE_NAMESPACE(InAppPurchaseManager)
--(id)initWithBackend:(QIosInAppPurchaseBackend *)iapBackend {
+-(id)initWithBackend:(QMacInAppPurchaseBackend *)iapBackend {
if (self = [super init]) {
backend = iapBackend;
pendingTransactions = [[NSMutableArray alloc] init];
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
+ qRegisterMetaType<QMacInAppPurchaseProduct*>("QMacInAppPurchaseProduct*");
+ qRegisterMetaType<QMacInAppPurchaseTransaction*>("QMacInAppPurchaseTransaction*");
}
return self;
}
@@ -78,13 +80,17 @@
for (SKPaymentTransaction *transaction in pendingTransactions) {
QInAppTransaction::TransactionStatus status = [InAppPurchaseManager statusFromTransaction:transaction];
- QIosInAppPurchaseProduct *product = backend->registeredProductForProductId(QString::fromNSString(transaction.payment.productIdentifier));
+ QMacInAppPurchaseProduct *product = backend->registeredProductForProductId(QString::fromNSString(transaction.payment.productIdentifier));
if (product) {
//It is possible that the product doesn't exist yet (because of previous restores).
- QIosInAppPurchaseTransaction *qtTransaction = new QIosInAppPurchaseTransaction(transaction, status, product, backend);
+ QMacInAppPurchaseTransaction *qtTransaction = new QMacInAppPurchaseTransaction(transaction, status, product);
+ if (qtTransaction->thread() != backend->thread()) {
+ qtTransaction->moveToThread(backend->thread());
+ qtTransaction->setParent(backend);
+ }
[registeredTransactions addObject:transaction];
- QMetaObject::invokeMethod(backend, "registerTransaction", Qt::AutoConnection, Q_ARG(QIosInAppPurchaseTransaction*, qtTransaction));
+ QMetaObject::invokeMethod(backend, "registerTransaction", Qt::AutoConnection, Q_ARG(QMacInAppPurchaseTransaction*, qtTransaction));
}
}
@@ -105,9 +111,13 @@
QMetaObject::invokeMethod(backend, "registerQueryFailure", Qt::AutoConnection, Q_ARG(QString, QString::fromNSString(invalidId)));
} else {
//Valid product query
- //Create a QIosInAppPurchaseProduct
- QIosInAppPurchaseProduct *validProduct = new QIosInAppPurchaseProduct(product, backend->productTypeForProductId(QString::fromNSString([product productIdentifier])), backend);
- QMetaObject::invokeMethod(backend, "registerProduct", Qt::AutoConnection, Q_ARG(QIosInAppPurchaseProduct*, validProduct));
+ //Create a QMacInAppPurchaseProduct
+ QMacInAppPurchaseProduct *validProduct = new QMacInAppPurchaseProduct(product, backend->productTypeForProductId(QString::fromNSString([product productIdentifier])));
+ if (validProduct->thread() != backend->thread()) {
+ validProduct->moveToThread(backend->thread());
+ validProduct->setParent(backend);
+ }
+ QMetaObject::invokeMethod(backend, "registerProduct", Qt::AutoConnection, Q_ARG(QMacInAppPurchaseProduct*, validProduct));
}
[request release];
@@ -145,18 +155,22 @@
{
Q_UNUSED(queue);
for (SKPaymentTransaction *transaction in transactions) {
- //Create QIosInAppPurchaseTransaction
+ //Create QMacInAppPurchaseTransaction
QInAppTransaction::TransactionStatus status = [InAppPurchaseManager statusFromTransaction:transaction];
if (status == QInAppTransaction::Unknown)
continue;
- QIosInAppPurchaseProduct *product = backend->registeredProductForProductId(QString::fromNSString(transaction.payment.productIdentifier));
+ QMacInAppPurchaseProduct *product = backend->registeredProductForProductId(QString::fromNSString(transaction.payment.productIdentifier));
if (product) {
//It is possible that the product doesn't exist yet (because of previous restores).
- QIosInAppPurchaseTransaction *qtTransaction = new QIosInAppPurchaseTransaction(transaction, status, product, backend);
- QMetaObject::invokeMethod(backend, "registerTransaction", Qt::AutoConnection, Q_ARG(QIosInAppPurchaseTransaction*, qtTransaction));
+ QMacInAppPurchaseTransaction *qtTransaction = new QMacInAppPurchaseTransaction(transaction, status, product);
+ if (qtTransaction->thread() != backend->thread()) {
+ qtTransaction->moveToThread(backend->thread());
+ qtTransaction->setParent(backend);
+ }
+ QMetaObject::invokeMethod(backend, "registerTransaction", Qt::AutoConnection, Q_ARG(QMacInAppPurchaseTransaction*, qtTransaction));
} else {
//Add the transaction to the pending transactions list
[pendingTransactions addObject:transaction];
@@ -169,31 +183,31 @@
QT_BEGIN_NAMESPACE
-QIosInAppPurchaseBackend::QIosInAppPurchaseBackend(QObject *parent)
+QMacInAppPurchaseBackend::QMacInAppPurchaseBackend(QObject *parent)
: QInAppPurchaseBackend(parent)
, m_iapManager(0)
{
}
-QIosInAppPurchaseBackend::~QIosInAppPurchaseBackend()
+QMacInAppPurchaseBackend::~QMacInAppPurchaseBackend()
{
- [(InAppPurchaseManager*)m_iapManager release];
+ [m_iapManager release];
}
-void QIosInAppPurchaseBackend::initialize()
+void QMacInAppPurchaseBackend::initialize()
{
m_iapManager = [[InAppPurchaseManager alloc] initWithBackend:this];
emit QInAppPurchaseBackend::ready();
}
-bool QIosInAppPurchaseBackend::isReady() const
+bool QMacInAppPurchaseBackend::isReady() const
{
if (m_iapManager)
return true;
return false;
}
-void QIosInAppPurchaseBackend::queryProduct(QInAppProduct::ProductType productType, const QString &identifier)
+void QMacInAppPurchaseBackend::queryProduct(QInAppProduct::ProductType productType, const QString &identifier)
{
Q_UNUSED(productType)
@@ -204,21 +218,21 @@ void QIosInAppPurchaseBackend::queryProduct(QInAppProduct::ProductType productTy
m_productTypeForPendingId[identifier] = productType;
- [(InAppPurchaseManager*)m_iapManager requestProductData:(identifier.toNSString())];
+ [m_iapManager requestProductData:(identifier.toNSString())];
}
-void QIosInAppPurchaseBackend::restorePurchases()
+void QMacInAppPurchaseBackend::restorePurchases()
{
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}
-void QIosInAppPurchaseBackend::setPlatformProperty(const QString &propertyName, const QString &value)
+void QMacInAppPurchaseBackend::setPlatformProperty(const QString &propertyName, const QString &value)
{
Q_UNUSED(propertyName);
Q_UNUSED(value);
}
-void QIosInAppPurchaseBackend::registerProduct(QIosInAppPurchaseProduct *product)
+void QMacInAppPurchaseBackend::registerProduct(QMacInAppPurchaseProduct *product)
{
QHash<QString, QInAppProduct::ProductType>::iterator it = m_productTypeForPendingId.find(product->identifier());
Q_ASSERT(it != m_productTypeForPendingId.end());
@@ -229,7 +243,7 @@ void QIosInAppPurchaseBackend::registerProduct(QIosInAppPurchaseProduct *product
[m_iapManager processPendingTransactions];
}
-void QIosInAppPurchaseBackend::registerQueryFailure(const QString &productId)
+void QMacInAppPurchaseBackend::registerQueryFailure(const QString &productId)
{
QHash<QString, QInAppProduct::ProductType>::iterator it = m_productTypeForPendingId.find(productId);
Q_ASSERT(it != m_productTypeForPendingId.end());
@@ -238,21 +252,21 @@ void QIosInAppPurchaseBackend::registerQueryFailure(const QString &productId)
m_productTypeForPendingId.erase(it);
}
-void QIosInAppPurchaseBackend::registerTransaction(QIosInAppPurchaseTransaction *transaction)
+void QMacInAppPurchaseBackend::registerTransaction(QMacInAppPurchaseTransaction *transaction)
{
emit QInAppPurchaseBackend::transactionReady(transaction);
}
-QInAppProduct::ProductType QIosInAppPurchaseBackend::productTypeForProductId(const QString &productId)
+QInAppProduct::ProductType QMacInAppPurchaseBackend::productTypeForProductId(const QString &productId)
{
return m_productTypeForPendingId[productId];
}
-QIosInAppPurchaseProduct *QIosInAppPurchaseBackend::registeredProductForProductId(const QString &productId)
+QMacInAppPurchaseProduct *QMacInAppPurchaseBackend::registeredProductForProductId(const QString &productId)
{
return m_registeredProductForId[productId];
}
QT_END_NAMESPACE
-#include "moc_qiosinapppurchasebackend_p.cpp"
+#include "moc_qmacinapppurchasebackend_p.cpp"
diff --git a/src/purchasing/inapppurchase/ios/qiosinapppurchasebackend_p.h b/src/purchasing/inapppurchase/mac/qmacinapppurchasebackend_p.h
index 83febbe..474b35a 100644
--- a/src/purchasing/inapppurchase/ios/qiosinapppurchasebackend_p.h
+++ b/src/purchasing/inapppurchase/mac/qmacinapppurchasebackend_p.h
@@ -26,8 +26,8 @@
**
****************************************************************************/
-#ifndef QIOSINAPPPURCHASEBACKEND_P_H
-#define QIOSINAPPPURCHASEBACKEND_P_H
+#ifndef QMACINAPPPURCHASEBACKEND_P_H
+#define QMACINAPPPURCHASEBACKEND_P_H
//
// W A R N I N G
@@ -46,17 +46,19 @@
#include <QtCore/QHash>
+Q_FORWARD_DECLARE_OBJC_CLASS(QT_MANGLE_NAMESPACE(InAppPurchaseManager));
+
QT_BEGIN_NAMESPACE
-class QIosInAppPurchaseProduct;
-class QIosInAppPurchaseTransaction;
+class QMacInAppPurchaseProduct;
+class QMacInAppPurchaseTransaction;
-class QIosInAppPurchaseBackend : public QInAppPurchaseBackend
+class QMacInAppPurchaseBackend : public QInAppPurchaseBackend
{
Q_OBJECT
public:
- QIosInAppPurchaseBackend(QObject *parent = 0);
- ~QIosInAppPurchaseBackend();
+ QMacInAppPurchaseBackend(QObject *parent = 0);
+ ~QMacInAppPurchaseBackend();
void initialize();
bool isReady() const;
@@ -65,18 +67,18 @@ public:
void setPlatformProperty(const QString &propertyName, const QString &value);
//Called by InAppPurchaseManager
- Q_INVOKABLE void registerProduct(QIosInAppPurchaseProduct *product);
+ Q_INVOKABLE void registerProduct(QMacInAppPurchaseProduct *product);
Q_INVOKABLE void registerQueryFailure(const QString &productId);
- Q_INVOKABLE void registerTransaction(QIosInAppPurchaseTransaction *transaction);
+ Q_INVOKABLE void registerTransaction(QMacInAppPurchaseTransaction *transaction);
QInAppProduct::ProductType productTypeForProductId(const QString &productId);
- QIosInAppPurchaseProduct *registeredProductForProductId(const QString &productId);
+ QMacInAppPurchaseProduct *registeredProductForProductId(const QString &productId);
private:
- void *m_iapManager;
+ QT_MANGLE_NAMESPACE(InAppPurchaseManager) *m_iapManager;
QHash<QString, QInAppProduct::ProductType> m_productTypeForPendingId;
- QHash<QString, QIosInAppPurchaseProduct*> m_registeredProductForId;
+ QHash<QString, QMacInAppPurchaseProduct*> m_registeredProductForId;
};
-#endif // QIOSINAPPPURCHASEBACKEND_P_H
+#endif // QMACINAPPPURCHASEBACKEND_P_H
QT_END_NAMESPACE
diff --git a/src/purchasing/inapppurchase/ios/qiosinapppurchaseproduct.mm b/src/purchasing/inapppurchase/mac/qmacinapppurchaseproduct.mm
index 903e5f5..170305d 100644
--- a/src/purchasing/inapppurchase/ios/qiosinapppurchaseproduct.mm
+++ b/src/purchasing/inapppurchase/mac/qmacinapppurchaseproduct.mm
@@ -26,19 +26,19 @@
**
****************************************************************************/
-#include "qiosinapppurchaseproduct_p.h"
-#include "qiosinapppurchasebackend_p.h"
+#include "qmacinapppurchaseproduct_p.h"
+#include "qmacinapppurchasebackend_p.h"
#import <StoreKit/StoreKit.h>
//Use a Catagory to add a localizedPrice method to SKProduct
-@interface SKProduct (LocalizedPrice)
+@interface SKProduct (QT_MANGLE_NAMESPACE(LocalizedPrice))
@property (nonatomic, readonly) NSString *localizedPrice;
@end
-@implementation SKProduct (LocalizedPrice)
+@implementation SKProduct (QT_MANGLE_NAMESPACE(LocalizedPrice))
- (NSString *)localizedPrice
{
@@ -55,9 +55,9 @@
QT_BEGIN_NAMESPACE
-QIosInAppPurchaseProduct::QIosInAppPurchaseProduct(SKProduct *product,
+QMacInAppPurchaseProduct::QMacInAppPurchaseProduct(SKProduct *product,
ProductType productType,
- QIosInAppPurchaseBackend *backend)
+ QMacInAppPurchaseBackend *backend)
: QInAppProduct(QString::fromNSString([product localizedPrice]),
QString::fromNSString([product localizedTitle]),
QString::fromNSString([product localizedDescription]),
@@ -68,7 +68,7 @@ QIosInAppPurchaseProduct::QIosInAppPurchaseProduct(SKProduct *product,
{
}
-void QIosInAppPurchaseProduct::purchase()
+void QMacInAppPurchaseProduct::purchase()
{
SKPayment *payment = [SKPayment paymentWithProduct:m_nativeProduct];
[[SKPaymentQueue defaultQueue] addPayment:payment];
@@ -76,4 +76,4 @@ void QIosInAppPurchaseProduct::purchase()
QT_END_NAMESPACE
-#include "moc_qiosinapppurchaseproduct_p.cpp"
+#include "moc_qmacinapppurchaseproduct_p.cpp"
diff --git a/src/purchasing/inapppurchase/ios/qiosinapppurchaseproduct_p.h b/src/purchasing/inapppurchase/mac/qmacinapppurchaseproduct_p.h
index ff51f87..3d838f0 100644
--- a/src/purchasing/inapppurchase/ios/qiosinapppurchaseproduct_p.h
+++ b/src/purchasing/inapppurchase/mac/qmacinapppurchaseproduct_p.h
@@ -26,8 +26,8 @@
**
****************************************************************************/
-#ifndef QIOSINAPPPURCHASEPRODUCT_P_H
-#define QIOSINAPPPURCHASEPRODUCT_P_H
+#ifndef QMACINAPPPURCHASEPRODUCT_P_H
+#define QMACINAPPPURCHASEPRODUCT_P_H
//
// W A R N I N G
@@ -46,23 +46,23 @@
QT_BEGIN_NAMESPACE
-class QIosInAppPurchaseBackend;
+class QMacInAppPurchaseBackend;
-class QIosInAppPurchaseProduct : public QInAppProduct
+class QMacInAppPurchaseProduct : public QInAppProduct
{
Q_OBJECT
public:
- explicit QIosInAppPurchaseProduct(SKProduct *product,
+ explicit QMacInAppPurchaseProduct(SKProduct *product,
ProductType productType,
- QIosInAppPurchaseBackend *backend);
+ QMacInAppPurchaseBackend *backend = 0);
void purchase();
private:
SKProduct *m_nativeProduct;
};
-Q_DECLARE_METATYPE(QIosInAppPurchaseProduct*);
+Q_DECLARE_METATYPE(QMacInAppPurchaseProduct*)
QT_END_NAMESPACE
-#endif // QIOSINAPPPURCHASEPRODUCT_P_H
+#endif // QMACINAPPPURCHASEPRODUCT_P_H
diff --git a/src/purchasing/inapppurchase/ios/qiosinapppurchasetransaction.mm b/src/purchasing/inapppurchase/mac/qmacinapppurchasetransaction.mm
index fccb74c..04b7fee 100644
--- a/src/purchasing/inapppurchase/ios/qiosinapppurchasetransaction.mm
+++ b/src/purchasing/inapppurchase/mac/qmacinapppurchasetransaction.mm
@@ -26,17 +26,17 @@
**
****************************************************************************/
-#include "qiosinapppurchasetransaction_p.h"
-#include "qiosinapppurchasebackend_p.h"
+#include "qmacinapppurchasetransaction_p.h"
+#include "qmacinapppurchasebackend_p.h"
#import <StoreKit/StoreKit.h>
QT_BEGIN_NAMESPACE
-QIosInAppPurchaseTransaction::QIosInAppPurchaseTransaction(SKPaymentTransaction *transaction,
+QMacInAppPurchaseTransaction::QMacInAppPurchaseTransaction(SKPaymentTransaction *transaction,
const TransactionStatus status,
QInAppProduct *product,
- QIosInAppPurchaseBackend *backend)
+ QMacInAppPurchaseBackend *backend)
: QInAppTransaction(status, product, backend)
, m_nativeTransaction(transaction)
, m_failureReason(NoFailure)
@@ -57,9 +57,11 @@ QIosInAppPurchaseTransaction::QIosInAppPurchaseTransaction(SKPaymentTransaction
case SKErrorPaymentNotAllowed:
m_errorString = QStringLiteral("Payment Not Allowed");
break;
+#ifdef Q_OS_IOS
case SKErrorStoreProductNotAvailable:
m_errorString = QStringLiteral("Store Product Not Available");
break;
+#endif
case SKErrorUnknown:
default:
m_errorString = QStringLiteral("Unknown");
@@ -67,27 +69,27 @@ QIosInAppPurchaseTransaction::QIosInAppPurchaseTransaction(SKPaymentTransaction
}
}
-void QIosInAppPurchaseTransaction::finalize()
+void QMacInAppPurchaseTransaction::finalize()
{
[[SKPaymentQueue defaultQueue] finishTransaction:m_nativeTransaction];
}
-QString QIosInAppPurchaseTransaction::orderId() const
+QString QMacInAppPurchaseTransaction::orderId() const
{
return QString::fromNSString(m_nativeTransaction.transactionIdentifier);
}
-QInAppTransaction::FailureReason QIosInAppPurchaseTransaction::failureReason() const
+QInAppTransaction::FailureReason QMacInAppPurchaseTransaction::failureReason() const
{
return m_failureReason;
}
-QString QIosInAppPurchaseTransaction::errorString() const
+QString QMacInAppPurchaseTransaction::errorString() const
{
return m_errorString;
}
-QDateTime QIosInAppPurchaseTransaction::timestamp() const
+QDateTime QMacInAppPurchaseTransaction::timestamp() const
{
//Get time in seconds since 1970
double timeInterval = [[m_nativeTransaction transactionDate] timeIntervalSince1970];
@@ -96,4 +98,4 @@ QDateTime QIosInAppPurchaseTransaction::timestamp() const
QT_END_NAMESPACE
-#include "moc_qiosinapppurchasetransaction_p.cpp"
+#include "moc_qmacinapppurchasetransaction_p.cpp"
diff --git a/src/purchasing/inapppurchase/ios/qiosinapppurchasetransaction_p.h b/src/purchasing/inapppurchase/mac/qmacinapppurchasetransaction_p.h
index fe9d4df..6e905e9 100644
--- a/src/purchasing/inapppurchase/ios/qiosinapppurchasetransaction_p.h
+++ b/src/purchasing/inapppurchase/mac/qmacinapppurchasetransaction_p.h
@@ -26,8 +26,8 @@
**
****************************************************************************/
-#ifndef QIOSINAPPTRANSACTION_P_H
-#define QIOSINAPPTRANSACTION_P_H
+#ifndef QMACINAPPTRANSACTION_P_H
+#define QMACINAPPTRANSACTION_P_H
//
// W A R N I N G
@@ -47,16 +47,16 @@
QT_BEGIN_NAMESPACE
-class QIosInAppPurchaseBackend;
+class QMacInAppPurchaseBackend;
-class QIosInAppPurchaseTransaction : public QInAppTransaction
+class QMacInAppPurchaseTransaction : public QInAppTransaction
{
Q_OBJECT
public:
- QIosInAppPurchaseTransaction(SKPaymentTransaction *transaction,
+ QMacInAppPurchaseTransaction(SKPaymentTransaction *transaction,
const TransactionStatus status,
QInAppProduct *product,
- QIosInAppPurchaseBackend *backend);
+ QMacInAppPurchaseBackend *backend = 0);
void finalize();
QString orderId() const;
@@ -70,8 +70,8 @@ private:
FailureReason m_failureReason;
};
-Q_DECLARE_METATYPE(QIosInAppPurchaseTransaction*);
+Q_DECLARE_METATYPE(QMacInAppPurchaseTransaction*)
QT_END_NAMESPACE
-#endif // QIOSINAPPTRANSACTION_P_H
+#endif // QMACINAPPTRANSACTION_P_H
diff --git a/src/purchasing/inapppurchase/qinapppurchasebackendfactory.cpp b/src/purchasing/inapppurchase/qinapppurchasebackendfactory.cpp
index be2ad60..757b78a 100644
--- a/src/purchasing/inapppurchase/qinapppurchasebackendfactory.cpp
+++ b/src/purchasing/inapppurchase/qinapppurchasebackendfactory.cpp
@@ -30,8 +30,8 @@
#if defined(Q_OS_ANDROID)
# include "qandroidinapppurchasebackend_p.h"
-#elif defined(Q_OS_IOS)
-# include "qiosinapppurchasebackend_p.h"
+#elif defined(Q_OS_MAC)
+# include "qmacinapppurchasebackend_p.h"
#else
# include "qinapppurchasebackend_p.h"
#endif
@@ -42,8 +42,8 @@ QInAppPurchaseBackend *QInAppPurchaseBackendFactory::create()
{
#if defined(Q_OS_ANDROID)
return new QAndroidInAppPurchaseBackend;
-#elif defined (Q_OS_IOS)
- return new QIosInAppPurchaseBackend;
+#elif defined (Q_OS_MAC)
+ return new QMacInAppPurchaseBackend;
#else
return new QInAppPurchaseBackend;
#endif
diff --git a/src/purchasing/inapppurchase/qinappstore.cpp b/src/purchasing/inapppurchase/qinappstore.cpp
index 3ee797e..36ae021 100644
--- a/src/purchasing/inapppurchase/qinappstore.cpp
+++ b/src/purchasing/inapppurchase/qinappstore.cpp
@@ -136,7 +136,7 @@ QT_BEGIN_NAMESPACE
\note This depends on support for this functionality in the remote store. If
the remote store does not save the purchase state of unlockable products for
you, the call will yield no transactionReady() signals, as if no products have
- been purchased. Both the Android and iOS backends support restoring unlockable
+ been purchased. Both the Android and OS X / iOS backends support restoring unlockable
products.
*/
diff --git a/tests/auto/purchasing/qinappstore/tst_qinappstore.cpp b/tests/auto/purchasing/qinappstore/tst_qinappstore.cpp
index e0398ad..d2efd0d 100644
--- a/tests/auto/purchasing/qinappstore/tst_qinappstore.cpp
+++ b/tests/auto/purchasing/qinappstore/tst_qinappstore.cpp
@@ -73,7 +73,7 @@ void tst_QInAppStore::registerUnknownProduct()
store.registerProduct(QInAppProduct::Consumable, QStringLiteral("unknownConsumable"));
store.registerProduct(QInAppProduct::Unlockable, QStringLiteral("unknownUnlockable"));
-#if !defined(Q_OS_IOS) && !defined(Q_OS_ANDROID)
+#if !defined(Q_OS_MAC) && !defined(Q_OS_ANDROID)
QEXPECT_FAIL("", "Qt Purchasing not implemented on this platform.", Abort);
#endif