/** * Called when guide is purchased. Adds the new guide to the guide list and saves it to RMS. * * @param purchaseTicket */ public void guidePurchased(String purchaseTicket) { if (newGuide == null) { return; } newGuide.setPurchaseTicket(purchaseTicket); newGuideList.getListModel().removeItem(newGuide); midlet.getGuideView().getGuideList().getListModel().addItem(newGuide); midlet.showAttractionView(newGuide); midlet.saveNewGuides(); newGuide = null; midlet.getAttractionView().showLoading(true); }
/** Shows this view and loads IAP account and guides. */ public void show() { super.show(); if (newGuideList.getListModel().getSize() == 0) { loadGuides(); } if (account == null && !this.contains(loginButton)) { addComponent(BorderLayout.NORTH, loginButton); } else if (account != null && this.contains(loginButton)) { removeComponent(loginButton); } }
private void loadGuides() { if (loadingGuides) { return; } loadingGuides = true; showLoading(true); newGuideList.getListModel().removeAll(); new NewGuidesOperation( new NewGuidesOperation.Listener() { public void guidesReceived(Vector newGuides) { if (newGuides == null) { Util.showAlert("Network failure", "Connecting network failed."); midlet.showGuideView(); loadingGuides = false; } else { // Populate guide list boolean emptyList = true; waitingProductData = new Hashtable(); for (int i = 0, length = newGuides.size(); i < length; i++) { Guide guide = (Guide) newGuides.elementAt(i); Vector ownedGuides = getOwnedGuides(); if (!ownedGuides.contains(guide)) { emptyList = false; waitingProductData.put(guide.getId(), guide); guide.setUrl(GUIDE_URL_PREFIX + guide.getId()); guide.setAccount(account); } } if (emptyList) { Util.showAlert("No products", "There are no more products available."); loadingGuides = false; midlet.showGuideView(); } else { loadProductData(); } } } }, NEW_GUIDES_URL, account) .start(); }