// Path: SmartSelectionList/hbsdk/src/main/java/com/hypebeast/sdk/api/gson/GsonFactory.java
// public class GsonFactory {
// 
//     public static Gson newGsonInstance() {
//         GsonBuilder gsonBuilder = new GsonBuilder();
//         gsonBuilder.excludeFieldsWithModifiers(Modifier.STATIC, Modifier.TRANSIENT);
//         gsonBuilder.registerTypeAdapter(Date.class, new DateAdapter());
//         return gsonBuilder.create();
//     }
// 
// 
//     public static class NullStringToEmptyAdapterFactory<T> implements TypeAdapterFactory {
//         public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
// 
//             Class<T> rawType = (Class<T>) type.getRawType();
//             if (rawType != String.class) {
//                 return null;
//             }
//             return (TypeAdapter<T>) new MissingCharacterConversion();
//         }
//     }
// }
// 
// Path: SmartSelectionList/hbsdk/src/main/java/com/hypebeast/sdk/api/gson/MissingCharacterConversion.java
// public class MissingCharacterConversion extends TypeAdapter<String> {
//     private boolean hasHtmlEscapers = false;
// 
//     public MissingCharacterConversion(boolean hasHtmlEscapers) {
//         this.hasHtmlEscapers = hasHtmlEscapers;
//     }
// 
//     public MissingCharacterConversion() {
//         this(false);
//     }
// 
//     public String read(JsonReader reader) throws IOException {
//         if (reader.peek() == JsonToken.NULL) {
//             reader.nextNull();
//             return "";
//         }
//         String beforeDecoding = reader.nextString();
//         //  String decodedValue1 = URLDecoder.decode(str, "UTF-8");
//         // return Html.fromHtml((String) str).toString();
//         if (hasHtmlEscapers) {
//             return beforeDecoding;
//             //  return URLDecoder.decode(beforeDecoding);
//             // return StringEscapeUtils.unescapeEcmaScript(beforeDecoding);
//         } else {
//             return beforeDecoding.replace("&#038;", "&");
//         }
//     }
// 
//     public void write(JsonWriter writer, String value) throws IOException {
//         if (value == null) {
//             writer.nullValue();
//             return;
//         }
//         //   String xy = value.getX() + "," + value.getY();
//         writer.value(value);
//     }
// 
// }
// 
// Path: SmartSelectionList/hbsdk/src/main/java/com/hypebeast/sdk/api/resources/pb/pbPost.java
// public interface pbPost {
//     @GET("/wp-json/posts")
//     void search(
//             final @Query("filter[s]") String search_keyword,
//             final @Query("page") int page,
//             final @Query("filter[posts_per_page]") int limit,
//             final @Query("filter[order]") String ordering,
//             final Callback<List<pbpost>> cb) throws ApiException;
// 
// 
//     @GET("/wp-json/posts")
//     void lateset(
//             final @Query("filter[posts_per_page]") int limit,
//             final @Query("filter[order]") String ordering,
//             final @Query("page") int page,
//             final Callback<List<pbpost>> cb
//     ) throws ApiException;
// 
// 
//     @GET("/wp-json/posts")
//     void fromLink(
//             final @Query("filter[name]") String last_slug,
//             final Callback<List<htpost>> cb
//     ) throws ApiException;
// 
// 
//     @GET("/wp-json/posts")
//     void lateset(
//             final @Query("filter[posts_per_page]") int limit,
//             final Callback<List<pbpost>> cb
//     ) throws ApiException;
// 
//     @GET("/wp-json/posts")
//     void category(
//             final @Query("filter[category_name]") String tag_cate,
//             final Callback<List<pbpost>> cb
//     ) throws ApiException;
// 
//     @GET("/wp-json/posts")
//     void category(
//             final @Query("filter[category_name]") String tag_cate,
//             final @Query("page") int page,
//             final @Query("filter[posts_per_page]") int limit,
//             final @Query("filter[order]") String ordering,
//             final Callback<List<pbpost>> cb
//     ) throws ApiException;
// 
//     /**
//      * only used on installation override
//      *
//      * @param pid post ID
//      * @param cb  call back object
//      * @throws ApiException the exceptions
//      */
//     @GET("/wp-json/posts/{pid}")
//     void the_post(
//             final @Path("pid") long pid,
//             final Callback<pbpost> cb
//     ) throws ApiException;
// 
// 
//     @GET("/wp-json/mobile-config")
//     void mobile_config(final Callback<mobileconfig> cb) throws ApiException;
// 
// 
// }


import android.os.Build;
import com.google.gson.GsonBuilder;
import com.hypebeast.sdk.api.gson.GsonFactory;
import com.hypebeast.sdk.api.gson.MissingCharacterConversion;
import com.hypebeast.sdk.api.gson.RealmExclusion;
import com.hypebeast.sdk.api.resources.pb.pbPost;
import java.util.Iterator;
import java.util.List;
import retrofit.RestAdapter;
import retrofit.client.Header;
import retrofit.client.Response;
import retrofit.converter.GsonConverter;
    @Override
    protected void registerAdapter() {
        mAdapter = new RestAdapter.Builder()
                .setEndpoint(BASE_URL_PB)
                .setLogLevel(RestAdapter.LogLevel.HEADERS)
                .setErrorHandler(handlerError)
                .setRequestInterceptor(getIn())
                .setConverter(new GsonConverter(gsonsetup))
                .build();
    }

    @Override
    protected String get_USER_AGENT() {
        return USER_AGENT;
    }

    @Override
    protected void jsonCreate() {
        gsonsetup = new GsonBuilder()
                .setDateFormat(DATE_FORMAT)
                .setExclusionStrategies(new RealmExclusion())
                .registerTypeAdapterFactory(new GsonFactory.NullStringToEmptyAdapterFactory())
                .registerTypeAdapter(String.class, new MissingCharacterConversion())
                .create();
    }

    public PBEditorialClient() {
        super();
    }

// Path: SmartSelectionList/hbsdk/src/main/java/com/hypebeast/sdk/api/gson/GsonFactory.java
// public class GsonFactory {
// 
//     public static Gson newGsonInstance() {
//         GsonBuilder gsonBuilder = new GsonBuilder();
//         gsonBuilder.excludeFieldsWithModifiers(Modifier.STATIC, Modifier.TRANSIENT);
//         gsonBuilder.registerTypeAdapter(Date.class, new DateAdapter());
//         return gsonBuilder.create();
//     }
// 
// 
//     public static class NullStringToEmptyAdapterFactory<T> implements TypeAdapterFactory {
//         public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
// 
//             Class<T> rawType = (Class<T>) type.getRawType();
//             if (rawType != String.class) {
//                 return null;
//             }
//             return (TypeAdapter<T>) new MissingCharacterConversion();
//         }
//     }
// }
// 
// Path: SmartSelectionList/hbsdk/src/main/java/com/hypebeast/sdk/api/gson/MissingCharacterConversion.java
// public class MissingCharacterConversion extends TypeAdapter<String> {
//     private boolean hasHtmlEscapers = false;
// 
//     public MissingCharacterConversion(boolean hasHtmlEscapers) {
//         this.hasHtmlEscapers = hasHtmlEscapers;
//     }
// 
//     public MissingCharacterConversion() {
//         this(false);
//     }
// 
//     public String read(JsonReader reader) throws IOException {
//         if (reader.peek() == JsonToken.NULL) {
//             reader.nextNull();
//             return "";
//         }
//         String beforeDecoding = reader.nextString();
//         //  String decodedValue1 = URLDecoder.decode(str, "UTF-8");
//         // return Html.fromHtml((String) str).toString();
//         if (hasHtmlEscapers) {
//             return beforeDecoding;
//             //  return URLDecoder.decode(beforeDecoding);
//             // return StringEscapeUtils.unescapeEcmaScript(beforeDecoding);
//         } else {
//             return beforeDecoding.replace("&#038;", "&");
//         }
//     }
// 
//     public void write(JsonWriter writer, String value) throws IOException {
//         if (value == null) {
//             writer.nullValue();
//             return;
//         }
//         //   String xy = value.getX() + "," + value.getY();
//         writer.value(value);
//     }
// 
// }
// 
// Path: SmartSelectionList/hbsdk/src/main/java/com/hypebeast/sdk/api/resources/pb/pbPost.java
// public interface pbPost {
//     @GET("/wp-json/posts")
//     void search(
//             final @Query("filter[s]") String search_keyword,
//             final @Query("page") int page,
//             final @Query("filter[posts_per_page]") int limit,
//             final @Query("filter[order]") String ordering,
//             final Callback<List<pbpost>> cb) throws ApiException;
// 
// 
//     @GET("/wp-json/posts")
//     void lateset(
//             final @Query("filter[posts_per_page]") int limit,
//             final @Query("filter[order]") String ordering,
//             final @Query("page") int page,
//             final Callback<List<pbpost>> cb
//     ) throws ApiException;
// 
// 
//     @GET("/wp-json/posts")
//     void fromLink(
//             final @Query("filter[name]") String last_slug,
//             final Callback<List<htpost>> cb
//     ) throws ApiException;
// 
// 
//     @GET("/wp-json/posts")
//     void lateset(
//             final @Query("filter[posts_per_page]") int limit,
//             final Callback<List<pbpost>> cb
//     ) throws ApiException;
// 
//     @GET("/wp-json/posts")
//     void category(
//             final @Query("filter[category_name]") String tag_cate,
//             final Callback<List<pbpost>> cb
//     ) throws ApiException;
// 
//     @GET("/wp-json/posts")
//     void category(
//             final @Query("filter[category_name]") String tag_cate,
//             final @Query("page") int page,
//             final @Query("filter[posts_per_page]") int limit,
//             final @Query("filter[order]") String ordering,
//             final Callback<List<pbpost>> cb
//     ) throws ApiException;
// 
//     /**
//      * only used on installation override
//      *
//      * @param pid post ID
//      * @param cb  call back object
//      * @throws ApiException the exceptions
//      */
//     @GET("/wp-json/posts/{pid}")
//     void the_post(
//             final @Path("pid") long pid,
//             final Callback<pbpost> cb
//     ) throws ApiException;
// 
// 
//     @GET("/wp-json/mobile-config")
//     void mobile_config(final Callback<mobileconfig> cb) throws ApiException;
// 
// 
// }


// Path: SmartSelectionList/hbsdk/src/main/java/com/hypebeast/sdk/clients/PBEditorialClient.java
import android.os.Build;
import com.google.gson.GsonBuilder;
import com.hypebeast.sdk.api.gson.GsonFactory;
import com.hypebeast.sdk.api.gson.MissingCharacterConversion;
import com.hypebeast.sdk.api.gson.RealmExclusion;
import com.hypebeast.sdk.api.resources.pb.pbPost;
import java.util.Iterator;
import java.util.List;
import retrofit.RestAdapter;
import retrofit.client.Header;
import retrofit.client.Response;
import retrofit.converter.GsonConverter;

    @Override
    protected void registerAdapter() {
        mAdapter = new RestAdapter.Builder()
                .setEndpoint(BASE_URL_PB)
                .setLogLevel(RestAdapter.LogLevel.HEADERS)
                .setErrorHandler(handlerError)
                .setRequestInterceptor(getIn())
                .setConverter(new GsonConverter(gsonsetup))
                .build();
    }

    @Override
    protected String get_USER_AGENT() {
        return USER_AGENT;
    }

    @Override
    protected void jsonCreate() {
        gsonsetup = new GsonBuilder()
                .setDateFormat(DATE_FORMAT)
                .setExclusionStrategies(new RealmExclusion())
                .registerTypeAdapterFactory(new GsonFactory.NullStringToEmptyAdapterFactory())
                .registerTypeAdapter(String.class, new MissingCharacterConversion())
                .create();
    }

    public PBEditorialClient() {
        super();
    }

    public pbPost createPostsFeed() {