feat: add test purchase android

This commit is contained in:
NickVs2015
2026-02-20 13:24:37 +03:00
parent fe99cdeb85
commit 0d7f9381c1
4 changed files with 15 additions and 3 deletions

View File

@@ -1109,6 +1109,13 @@ class AmneziaActivity : QtActivity() {
@Suppress("unused")
fun isPlay(): Boolean = BuildConfig.FLAVOR == "play"
@Suppress("unused")
fun isTestPurchaseEnvironment(): Boolean {
if (BuildConfig.DEBUG) return true
val appInfo = packageManager.getApplicationInfo(packageName, 0)
return (appInfo.flags and android.content.pm.ApplicationInfo.FLAG_DEBUGGABLE) != 0
}
@Suppress("unused")
fun getCountryCode(): String {
Log.v(TAG, "Get country code")

View File

@@ -330,7 +330,11 @@ void AndroidController::sendTouch(float x, float y)
bool AndroidController::isPlay()
{
return callActivityMethod<jboolean>("isPlay", "()Z");
}
bool AndroidController::isTestPurchaseEnvironment()
{
return callActivityMethod<jboolean>("isTestPurchaseEnvironment", "()Z");
}
QJsonObject AndroidController::getSubscriptionPlans()

View File

@@ -56,6 +56,7 @@ public:
bool requestAuthentication();
void sendTouch(float x, float y);
bool isPlay();
bool isTestPurchaseEnvironment();
QJsonObject getSubscriptionPlans();
QJsonObject purchaseSubscription(const QString &offerToken);
QJsonObject upgradeSubscription(const QString &offerToken, const QString &oldPurchaseToken);

View File

@@ -674,7 +674,7 @@ bool ApiConfigsController::importSerivceFromPaymentMarket()
QJsonObject apiPayload = gatewayRequestData.toJsonObject();
apiPayload[apiDefs::key::transactionId] = purchaseToken;
bool isTestPurchase = false; // TODO: detect if this is a test purchase
bool isTestPurchase = m_settings->isDevGatewayEnv(false) || androidController->isTestPurchaseEnvironment();
ErrorCode errorCode;
QByteArray responseBody;
@@ -914,8 +914,8 @@ bool ApiConfigsController::restoreSerivceFromPaymentMarket()
QJsonObject apiPayload = gatewayRequestData.toJsonObject();
apiPayload[apiDefs::key::transactionId] = purchaseToken;
bool isTestPurchase = false; // TODO: detect if this is a test purchase
bool isTestPurchase = m_settings->isDevGatewayEnv(false) || androidController->isTestPurchaseEnvironment();
QByteArray responseBody;
ErrorCode errorCode = executeRequest(QString("%1v1/subscriptions"), apiPayload, responseBody, isTestPurchase);
if (errorCode != ErrorCode::NoError) {