package com.xiaomi.xms.sales.model;
import android.text.TextUtils;
import com.xiaomi.xms.sales.model.MiPhoneDetailInfo.Item.FeatureItem;
import com.xiaomi.xms.sales.model.MiPhoneDetailInfo.Item.MediaItem;
import com.xiaomi.xms.sales.model.MiPhoneDetailInfo.Item.RecommendItem;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Iterator;
public class MiPhoneDetailInfo {
public static final String TAG = "MiPhoneDetailInfo";
private Image mFocusImg;
private ArrayList<Item> mItems;
private String mPhoneType;
private String mNextItem;
private String mLastItem;
private boolean mNextIsPhone;
private boolean mLastIsPhone;
public Image getFocusImg() {
return mFocusImg;
}
public void setFocusImg(Image focusImg) {
mFocusImg = focusImg;
}
public String getPhoneType() {
return mPhoneType;
}
public void setPhoneType(String phoneType) {
mPhoneType = phoneType;
}
public String getNextItem() {
return mNextItem;
}
public void setNextItem(String nextItem) {
mNextItem = nextItem;
}
public String getLastItem() {
return mLastItem;
}
public void setLastItem(String lastItem) {
mLastItem = lastItem;
}
public boolean getNextIsPhone() {
return mNextIsPhone;
}
public void setNextIsPhone(boolean isPhone) {
mNextIsPhone = isPhone;
}
public boolean getLastIsPhone() {
return mLastIsPhone;
}
public void setLastIsPhone(boolean isPhone) {
mLastIsPhone = isPhone;
}
public ArrayList<Item> getItem() {
return mItems;
}
public void setItem(ArrayList<Item> item) {
mItems = item;
}
public static class Item {
public final static int TYPE_MEDIA = 1;
public final static int TYPE_FEATURES = 2;
public final static int TYPE_GALLERY = 3;
public final static int TYPE_MAX_COUNT = 4;
private int mType;
private Node mNode;
public int getType() {
return mType;
}
public void setType(int type) {
this.mType = type;
}
public Node getNode() {
return mNode;
}
public void setNode(Node node) {
this.mNode = node;
}
public static abstract class Node {
}
public static class MediaItem extends Node {
private Image mMediaItemImg;
private String mMediaItemUrl;
private String mMediaItemText;
public void setMediaItemImg(Image mediaItemImg) {
mMediaItemImg = mediaItemImg;
}
public Image getMediaItemImg() {
return mMediaItemImg;
}
public void setMediaItemUrl(String mediaItemUrl) {
mMediaItemUrl = mediaItemUrl;
}
public String getMediaItemUrl() {
return mMediaItemUrl;
}
public void setMediaItemText(String mediaItemText) {
mMediaItemText = mediaItemText;
}
public String getMediaItemText() {
return mMediaItemText;
}
}
public static class FeatureItem extends Node {
private Image mFeatureItemImg;
private String mFeatureName;
private ArrayList<String> mFeatureDetails;
public void setFeatureItemImg(Image featureItemImg) {
mFeatureItemImg = featureItemImg;
}
public Image getFeatureItemImg() {
return mFeatureItemImg;
}
public void setFeatureName(String featureName) {
mFeatureName = featureName;
}
public String getFeatureName() {
return mFeatureName;
}
public void setFeatureDetail(ArrayList<String> featureDetails) {
mFeatureDetails = featureDetails;
}
public ArrayList<String> getFeatureDetail() {
return mFeatureDetails;
}
}
public static class RecommendItem extends Node {
private Image mGalleryItemImg;
private String mProductId;
private String mProductName;
private String mProductBrief;
private String mProductPrice;
private boolean mIsCanBuy;
private int mIsPhone;
private String mActivityUrl;
public void setRecommendItemImg(Image mediaItemImg) {
mGalleryItemImg = mediaItemImg;
}
public Image getRecommendItemImg() {
return mGalleryItemImg;
}
public String getProductBrief() {
return mProductBrief;
}
public void setProductBrief(String productBrief) {
mProductBrief = productBrief;
}
public String getProductName() {
return mProductName;
}
public void setProductName(String productName) {
mProductName = productName;
}
public String getProductId() {
return mProductId;
}
public void setProductId(String productId) {
mProductId = productId;
}
public String getProductPrice() {
return mProductPrice;
}
public void setProductPrice(String productPrice) {
mProductPrice = productPrice;
}
public void setIsCanBuy(boolean isCanBuy) {
mIsCanBuy = isCanBuy;
}
public boolean getIsCanBuy() {
return mIsCanBuy;
}
public void setIsPhone(int isphone) {
mIsPhone = isphone;
}
public int isPhone() {
return mIsPhone;
}
public void setActivityUrl(String activityUrl) {
mActivityUrl = activityUrl;
}
public String getActivityUrl() {
return mActivityUrl;
}
}
}
public static MiPhoneDetailInfo valueOf(JSONObject json) throws JSONException {
MiPhoneDetailInfo info = null;
if (Tags.isJSONResultOK(json)) {
info = new MiPhoneDetailInfo();
JSONObject resultjson = json.getJSONObject(Tags.DATA);
if (resultjson != null) {
String focusImg = resultjson.getString(Tags.MiPhoneDetails.FOCUS_IMG);
info.setFocusImg(new Image(focusImg));
String phoneType = resultjson.optString(Tags.MiPhoneDetails.PHONE_TYPE);
info.setPhoneType(phoneType);
JSONObject nextItemJson = resultjson.optJSONObject(Tags.ProductDetails.NEXT_ITEM);
if (nextItemJson != null) {
Iterator<String> it = nextItemJson.keys();
while (it.hasNext()) {
if (TextUtils.equals(it.next(), Tags.ProductDetails.PRODUCT_ID)) {
info.setNextItem(nextItemJson.optString(Tags.ProductDetails.PRODUCT_ID));
} else {
info.setNextIsPhone(nextItemJson
.optBoolean(Tags.ProductDetails.IS_PHONE));
}
}
}
JSONObject lastItemJson = resultjson.optJSONObject(Tags.ProductDetails.LAST_ITEM);
if (lastItemJson != null) {
Iterator<String> it = lastItemJson.keys();
while (it.hasNext()) {
if (TextUtils.equals(it.next(), Tags.ProductDetails.PRODUCT_ID)) {
info.setLastItem(lastItemJson.optString(Tags.ProductDetails.PRODUCT_ID));
} else {
info.setLastIsPhone(lastItemJson
.optBoolean(Tags.ProductDetails.IS_PHONE));
}
}
}
Item item = null;
ArrayList<Item> items = new ArrayList<Item>();
JSONArray featureJsonArray = resultjson.getJSONArray(Tags.MiPhoneDetails.FEATURES);
if (featureJsonArray != null) {
for (int i = 0; i < featureJsonArray.length(); i++) {
if (!featureJsonArray.isNull(i)) {
item = new Item();
FeatureItem fItem = new FeatureItem();
JSONObject featureItemJsonObject = (JSONObject) featureJsonArray.get(i);
String featureName = featureItemJsonObject
.getString(Tags.MiPhoneDetails.FEATURE_NAME);
String featureItemImg = featureItemJsonObject
.getString(Tags.MiPhoneDetails.IMG);
JSONArray featureDetailJsonArray = featureItemJsonObject
.getJSONArray(Tags.MiPhoneDetails.DETAILS);
ArrayList<String> detail = new ArrayList<String>();
if (featureDetailJsonArray != null) {
for (int j = 0; j < featureDetailJsonArray.length(); j++) {
if (!featureDetailJsonArray.isNull(j)) {
detail.add((String) featureDetailJsonArray.get(j));
}
}
}
fItem.setFeatureItemImg(new Image(featureItemImg));
fItem.setFeatureName(featureName);
fItem.setFeatureDetail(detail);
item.setType(Item.TYPE_FEATURES);
item.setNode(fItem);
items.add(item);
}
}
}
JSONArray mediaJsonArray = resultjson.getJSONArray(Tags.MiPhoneDetails.MEDIA);
if (mediaJsonArray != null) {
for (int i = 0; i < mediaJsonArray.length(); i++) {
if (!mediaJsonArray.isNull(i)) {
item = new Item();
MediaItem medItem = new MediaItem();
JSONObject mediaItemJsonObject = (JSONObject) mediaJsonArray.get(i);
String meidaItemImg = mediaItemJsonObject
.getString(Tags.MiPhoneDetails.IMG);
String meidaItemUrl = mediaItemJsonObject
.getString(Tags.MiPhoneDetails.URL);
String meidaItemIText = mediaItemJsonObject
.getString(Tags.MiPhoneDetails.TEXT);
medItem.setMediaItemImg(new Image(meidaItemImg));
medItem.setMediaItemUrl(meidaItemUrl);
medItem.setMediaItemText(meidaItemIText);
item.setNode(medItem);
item.setType(Item.TYPE_MEDIA);
items.add(item);
}
}
}
JSONArray galleryJsonArray = resultjson.getJSONArray(Tags.MiPhoneDetails.GALLERY);
if (galleryJsonArray != null) {
for (int i = 0; i < galleryJsonArray.length(); i++) {
if (!galleryJsonArray.isNull(i)) {
item = new Item();
RecommendItem gItem = new RecommendItem();
JSONObject galleryItemJsonObject = (JSONObject) galleryJsonArray.get(i);
String productId = galleryItemJsonObject
.getString(Tags.MiPhoneDetails.PRODUCT_ID);
String productName = galleryItemJsonObject
.getString(Tags.MiPhoneDetails.PRODUCT_NAME);
String productBrief = galleryItemJsonObject
.getString(Tags.MiPhoneDetails.PRODUCT_BRIEF);
String productPrice = galleryItemJsonObject
.getString(Tags.MiPhoneDetails.PRODUCT_PRICE);
String productImg = galleryItemJsonObject
.getString(Tags.MiPhoneDetails.PRODUCT_IMG);
String activityUrl = galleryItemJsonObject
.optString(Tags.MiPhoneDetails.ACTIVITY_URL);
int hasCanBuy = galleryItemJsonObject
.optInt(Tags.MiPhoneDetails.IS_AVAIL);
int isPhone = galleryItemJsonObject
.optInt(Tags.MiPhoneDetails.IS_PHONE);
gItem.setRecommendItemImg(new Image(productImg));
gItem.setProductId(productId);
gItem.setProductName(productName);
gItem.setProductBrief(productBrief);
gItem.setProductPrice(productPrice);
gItem.setIsPhone(isPhone);
gItem.setActivityUrl(activityUrl);
if (hasCanBuy == 1) {
gItem.setIsCanBuy(true);
}
item.setType(Item.TYPE_GALLERY);
item.setNode(gItem);
items.add(item);
}
}
}
info.setItem(items);
}
}
return info;
}
}