Back to project page android-store.
The source code is released under:
Copyright (c) 2012 SOOMLA http://project.soom.la/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to...
If you think the Android project android-store listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2012-2014 Soomla Inc./*from ww w .j a v a2s.c o m*/ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.soomla.store.domain; import com.soomla.SoomlaUtils; import com.soomla.data.JSONConsts; import com.soomla.store.data.StoreJSONConsts; import org.json.JSONException; import org.json.JSONObject; /** * A representation of an item in the market. * <code>MarketItem</code> is only used for <code>PurchaseWithMarket</code> purchase type. */ public class MarketItem { /** * Constructor. * * @param mProductId the id of the current item in the market * @param mManaged the Managed type of the current item in the market * @param mPrice the actual $$ cost of the current item in the market */ public MarketItem(String mProductId, Managed mManaged, double mPrice) { this.mProductId = mProductId; this.mManaged = mManaged; this.mPrice = mPrice; } /** * Constructor. * Generates an instance of <code>MarketItem</code> from a <code>JSONObject</code>. * * @param jsonObject a <code>JSONObject</code> representation of the wanted * <code>MarketItem</code>. * @throws JSONException */ public MarketItem(JSONObject jsonObject) throws JSONException { if (jsonObject.has(StoreJSONConsts.MARKETITEM_MANAGED)) { this.mManaged = Managed.values()[jsonObject.getInt(StoreJSONConsts.MARKETITEM_MANAGED)]; } else { this.mManaged = Managed.UNMANAGED; } if (jsonObject.has(StoreJSONConsts.MARKETITEM_ANDROID_ID)) { this.mProductId = jsonObject.getString(StoreJSONConsts.MARKETITEM_ANDROID_ID); } else { this.mProductId = jsonObject.getString(StoreJSONConsts.MARKETITEM_PRODUCT_ID); } this.mPrice = jsonObject.getDouble(StoreJSONConsts.MARKETITEM_PRICE); this.mMarketPriceAndCurrency = jsonObject.optString(StoreJSONConsts.MARKETITEM_MARKETPRICE); this.mMarketTitle = jsonObject.optString(StoreJSONConsts.MARKETITEM_MARKETTITLE); this.mMarketDescription = jsonObject.optString(StoreJSONConsts.MARKETITEM_MARKETDESC); this.mMarketCurrencyCode = jsonObject.optString(StoreJSONConsts.MARKETITEM_MARKETCURRENCYCODE); this.mMarketPriceMicros = jsonObject.optLong(StoreJSONConsts.MARKETITEM_MARKETPRICEMICROS); } /** * Converts the current <code>MarketItem</code> to a <code>JSONObject</code>. * * @return A <code>JSONObject</code> representation of the current <code>MarketItem</code>. */ public JSONObject toJSONObject(){ JSONObject jsonObject = new JSONObject(); try { jsonObject.put(JSONConsts.SOOM_CLASSNAME, SoomlaUtils.getClassName(this)); jsonObject.put(StoreJSONConsts.MARKETITEM_MANAGED, mManaged.ordinal()); jsonObject.put(StoreJSONConsts.MARKETITEM_ANDROID_ID, mProductId); jsonObject.put(StoreJSONConsts.MARKETITEM_PRICE, Double.valueOf(mPrice)); jsonObject.put(StoreJSONConsts.MARKETITEM_MARKETPRICE, mMarketPriceAndCurrency); jsonObject.put(StoreJSONConsts.MARKETITEM_MARKETTITLE, mMarketTitle); jsonObject.put(StoreJSONConsts.MARKETITEM_MARKETDESC, mMarketDescription); jsonObject.put(StoreJSONConsts.MARKETITEM_MARKETCURRENCYCODE, mMarketCurrencyCode); jsonObject.put(StoreJSONConsts.MARKETITEM_MARKETPRICEMICROS, Long.valueOf(mMarketPriceMicros)); } catch (JSONException e) { SoomlaUtils.LogError(TAG, "An error occurred while generating JSON object."); } return jsonObject; } /** * Each product in the catalog can be MANAGED, UNMANAGED, or SUBSCRIPTION. * MANAGED means that the product can be purchased only once per user (such as a new level in * a game). This purchase is remembered by the Market and can be restored if this * application is uninstalled and then re-installed. * UNMANAGED is used for products that can be used up and purchased multiple times (such as * "gold coins"). It is up to the application to keep track of UNMANAGED products for the user. * SUBSCRIPTION is just like MANAGED except that the user gets charged periodically (monthly * or yearly). */ public static enum Managed { MANAGED, UNMANAGED, SUBSCRIPTION } /** Setters and Getters **/ public void setMarketInformation(String marketPriceAndCurrency, String marketTitle, String marketDescription, String marketCurrencyCode, long marketPriceMicros) { this.mMarketPriceAndCurrency = marketPriceAndCurrency; this.mMarketTitle = marketTitle; this.mMarketDescription = marketDescription; this.mMarketCurrencyCode = marketCurrencyCode; this.mMarketPriceMicros = marketPriceMicros; } public String getProductId() { return mProductId; } public Managed getManaged() { return mManaged; } public void setManaged(Managed managed) { this.mManaged = managed; } public double getPrice() { return mPrice; } /** Realtime Infomation from the Google Play Store **/ @Deprecated public String getMarketPrice() { return getMarketPriceAndCurrency(); } public String getMarketPriceAndCurrency() { return mMarketPriceAndCurrency; } public String getMarketTitle() { return mMarketTitle; } public String getMarketDescription() { return mMarketDescription; } public String getMarketCurrencyCode() { return mMarketCurrencyCode; } public long getMarketPriceMicros() { return mMarketPriceMicros; } /** Private Members **/ private static final String TAG = "SOOMLA MarketItem"; //used for Log messages private Managed mManaged; //the Managed type of the current item in the market. private String mProductId; //id of this VirtualGood in the market private double mPrice; //the actual $$ cost of the current item in the market. private String mMarketPriceAndCurrency; private String mMarketTitle; private String mMarketDescription; private String mMarketCurrencyCode; private long mMarketPriceMicros; }