package com.kaltura.playersdk.config; import android.annotation.TargetApi; import android.os.Build; import org.json.JSONException; import org.json.JSONObject; /** * Created by Gleb on 10/7/16. */ public class KProxyData { private boolean mWithDynamic; private KInitObjModel mInitObj; private String mIMediaID; private String mMediaID; private String mPicSize; private String mMediaType; private KProxyConfig mProxyConfig; private KProxyData() { mInitObj = new KInitObjModel(); mProxyConfig = new KProxyConfig(); } public static Builder newBuilder() { return new KProxyData().new Builder(); } public JSONObject toJson() { JSONObject obj = new JSONObject(); try { obj.put("withDynamic", mWithDynamic ? "true" : "false"); obj.put("iMediaID", mIMediaID); obj.put("MediaID", mMediaID); obj.put("picSize", mPicSize); obj.put("mediaType", mMediaType); obj.put("initObj", mInitObj.toJson()); obj.put("config", mProxyConfig.toJson()); } catch (JSONException e) { e.printStackTrace(); } return obj; } public class Builder { private Builder() { // private constructor } public Builder setMediaId(String mediaId) { mMediaID = mediaId; return this; } public Builder setIMediaId(String iMediaId) { mIMediaID = iMediaId; return this; } public Builder setPicSize(int w, int h) { mPicSize = w + "x" + h; return this; } public Builder setMediaType(String mediaType) { mMediaType = mediaType; return this; } public Builder setWithDynamic(boolean withDynamic) { mWithDynamic = withDynamic; return this; } @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) public Builder addProxyConfigFilter(String filter) { mProxyConfig.addFilter(filter); return this; } public Builder setUserProtection(String userName, String password, String uDID) { mInitObj.setApiUser(userName); mInitObj.setApiPass(password); mInitObj.setUDID(uDID); return this; } public Builder setPlatform(String platform) { mInitObj.setPlatform(platform); return this; } public Builder setDomainId(int domainId) { mInitObj.setDomainID(domainId); return this; } public Builder setSiteGuid(String siteGuid) { mInitObj.setSiteGuid(siteGuid); return this; } public Builder setLocale(String localeCountry, String localeDevice, String localeUserState, String localeLanguage) { KLocaleModel localeModel = new KLocaleModel(); localeModel.setLocaleCountry(localeCountry); localeModel.setLocaleDevice(localeDevice); localeModel.setLocaleUserState(localeUserState); localeModel.setLocaleLanguage(localeLanguage); mInitObj.setLocale(localeModel); return this; } public KProxyData build() { return KProxyData.this; } } }