blob: ed40d9fd6e124dac6d6d793faf84b01b83a38f02 [file] [log] [blame]
package org.wordpress.android.ui.plans;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.wordpress.android.ui.plans.models.Feature;
import org.wordpress.android.ui.plans.models.Plan;
import org.wordpress.android.ui.prefs.AppPrefs;
import org.wordpress.android.util.AppLog;
import org.wordpress.android.util.PhotonUtils;
import java.util.HashMap;
public class PlansUtils {
@Nullable
public static HashMap<String, Feature> getFeatures() {
String featuresString = AppPrefs.getGlobalPlansFeatures();
if (TextUtils.isEmpty(featuresString)) {
return null;
}
HashMap<String, Feature> features = new HashMap<>();
try {
JSONObject featuresJSONObject = new JSONObject(featuresString);
JSONArray featuresArray = featuresJSONObject.getJSONArray("originalResponse");
for (int i=0; i < featuresArray.length(); i ++) {
JSONObject currentFeatureJSON = featuresArray.getJSONObject(i);
Feature currentFeature = new Feature(currentFeatureJSON);
features.put(currentFeature.getProductSlug(), currentFeature);
}
} catch (JSONException e) {
AppLog.e(AppLog.T.PLANS, "Can't parse the features list returned from the server", e);
return null;
}
return features;
}
/**
* Returns the url of the image to display for the passed plan
*
* @param plan - The plan
* @param iconSize - desired size of the returned image
* @return string containing photon-ized url for the plan icon
*/
public static String getIconUrlForPlan(Plan plan, int iconSize) {
if (plan == null || !plan.hasIconUrl()) {
return null;
}
return PhotonUtils.getPhotonImageUrl(plan.getIconUrl(), iconSize, iconSize);
}
/**
* Weather the plan ID is a free plan.
*
* @param planID - The plan ID
* @return boolean - true if the current blog is on a free plan.
*/
private static boolean isFreePlan(long planID) {
return planID == PlansConstants.JETPACK_FREE_PLAN_ID || planID == PlansConstants.FREE_PLAN_ID;
}
/**
* Removes stored plan data - for testing purposes
*/
@SuppressWarnings("unused")
public static void clearPlanData() {
AppPrefs.setGlobalPlansFeatures(null);
}
}