package com.android.vending.billing; import android.content.Context; import android.support.annotation.NonNull; import de.jeisfeld.augendiagnoselib.R; import org.json.JSONException; import org.json.JSONObject; /** * Represents an in-app product's listing details. */ public class SkuDetails { // JAVADOC:OFF private final String mItemType; private String mSku; private String mType; private String mPrice; private String mTitle; private String mDescription; private final String mJson; public SkuDetails(final String jsonSkuDetails) throws JSONException { this(IabHelper.ITEM_TYPE_INAPP, jsonSkuDetails); } public SkuDetails(final String itemType, final String jsonSkuDetails) throws JSONException { mItemType = itemType; mJson = jsonSkuDetails; JSONObject o = new JSONObject(mJson); mSku = o.optString("productId"); mType = o.optString("type"); mPrice = o.optString("price"); mTitle = o.optString("title"); mDescription = o.optString("description"); } public final String getItemType() { return mItemType; } public final String getSku() { return mSku; } public final String getType() { return mType; } public final String getPrice() { return mPrice; } public final String getTitle() { return mTitle; } public final String getDisplayTitle(@NonNull final Context context) { if (mSku.startsWith("android.test")) { return mSku; } String applicationNamePostfix = " (" + context.getString(R.string.app_name) + ")"; if (mTitle.endsWith(applicationNamePostfix)) { return mTitle.substring(0, mTitle.length() - applicationNamePostfix.length()); } else { return mTitle; } } public final String getDescription() { return mDescription; } @NonNull @Override public final String toString() { return "SkuDetails:" + mJson; } }