// Path: takephoto_library/src/main/java/org/devio/takephoto/model/LubanOptions.java
// public class LubanOptions implements Serializable {
//     /**
//      * 压缩到的最大大小，单位B
//      */
//     private int maxSize;
//     private int maxHeight;
//     private int maxWidth;
// 
//     private LubanOptions() {
//     }
// 
//     public int getMaxSize() {
//         return maxSize;
//     }
// 
//     public void setMaxSize(int maxSize) {
//         this.maxSize = maxSize;
//     }
// 
//     public int getMaxHeight() {
//         return maxHeight;
//     }
// 
//     public void setMaxHeight(int maxHeight) {
//         this.maxHeight = maxHeight;
//     }
// 
//     public int getMaxWidth() {
//         return maxWidth;
//     }
// 
//     public void setMaxWidth(int maxWidth) {
//         this.maxWidth = maxWidth;
//     }
// 
//     public static class Builder {
//         private LubanOptions options;
// 
//         public Builder() {
//             options = new LubanOptions();
//         }
// 
//         public Builder setMaxSize(int maxSize) {
//             options.setMaxSize(maxSize);
//             return this;
//         }
// 
//         public Builder setMaxHeight(int maxHeight) {
//             options.setMaxHeight(maxHeight);
//             return this;
//         }
// 
//         public Builder setMaxWidth(int maxWidth) {
//             options.setMaxWidth(maxWidth);
//             return this;
//         }
// 
//         public LubanOptions create() {
//             return options;
//         }
//     }
// }


import org.devio.takephoto.model.LubanOptions;
import java.io.Serializable;
package org.devio.takephoto.compress;




/**
 * 压缩配置类
 * Author: JPH
 * Date: 2016/6/7 0007 18:01
 */
public class CompressConfig implements Serializable {

    /**
     * 长或宽不超过的最大像素,单位px
     */
    private int maxPixel = 1200;
    /**
     * 压缩到的最大大小，单位B
     */
    private int maxSize = 100 * 1024;

    /**
     * 是否启用像素压缩
     */
    private boolean enablePixelCompress = true;
    /**
     * 是否启用质量压缩
     */
    private boolean enableQualityCompress = true;

    /**
     * 是否保留原文件
     */
    private boolean enableReserveRaw = true;

    /**
     * Luban压缩配置
     */
    private LubanOptions lubanOptions;

    public static CompressConfig ofDefaultConfig() {
        return new CompressConfig();
    }

    public static CompressConfig ofLuban(LubanOptions options) {
        return new CompressConfig(options);
    }

    private CompressConfig() {
    }

// Path: takephoto_library/src/main/java/org/devio/takephoto/model/LubanOptions.java
// public class LubanOptions implements Serializable {
//     /**
//      * 压缩到的最大大小，单位B
//      */
//     private int maxSize;
//     private int maxHeight;
//     private int maxWidth;
// 
//     private LubanOptions() {
//     }
// 
//     public int getMaxSize() {
//         return maxSize;
//     }
// 
//     public void setMaxSize(int maxSize) {
//         this.maxSize = maxSize;
//     }
// 
//     public int getMaxHeight() {
//         return maxHeight;
//     }
// 
//     public void setMaxHeight(int maxHeight) {
//         this.maxHeight = maxHeight;
//     }
// 
//     public int getMaxWidth() {
//         return maxWidth;
//     }
// 
//     public void setMaxWidth(int maxWidth) {
//         this.maxWidth = maxWidth;
//     }
// 
//     public static class Builder {
//         private LubanOptions options;
// 
//         public Builder() {
//             options = new LubanOptions();
//         }
// 
//         public Builder setMaxSize(int maxSize) {
//             options.setMaxSize(maxSize);
//             return this;
//         }
// 
//         public Builder setMaxHeight(int maxHeight) {
//             options.setMaxHeight(maxHeight);
//             return this;
//         }
// 
//         public Builder setMaxWidth(int maxWidth) {
//             options.setMaxWidth(maxWidth);
//             return this;
//         }
// 
//         public LubanOptions create() {
//             return options;
//         }
//     }
// }


// Path: takephoto_library/src/main/java/org/devio/takephoto/compress/CompressConfig.java
import org.devio.takephoto.model.LubanOptions;
import java.io.Serializable;

package org.devio.takephoto.compress;




/**
 * 压缩配置类
 * Author: JPH
 * Date: 2016/6/7 0007 18:01
 */
public class CompressConfig implements Serializable {

    /**
     * 长或宽不超过的最大像素,单位px
     */
    private int maxPixel = 1200;
    /**
     * 压缩到的最大大小，单位B
     */
    private int maxSize = 100 * 1024;

    /**
     * 是否启用像素压缩
     */
    private boolean enablePixelCompress = true;
    /**
     * 是否启用质量压缩
     */
    private boolean enableQualityCompress = true;

    /**
     * 是否保留原文件
     */
    private boolean enableReserveRaw = true;

    /**
     * Luban压缩配置
     */
    private LubanOptions lubanOptions;

    public static CompressConfig ofDefaultConfig() {
        return new CompressConfig();
    }

    public static CompressConfig ofLuban(LubanOptions options) {
        return new CompressConfig(options);
    }

    private CompressConfig() {
    }

    private CompressConfig(LubanOptions options) {