// code which call product list
private static boolean getOviProducts () throws Exception
{
int size = InputGameMessage.readInt ();
OviPayment.setItemsSize (size);
synchronized (OviPayment.getInstance ())
{
try
{
// set IAPClientPaymentListener
IAPClientPaymentManager manager = IAPClientPaymentManager.getIAPClientPaymentManager ();
IAPClientPaymentManager.setIAPClientPaymentListener (OviPayment.getInstance ());
OviPayment.getInstance ().clearItems ();
for (int i = 0; i < size; i++)
{
String productID = InputGameMessage.readString ();
System.out.println ("MessageProcessor productID="+productID);
int status = manager.getProductData (productID);
if (status != IAPClientPaymentManager.SUCCESS)
{
// do not expect a productDataReceived() callback, handle the failed call
}
}
}
catch (IAPClientPaymentException e)
{
// handle IAPClientPaymentException from getIAPClientPaymentManager()
}
// finally
// {
// OviPayment.getInstance ().notify ();
// }
}
return true;
}
// ===========================================
// and my code in class OviPayment
public void productDataReceived (int status, IAPClientProductData pd)
{
System.out.println ("productDataReceived() with status "+status);
if (status == IAPClientPaymentListener.OK) {
Item item = new Item ();
item.title = pd.getTitle();
item.price = pd.getPrice();
item.descr = pd.getShortDescription();
item.productID = pd.getProductId ();
items.addElement (item);
}
//
String [] sItems = new String [items.size ()];
for (int i = 0; i < items.size (); i++)
{
String s = ((Item) items.elementAt (i)).descr + " : " + ((Item) items.elementAt (i)).price;
System.out.println ("s=" + s);
sItems [i] = s;
}
if (getItemsSize () == 0 || items.size () == getItemsSize ())
ScreenDrawer.instance.getCurrentScreen ().showOviPaymentForm (sItems);
}