// Path: sample/src/main/java/com/yang/demo/entity/PostEntity.java
// public class PostEntity {
//     int status;
//     String message;
// 
//     public int getStatus() {
//         return status;
//     }
// 
//     public void setStatus(int status) {
//         this.status = status;
//     }
// 
//     public String getMessage() {
//         return message;
//     }
// 
//     public void setMessage(String message) {
//         this.message = message;
//     }
// }
// 
// Path: easy-http-library/src/main/java/com/yang/easyhttp/request/EasyRequestParams.java
// public class EasyRequestParams {
//     private ConcurrentHashMap<String, String> mRequestParams = new ConcurrentHashMap<>();
//     private ConcurrentHashMap<String, String> mRequestHeaders = new ConcurrentHashMap<>();
// 
// 
//     public void put(String key, String value) {
//         if (key != null && value != null) {
//             mRequestParams.put(key, value);
//         }
//     }
// 
//     public ConcurrentHashMap<String, String> getRequestParams() {
//         return mRequestParams;
//     }
// 
//     public void addHeader(String key, String value) {
//         if (key != null && value != null) {
//             mRequestHeaders.put(key, value);
//         }
//     }
// 
//     public ConcurrentHashMap<String, String> getRequestHeaders() {
//         return mRequestHeaders;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder result = new StringBuilder();
//         for (ConcurrentHashMap.Entry<String, String> entry : mRequestParams.entrySet()) {
//             if (result.length() > 0)
//                 result.append("&");
// 
//             result.append(entry.getKey());
//             result.append("=");
//             result.append(entry.getValue());
//         }
//         return result.toString();
//     }
// }
// 
// Path: easy-http-library-rx/src/main/java/com/yang/easyhttprx/RxEasyHttp.java
// public class RxEasyHttp {
// 	/**
// 	 * Get请求RxJava形式
// 	 * @param url
// 	 * @return
// 	 */
// 	public static <T> Flowable<T> get(String url, RxEasyConverter<T> converter) {
// 		return get(url, null, converter);
// 	}
// 
// 	public static <T> Flowable<T> get(String url, EasyRequestParams easyRequestParams, RxEasyConverter<T> converter) {
// 		return RxEasyHttpManager.getInstance().get(url, easyRequestParams, EasyCacheType.CACHE_TYPE_NO_SETTING, converter);
// 	}
// 
// 	public static <T> Flowable<T> get(String url, int cacheType, RxEasyConverter<T> converter) {
// 		return get(url, null, cacheType, converter);
// 	}
// 
// 	public static <T> Flowable<T> get(String url, EasyRequestParams easyRequestParams, int cacheType, RxEasyConverter<T> converter) {
// 		return RxEasyHttpManager.getInstance().get(url, easyRequestParams, cacheType, converter);
// 	}
// 
// 	/**
// 	 * Post请求RxJava形式
// 	 * @param url
// 	 * @return
// 	 */
// 	public static <T> Flowable<T> post(String url, EasyRequestParams easyRequestParams, RxEasyConverter<T> converter) {
// 		return RxEasyHttpManager.getInstance().post(url, easyRequestParams, converter);
// 	}
// 
// 	/**
// 	 * post file RxJava形式
// 	 * @param url
// 	 * @param filePath
// 	 * @return
// 	 */
// 	public static <T> Flowable<T> uploadFile(String url, String filePath, RxEasyConverter<T> converter) {
// 		return RxEasyHttpManager.getInstance().uploadFile(url, filePath, converter);
// 	}
// }
// 
// Path: easy-http-library-rx/src/main/java/com/yang/easyhttprx/converter/RxEasyCustomConverter.java
// public abstract class RxEasyCustomConverter<T> implements RxEasyConverter<T> {
// 
//     @Override
//     public T convert(String body) throws Exception {
//         Class clazz = this.getClass();
//         Type superClassType = clazz.getGenericSuperclass();
//         Type tArg = ((ParameterizedType) superClassType).getActualTypeArguments()[0];
//         Gson gson = EasyHttpClientManager.getInstance().getGson();
//         return gson.fromJson(body, tArg);
//     }
// }


import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.yang.demo.R;
import com.yang.demo.entity.PostEntity;
import com.yang.easyhttp.request.EasyRequestParams;
import com.yang.easyhttprx.RxEasyHttp;
import com.yang.easyhttprx.converter.RxEasyCustomConverter;
import org.reactivestreams.Subscription;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import io.reactivex.FlowableSubscriber;
import io.reactivex.android.schedulers.AndroidSchedulers;
package com.yang.demo.activity;





/**
 * Created by yangyang on 2017/2/17.
 */
public class RxPostActivity extends AppCompatActivity {
    @BindView(R.id.comment)
    EditText comment;
    @BindView(R.id.submit)
    Button submit;
    @BindView(R.id.result)
    TextView result;
    ProgressDialog dialog;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.post_main);
        ButterKnife.bind(this);
        dialog = new ProgressDialog(this);
    }

    @OnClick(R.id.submit)
    public void submit() {
        Editable content = comment.getText();

        if (TextUtils.isEmpty(content)) {
            Toast.makeText(this, "comment is empty", Toast.LENGTH_SHORT);
            return;
        }

        EasyRequestParams params = new EasyRequestParams();
        params.put("content", content.toString());

        String url = "http://book.km.com/app/index.php?c=version&a=feedback";

// Path: sample/src/main/java/com/yang/demo/entity/PostEntity.java
// public class PostEntity {
//     int status;
//     String message;
// 
//     public int getStatus() {
//         return status;
//     }
// 
//     public void setStatus(int status) {
//         this.status = status;
//     }
// 
//     public String getMessage() {
//         return message;
//     }
// 
//     public void setMessage(String message) {
//         this.message = message;
//     }
// }
// 
// Path: easy-http-library/src/main/java/com/yang/easyhttp/request/EasyRequestParams.java
// public class EasyRequestParams {
//     private ConcurrentHashMap<String, String> mRequestParams = new ConcurrentHashMap<>();
//     private ConcurrentHashMap<String, String> mRequestHeaders = new ConcurrentHashMap<>();
// 
// 
//     public void put(String key, String value) {
//         if (key != null && value != null) {
//             mRequestParams.put(key, value);
//         }
//     }
// 
//     public ConcurrentHashMap<String, String> getRequestParams() {
//         return mRequestParams;
//     }
// 
//     public void addHeader(String key, String value) {
//         if (key != null && value != null) {
//             mRequestHeaders.put(key, value);
//         }
//     }
// 
//     public ConcurrentHashMap<String, String> getRequestHeaders() {
//         return mRequestHeaders;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder result = new StringBuilder();
//         for (ConcurrentHashMap.Entry<String, String> entry : mRequestParams.entrySet()) {
//             if (result.length() > 0)
//                 result.append("&");
// 
//             result.append(entry.getKey());
//             result.append("=");
//             result.append(entry.getValue());
//         }
//         return result.toString();
//     }
// }
// 
// Path: easy-http-library-rx/src/main/java/com/yang/easyhttprx/RxEasyHttp.java
// public class RxEasyHttp {
// 	/**
// 	 * Get请求RxJava形式
// 	 * @param url
// 	 * @return
// 	 */
// 	public static <T> Flowable<T> get(String url, RxEasyConverter<T> converter) {
// 		return get(url, null, converter);
// 	}
// 
// 	public static <T> Flowable<T> get(String url, EasyRequestParams easyRequestParams, RxEasyConverter<T> converter) {
// 		return RxEasyHttpManager.getInstance().get(url, easyRequestParams, EasyCacheType.CACHE_TYPE_NO_SETTING, converter);
// 	}
// 
// 	public static <T> Flowable<T> get(String url, int cacheType, RxEasyConverter<T> converter) {
// 		return get(url, null, cacheType, converter);
// 	}
// 
// 	public static <T> Flowable<T> get(String url, EasyRequestParams easyRequestParams, int cacheType, RxEasyConverter<T> converter) {
// 		return RxEasyHttpManager.getInstance().get(url, easyRequestParams, cacheType, converter);
// 	}
// 
// 	/**
// 	 * Post请求RxJava形式
// 	 * @param url
// 	 * @return
// 	 */
// 	public static <T> Flowable<T> post(String url, EasyRequestParams easyRequestParams, RxEasyConverter<T> converter) {
// 		return RxEasyHttpManager.getInstance().post(url, easyRequestParams, converter);
// 	}
// 
// 	/**
// 	 * post file RxJava形式
// 	 * @param url
// 	 * @param filePath
// 	 * @return
// 	 */
// 	public static <T> Flowable<T> uploadFile(String url, String filePath, RxEasyConverter<T> converter) {
// 		return RxEasyHttpManager.getInstance().uploadFile(url, filePath, converter);
// 	}
// }
// 
// Path: easy-http-library-rx/src/main/java/com/yang/easyhttprx/converter/RxEasyCustomConverter.java
// public abstract class RxEasyCustomConverter<T> implements RxEasyConverter<T> {
// 
//     @Override
//     public T convert(String body) throws Exception {
//         Class clazz = this.getClass();
//         Type superClassType = clazz.getGenericSuperclass();
//         Type tArg = ((ParameterizedType) superClassType).getActualTypeArguments()[0];
//         Gson gson = EasyHttpClientManager.getInstance().getGson();
//         return gson.fromJson(body, tArg);
//     }
// }


// Path: sample/src/main/java/com/yang/demo/activity/RxPostActivity.java
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.yang.demo.R;
import com.yang.demo.entity.PostEntity;
import com.yang.easyhttp.request.EasyRequestParams;
import com.yang.easyhttprx.RxEasyHttp;
import com.yang.easyhttprx.converter.RxEasyCustomConverter;
import org.reactivestreams.Subscription;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import io.reactivex.FlowableSubscriber;
import io.reactivex.android.schedulers.AndroidSchedulers;

package com.yang.demo.activity;





/**
 * Created by yangyang on 2017/2/17.
 */
public class RxPostActivity extends AppCompatActivity {
    @BindView(R.id.comment)
    EditText comment;
    @BindView(R.id.submit)
    Button submit;
    @BindView(R.id.result)
    TextView result;
    ProgressDialog dialog;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.post_main);
        ButterKnife.bind(this);
        dialog = new ProgressDialog(this);
    }

    @OnClick(R.id.submit)
    public void submit() {
        Editable content = comment.getText();

        if (TextUtils.isEmpty(content)) {
            Toast.makeText(this, "comment is empty", Toast.LENGTH_SHORT);
            return;
        }

        EasyRequestParams params = new EasyRequestParams();
        params.put("content", content.toString());

        String url = "http://book.km.com/app/index.php?c=version&a=feedback";

        RxEasyHttp.post(url, params, new RxEasyCustomConverter<PostEntity>() {