From c73ebbb0c85e37315e62b4f4320bb35eaabac887 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 11 Jun 2015 10:39:23 +0200 Subject: [PATCH] Added methods & class to help with in app purchase --- src/org/linphone/LinphonePreferences.java | 21 +++++++++ .../purchase/InAppPurchaseListenerBase.java | 47 +++++++++++++++++++ src/org/linphone/purchase/Purchasable.java | 13 ++++- .../linphone/xmlrpc/XmlRpcListenerBase.java | 1 - 4 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 src/org/linphone/purchase/InAppPurchaseListenerBase.java diff --git a/src/org/linphone/LinphonePreferences.java b/src/org/linphone/LinphonePreferences.java index cb5d4d29d..8677bf181 100644 --- a/src/org/linphone/LinphonePreferences.java +++ b/src/org/linphone/LinphonePreferences.java @@ -35,6 +35,7 @@ import org.linphone.core.LinphoneProxyConfig; import org.linphone.core.LpConfig; import org.linphone.core.TunnelConfig; import org.linphone.mediastream.Log; +import org.linphone.purchase.Purchasable; import android.content.Context; @@ -1158,6 +1159,26 @@ public class LinphonePreferences { return getConfig().getString("in-app-purchase", "server_url", null); } + public Purchasable getInAppPurchasedItem() { + String id = getConfig().getString("in-app-purchase", "purchase_item_id", null); + String payload = getConfig().getString("in-app-purchase", "purchase_item_payload", null); + String signature = getConfig().getString("in-app-purchase", "purchase_item_signature", null); + String username = getConfig().getString("in-app-purchase", "purchase_item_username", null); + + Purchasable item = new Purchasable(id).setPayloadAndSignature(payload, signature).setUserData(username); + return item; + } + + public void setInAppPurchasedItem(Purchasable item) { + if (item == null) + return; + + getConfig().setString("in-app-purchase", "purchase_item_id", item.getId()); + getConfig().setString("in-app-purchase", "purchase_item_payload", item.getPayload()); + getConfig().setString("in-app-purchase", "purchase_item_signature", item.getPayloadSignature()); + getConfig().setString("in-app-purchase", "purchase_item_username", item.getUserData()); + } + public ArrayList getInAppPurchasables() { ArrayList purchasables = new ArrayList(); String list = getConfig().getString("in-app-purchase", "purchasable_items_ids", null); diff --git a/src/org/linphone/purchase/InAppPurchaseListenerBase.java b/src/org/linphone/purchase/InAppPurchaseListenerBase.java new file mode 100644 index 000000000..06b054f13 --- /dev/null +++ b/src/org/linphone/purchase/InAppPurchaseListenerBase.java @@ -0,0 +1,47 @@ +package org.linphone.purchase; + +import java.util.ArrayList; + +public class InAppPurchaseListenerBase implements InAppPurchaseListener { + @Override + public void onServiceAvailableForQueries() { + // TODO Auto-generated method stub + + } + + @Override + public void onAvailableItemsForPurchaseQueryFinished(ArrayList items) { + // TODO Auto-generated method stub + + } + + @Override + public void onPurchasedItemsQueryFinished(ArrayList items) { + // TODO Auto-generated method stub + + } + + @Override + public void onPurchasedItemConfirmationQueryFinished(Purchasable item) { + // TODO Auto-generated method stub + + } + + @Override + public void onRecoverAccountSuccessful(boolean success) { + // TODO Auto-generated method stub + + } + + @Override + public void onActivateAccountSuccessful(boolean success) { + // TODO Auto-generated method stub + + } + + @Override + public void onError(String error) { + // TODO Auto-generated method stub + + } +} diff --git a/src/org/linphone/purchase/Purchasable.java b/src/org/linphone/purchase/Purchasable.java index 30db76dae..22b8a84a8 100644 --- a/src/org/linphone/purchase/Purchasable.java +++ b/src/org/linphone/purchase/Purchasable.java @@ -4,6 +4,7 @@ import java.sql.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Locale; + /* Purchasable.java Copyright (C) 2015 Belledonne Communications, Grenoble, France @@ -30,7 +31,8 @@ public class Purchasable { private String id, title, description, price; private long expire; private String purchasePayload, purchasePayloadSignature; - + private String userData; + public Purchasable(String id) { this.id = id; } @@ -94,4 +96,13 @@ public class Purchasable { public String getPayloadSignature() { return this.purchasePayloadSignature; } + + public Purchasable setUserData(String data) { + this.userData = data; + return this; + } + + public String getUserData() { + return this.userData; + } } diff --git a/src/org/linphone/xmlrpc/XmlRpcListenerBase.java b/src/org/linphone/xmlrpc/XmlRpcListenerBase.java index a824c61ce..e1752d082 100644 --- a/src/org/linphone/xmlrpc/XmlRpcListenerBase.java +++ b/src/org/linphone/xmlrpc/XmlRpcListenerBase.java @@ -66,5 +66,4 @@ public class XmlRpcListenerBase implements XmlRpcListener { // TODO Auto-generated method stub } - }