diff --git a/app/src/extra/java/org/wikipedia/donate/GooglePayComponent.kt b/app/src/extra/java/org/wikipedia/donate/GooglePayComponent.kt index 5ce54e68809..afdf48cd179 100644 --- a/app/src/extra/java/org/wikipedia/donate/GooglePayComponent.kt +++ b/app/src/extra/java/org/wikipedia/donate/GooglePayComponent.kt @@ -6,10 +6,14 @@ import com.google.android.gms.wallet.IsReadyToPayRequest import com.google.android.gms.wallet.PaymentsClient import com.google.android.gms.wallet.Wallet import com.google.android.gms.wallet.WalletConstants +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.tasks.await +import kotlinx.coroutines.withContext import org.json.JSONArray import org.json.JSONObject +import org.wikipedia.dataclient.donate.DonationConfigHelper import org.wikipedia.settings.Prefs +import org.wikipedia.util.GeoUtil import java.text.DecimalFormat import java.text.DecimalFormatSymbols import java.util.Locale @@ -59,11 +63,19 @@ internal object GooglePayComponent { } suspend fun isGooglePayAvailable(activity: Activity): Boolean { - val readyToPayRequest = IsReadyToPayRequest.fromJson(googlePayBaseConfiguration.toString()) - val paymentsClient = createPaymentsClient(activity) - val readyToPayTask = paymentsClient.isReadyToPay(readyToPayRequest) - readyToPayTask.await() - return readyToPayTask.result + var available: Boolean + withContext(Dispatchers.IO) { + val readyToPayRequest = IsReadyToPayRequest.fromJson(googlePayBaseConfiguration.toString()) + val paymentsClient = createPaymentsClient(activity) + val readyToPayTask = paymentsClient.isReadyToPay(readyToPayRequest) + available = readyToPayTask.await() + if (available) { + DonationConfigHelper.getConfig()?.let { config -> + available = config.countryCodeGooglePayEnabled.contains(GeoUtil.geoIPCountry.orEmpty()) + } + } + } + return available } fun getDonateActivityIntent(activity: Activity, campaignId: String? = null, donateUrl: String? = null): Intent { diff --git a/app/src/main/res/layout/dialog_donate.xml b/app/src/main/res/layout/dialog_donate.xml index b186dd583b8..401a5acfb6f 100644 --- a/app/src/main/res/layout/dialog_donate.xml +++ b/app/src/main/res/layout/dialog_donate.xml @@ -84,7 +84,8 @@ android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center" /> + android:layout_gravity="center" + android:layout_marginVertical="12dp"/>