tt-rss-android/src/org/fox/ttrss/billing/BillingReceiver.java

57 lines
2.6 KiB
Java
Raw Normal View History

2012-06-19 10:18:00 +00:00
package org.fox.ttrss.billing;
2012-02-29 15:30:52 +00:00
2012-06-19 10:18:00 +00:00
import static org.fox.ttrss.billing.BillingConstants.ACTION_NOTIFY;
import static org.fox.ttrss.billing.BillingConstants.ACTION_PURCHASE_STATE_CHANGED;
import static org.fox.ttrss.billing.BillingConstants.ACTION_RESPONSE_CODE;
import static org.fox.ttrss.billing.BillingConstants.INAPP_REQUEST_ID;
import static org.fox.ttrss.billing.BillingConstants.INAPP_RESPONSE_CODE;
import static org.fox.ttrss.billing.BillingConstants.INAPP_SIGNATURE;
import static org.fox.ttrss.billing.BillingConstants.INAPP_SIGNED_DATA;
import static org.fox.ttrss.billing.BillingConstants.NOTIFICATION_ID;
2012-02-29 15:30:52 +00:00
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class BillingReceiver extends BroadcastReceiver {
private static final String TAG = "BillingService";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.i(TAG, "Received action: " + action);
if (ACTION_PURCHASE_STATE_CHANGED.equals(action)) {
String signedData = intent.getStringExtra(INAPP_SIGNED_DATA);
String signature = intent.getStringExtra(INAPP_SIGNATURE);
purchaseStateChanged(context, signedData, signature);
} else if (ACTION_NOTIFY.equals(action)) {
String notifyId = intent.getStringExtra(NOTIFICATION_ID);
notify(context, notifyId);
} else if (ACTION_RESPONSE_CODE.equals(action)) {
long requestId = intent.getLongExtra(INAPP_REQUEST_ID, -1);
int responseCodeIndex = intent.getIntExtra(INAPP_RESPONSE_CODE, BillingConstants.ResponseCode.RESULT_ERROR.ordinal());
checkResponseCode(context, requestId, responseCodeIndex);
} else {
Log.e(TAG, "unexpected action: " + action);
}
}
private void purchaseStateChanged(Context context, String signedData, String signature) {
Log.i(TAG, "purchaseStateChanged got signedData: " + signedData);
Log.i(TAG, "purchaseStateChanged got signature: " + signature);
BillingHelper.verifyPurchase(signedData, signature);
}
private void notify(Context context, String notifyId) {
Log.i(TAG, "notify got id: " + notifyId);
String[] notifyIds = {notifyId};
BillingHelper.getPurchaseInformation(notifyIds);
}
private void checkResponseCode(Context context, long requestId, int responseCodeIndex) {
Log.i(TAG, "checkResponseCode got requestId: " + requestId);
Log.i(TAG, "checkResponseCode got responseCode: " + BillingConstants.ResponseCode.valueOf(responseCodeIndex));
}
}