From 940b67221b4a30bd50f87b2601c3a8faecbb1a22 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 21 Apr 2015 14:56:11 +0200 Subject: [PATCH] First attempt to reach xmlrpc server --- res/raw/linphonerc_factory | 5 ++- .../purchase/InAppPurchaseActivity.java | 7 +++- .../purchase/InAppPurchaseHelper.java | 41 ++++++++++++++++--- 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/res/raw/linphonerc_factory b/res/raw/linphonerc_factory index 0b0a6c92c..3a1c800cb 100644 --- a/res/raw/linphonerc_factory +++ b/res/raw/linphonerc_factory @@ -30,4 +30,7 @@ dtmf_player_amp=0.1 [misc] max_calls=10 log_collection_upload_server_url=https://www.linphone.org:444/lft.php -user_certificates_path=/data/data/org.linphone/files \ No newline at end of file +user_certificates_path=/data/data/org.linphone/files + +[in-app-purchase] +server_url=https://www.linphone.org/wizard2.php \ No newline at end of file diff --git a/src/org/linphone/purchase/InAppPurchaseActivity.java b/src/org/linphone/purchase/InAppPurchaseActivity.java index 78292e2e2..28c323711 100644 --- a/src/org/linphone/purchase/InAppPurchaseActivity.java +++ b/src/org/linphone/purchase/InAppPurchaseActivity.java @@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. import java.util.ArrayList; import org.linphone.R; +import org.linphone.mediastream.Log; import android.app.Activity; import android.content.Intent; @@ -31,6 +32,7 @@ import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toast; /** * @author Sylvain Berfini @@ -58,6 +60,7 @@ public class InAppPurchaseActivity extends Activity implements InAppPurchaseList @Override public void onServiceAvailableForQueries() { inAppPurchaseHelper.getAvailableItemsForPurchaseAsync(); + inAppPurchaseHelper.getPurchasedItemsAsync(); } @Override @@ -76,7 +79,9 @@ public class InAppPurchaseActivity extends Activity implements InAppPurchaseList @Override public void onPurchasedItemsQueryFinished(ArrayList items) { - + for (Purchasable item : items) { + Log.d("[In-app] Item " + item.getTitle() + " is already bought"); + } } @Override diff --git a/src/org/linphone/purchase/InAppPurchaseHelper.java b/src/org/linphone/purchase/InAppPurchaseHelper.java index 52b9d1663..289a6977d 100644 --- a/src/org/linphone/purchase/InAppPurchaseHelper.java +++ b/src/org/linphone/purchase/InAppPurchaseHelper.java @@ -51,7 +51,7 @@ import de.timroes.axmlrpc.XMLRPCServerException; */ public class InAppPurchaseHelper { public static final int API_VERSION = 3; - public static final String TEST_ITEM = "android.test.purchased"; + public static final String TEST_ITEM = "test_account_subscription"; public static final int ACTIVITY_RESULT_CODE_PURCHASE_ITEM = 11089; public static final String SKU_DETAILS_ITEM_LIST = "ITEM_ID_LIST"; @@ -65,6 +65,15 @@ public class InAppPurchaseHelper { public static final String ITEM_TYPE_SUBS = "subs"; public static final int RESPONSE_RESULT_OK = 0; + public static final int RESULT_USER_CANCELED = 1; + public static final int RESULT_SERVICE_UNAVAILABLE = 2; + public static final int RESULT_BILLING_UNAVAILABLE = 3; + public static final int RESULT_ITEM_UNAVAILABLE = 4; + public static final int RESULT_DEVELOPER_ERROR = 5; + public static final int RESULT_ERROR = 6; + public static final int RESULT_ITEM_ALREADY_OWNED = 7; + public static final int RESULT_ITEM_NOT_OWNED = 8; + public static final String RESPONSE_CODE = "RESPONSE_CODE"; public static final String RESPONSE_BUY_INTENT = "BUY_INTENT"; public static final String RESPONSE_INAPP_PURCHASE_DATA = "INAPP_PURCHASE_DATA"; @@ -88,6 +97,28 @@ public class InAppPurchaseHelper { private ServiceConnection mServiceConn; private Handler mHandler = new Handler(); + private String responseCodeToErrorMessage(int responseCode) { + switch (responseCode) { + case RESULT_USER_CANCELED: + return "BILLING_RESPONSE_RESULT_USER_CANCELED"; + case RESULT_SERVICE_UNAVAILABLE: + return "BILLING_RESPONSE_RESULT_SERVICE_UNAVAILABLE"; + case RESULT_BILLING_UNAVAILABLE: + return "BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE"; + case RESULT_ITEM_UNAVAILABLE: + return "BILLING_RESPONSE_RESULT_ITEM_UNAVAILABLE"; + case RESULT_DEVELOPER_ERROR: + return "BILLING_RESPONSE_RESULT_DEVELOPER_ERROR"; + case RESULT_ERROR: + return "BILLING_RESPONSE_RESULT_ERROR"; + case RESULT_ITEM_ALREADY_OWNED: + return "BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED"; + case RESULT_ITEM_NOT_OWNED: + return "BILLING_RESPONSE_RESULT_ITEM_NOT_OWNED"; + } + return "UNKNOWN_RESPONSE_CODE"; + } + public InAppPurchaseHelper(Activity context, InAppPurchaseListener listener) { mContext = context; mListener = listener; @@ -165,7 +196,7 @@ public class InAppPurchaseHelper { } } } else { - Log.e("[In-app purchase] Error: responde code is not ok: " + response); + Log.e("[In-app purchase] Error: responde code is not ok: " + responseCodeToErrorMessage(response)); } } @@ -222,7 +253,7 @@ public class InAppPurchaseHelper { }, purchaseData, signature); } } else { - Log.e("[In-app purchase] Error: responde code is not ok: " + response); + Log.e("[In-app purchase] Error: responde code is not ok: " + responseCodeToErrorMessage(response)); } } } while (continuationToken != null); @@ -279,7 +310,7 @@ public class InAppPurchaseHelper { } }, purchaseData, signature); } else { - Log.e("[In-app purchase] Error: resultCode is " + resultCode + " and responseCode is " + responseCode); + Log.e("[In-app purchase] Error: resultCode is " + resultCode + " and responseCode is " + responseCodeToErrorMessage(responseCode)); } } } @@ -321,7 +352,7 @@ public class InAppPurchaseHelper { public void onError(long id, XMLRPCException error) { Log.e(error); } - }, "create_account_from_in_app_purchase", "android", purchasedData, signature); + }, "create_account_from_in_app_purchase", "sylvain@sip.linphone.org", "toto", purchasedData, signature, "google"); } }