mirror of
https://github.com/M66B/FairEmail.git
synced 2025-01-01 12:44:42 +00:00
Prevent crash
This commit is contained in:
parent
e24ce5ead6
commit
1e3e37d3ce
2 changed files with 28 additions and 10 deletions
|
@ -29,6 +29,7 @@ import android.net.Uri;
|
|||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Base64;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
@ -77,6 +78,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
|
|||
|
||||
static final String ACTION_PURCHASE = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE";
|
||||
static final String ACTION_PURCHASE_CHECK = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE_CHECK";
|
||||
static final String ACTION_PURCHASE_ERROR = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE_ERROR";
|
||||
|
||||
private final static long MAX_SKU_CACHE_DURATION = 24 * 3600 * 1000L; // milliseconds
|
||||
private final static long MAX_SKU_NOACK_DURATION = 24 * 3600 * 1000L; // milliseconds
|
||||
|
@ -126,6 +128,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
|
|||
IntentFilter iff = new IntentFilter();
|
||||
iff.addAction(ACTION_PURCHASE);
|
||||
iff.addAction(ACTION_PURCHASE_CHECK);
|
||||
iff.addAction(ACTION_PURCHASE_ERROR);
|
||||
lbm.registerReceiver(receiver, iff);
|
||||
|
||||
if (billingClient != null && billingClient.isReady())
|
||||
|
@ -202,6 +205,8 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
|
|||
onPurchase(intent);
|
||||
else if (ACTION_PURCHASE_CHECK.equals(intent.getAction()))
|
||||
onPurchaseCheck(intent);
|
||||
else if (ACTION_PURCHASE_ERROR.equals(intent.getAction()))
|
||||
onPurchaseError(intent);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -243,6 +248,14 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
|
|||
});
|
||||
}
|
||||
|
||||
private void onPurchaseError(Intent intent) {
|
||||
String message = intent.getStringExtra("message");
|
||||
Uri uri = Uri.parse(Helper.SUPPORT_URI);
|
||||
if (!TextUtils.isEmpty(message))
|
||||
uri = uri.buildUpon().appendQueryParameter("message", "IAB: " + message).build();
|
||||
Helper.view(this, uri, true);
|
||||
}
|
||||
|
||||
private BillingClientStateListener billingClientStateListener = new BillingClientStateListener() {
|
||||
private int backoff = 4; // seconds
|
||||
|
||||
|
|
|
@ -167,16 +167,21 @@ public class FragmentPro extends FragmentBase implements SharedPreferences.OnSha
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onError(String message) {
|
||||
final Intent support = new Intent(Intent.ACTION_VIEW, Uri.parse(Helper.SUPPORT_URI));
|
||||
Snackbar snackbar = Snackbar.make(getView(), message, Snackbar.LENGTH_INDEFINITE);
|
||||
if (support.resolveActivity(getContext().getPackageManager()) != null)
|
||||
snackbar.setAction(R.string.title_setup_help, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
startActivity(support);
|
||||
}
|
||||
});
|
||||
public void onError(final String message) {
|
||||
final View view = getView();
|
||||
if (view == null)
|
||||
return;
|
||||
|
||||
Snackbar snackbar = Snackbar.make(view, message, Snackbar.LENGTH_INDEFINITE);
|
||||
snackbar.setAction(R.string.title_setup_help, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(view.getContext());
|
||||
lbm.sendBroadcast(
|
||||
new Intent(ActivityBilling.ACTION_PURCHASE_ERROR)
|
||||
.putExtra("message", message));
|
||||
}
|
||||
});
|
||||
snackbar.show();
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue