Detect storage space issues during restore.

This commit is contained in:
Alex Hart
2024-11-14 13:26:30 -04:00
committed by Greyson Parrelli
parent b4472833b8
commit 7f1a866e79
14 changed files with 163 additions and 35 deletions
@@ -16,6 +16,7 @@ import com.android.billingclient.api.BillingResult
import com.android.billingclient.api.PendingPurchasesParams
import com.android.billingclient.api.ProductDetails
import com.android.billingclient.api.ProductDetailsResult
import com.android.billingclient.api.Purchase
import com.android.billingclient.api.PurchasesUpdatedListener
import com.android.billingclient.api.QueryProductDetailsParams
import com.android.billingclient.api.QueryPurchasesParams
@@ -41,6 +42,7 @@ import org.signal.core.util.billing.BillingDependencies
import org.signal.core.util.billing.BillingError
import org.signal.core.util.billing.BillingProduct
import org.signal.core.util.billing.BillingPurchaseResult
import org.signal.core.util.billing.BillingPurchaseState
import org.signal.core.util.logging.Log
import org.signal.core.util.money.FiatMoney
import java.math.BigDecimal
@@ -80,6 +82,7 @@ internal class BillingApiImpl(
} else {
Log.d(TAG, "purchasesUpdatedListener: successful purchase at ${newestPurchase.purchaseTime}")
BillingPurchaseResult.Success(
purchaseState = newestPurchase.purchaseState.toBillingPurchaseState(),
purchaseToken = newestPurchase.purchaseToken,
isAcknowledged = newestPurchase.isAcknowledged,
purchaseTime = newestPurchase.purchaseTime,
@@ -202,6 +205,7 @@ internal class BillingApiImpl(
val purchase = result.purchasesList.maxByOrNull { it.purchaseTime } ?: return BillingPurchaseResult.None
return BillingPurchaseResult.Success(
purchaseState = purchase.purchaseState.toBillingPurchaseState(),
purchaseTime = purchase.purchaseTime,
purchaseToken = purchase.purchaseToken,
isAcknowledged = purchase.isAcknowledged,
@@ -256,6 +260,14 @@ internal class BillingApiImpl(
}
}
private fun Int.toBillingPurchaseState(): BillingPurchaseState {
return when (this) {
Purchase.PurchaseState.PURCHASED -> BillingPurchaseState.PURCHASED
Purchase.PurchaseState.PENDING -> BillingPurchaseState.PENDING
else -> BillingPurchaseState.UNSPECIFIED
}
}
private suspend fun queryProductsInternal(): ProductDetailsResult {
val productList = listOf(
QueryProductDetailsParams.Product.newBuilder()