// 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/model/TImage.java
// public class TImage implements Serializable {
//     private String originalPath;
//     private String compressPath;
//     private FromType fromType;
//     private boolean cropped;
//     private boolean compressed;
// 
//     public static TImage of(String path, FromType fromType) {
//         return new TImage(path, fromType);
//     }
// 
//     public static TImage of(Uri uri, FromType fromType) {
//         return new TImage(uri, fromType);
//     }
// 
//     private TImage(String path, FromType fromType) {
//         this.originalPath = path;
//         this.fromType = fromType;
//     }
// 
//     private TImage(Uri uri, FromType fromType) {
//         this.originalPath = uri.getPath();
//         this.fromType = fromType;
//     }
// 
//     public String getOriginalPath() {
//         return originalPath;
//     }
// 
//     public void setOriginalPath(String originalPath) {
//         this.originalPath = originalPath;
//     }
// 
//     public String getCompressPath() {
//         return compressPath;
//     }
// 
//     public void setCompressPath(String compressPath) {
//         this.compressPath = compressPath;
//     }
// 
//     public FromType getFromType() {
//         return fromType;
//     }
// 
//     public void setFromType(FromType fromType) {
//         this.fromType = fromType;
//     }
// 
//     public boolean isCropped() {
//         return cropped;
//     }
// 
//     public void setCropped(boolean cropped) {
//         this.cropped = cropped;
//     }
// 
//     public boolean isCompressed() {
//         return compressed;
//     }
// 
//     public void setCompressed(boolean compressed) {
//         this.compressed = compressed;
//     }
// 
//     public enum FromType {
//         CAMERA, OTHER
//     }
// }


import android.content.Context;
import org.devio.takephoto.model.LubanOptions;
import org.devio.takephoto.model.TImage;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import me.shaohui.advancedluban.Luban;
import me.shaohui.advancedluban.OnCompressListener;
import me.shaohui.advancedluban.OnMultiCompressListener;
package org.devio.takephoto.compress;





/**
 * 压缩照片,采用luban
 * Author: crazycodeboy
 * Date: 2016/11/5 0007 20:10
 * Version:4.0.0
 * 技术博文：http://www.devio.org/
 * GitHub:https://github.com/crazycodeboy
 * Email:crazycodeboy@gmail.com
 */
public class CompressWithLuBan implements CompressImage {
    private ArrayList<TImage> images;
    private CompressListener listener;
    private Context context;
// 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/model/TImage.java
// public class TImage implements Serializable {
//     private String originalPath;
//     private String compressPath;
//     private FromType fromType;
//     private boolean cropped;
//     private boolean compressed;
// 
//     public static TImage of(String path, FromType fromType) {
//         return new TImage(path, fromType);
//     }
// 
//     public static TImage of(Uri uri, FromType fromType) {
//         return new TImage(uri, fromType);
//     }
// 
//     private TImage(String path, FromType fromType) {
//         this.originalPath = path;
//         this.fromType = fromType;
//     }
// 
//     private TImage(Uri uri, FromType fromType) {
//         this.originalPath = uri.getPath();
//         this.fromType = fromType;
//     }
// 
//     public String getOriginalPath() {
//         return originalPath;
//     }
// 
//     public void setOriginalPath(String originalPath) {
//         this.originalPath = originalPath;
//     }
// 
//     public String getCompressPath() {
//         return compressPath;
//     }
// 
//     public void setCompressPath(String compressPath) {
//         this.compressPath = compressPath;
//     }
// 
//     public FromType getFromType() {
//         return fromType;
//     }
// 
//     public void setFromType(FromType fromType) {
//         this.fromType = fromType;
//     }
// 
//     public boolean isCropped() {
//         return cropped;
//     }
// 
//     public void setCropped(boolean cropped) {
//         this.cropped = cropped;
//     }
// 
//     public boolean isCompressed() {
//         return compressed;
//     }
// 
//     public void setCompressed(boolean compressed) {
//         this.compressed = compressed;
//     }
// 
//     public enum FromType {
//         CAMERA, OTHER
//     }
// }


// Path: takephoto_library/src/main/java/org/devio/takephoto/compress/CompressWithLuBan.java
import android.content.Context;
import org.devio.takephoto.model.LubanOptions;
import org.devio.takephoto.model.TImage;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import me.shaohui.advancedluban.Luban;
import me.shaohui.advancedluban.OnCompressListener;
import me.shaohui.advancedluban.OnMultiCompressListener;

package org.devio.takephoto.compress;





/**
 * 压缩照片,采用luban
 * Author: crazycodeboy
 * Date: 2016/11/5 0007 20:10
 * Version:4.0.0
 * 技术博文：http://www.devio.org/
 * GitHub:https://github.com/crazycodeboy
 * Email:crazycodeboy@gmail.com
 */
public class CompressWithLuBan implements CompressImage {
    private ArrayList<TImage> images;
    private CompressListener listener;
    private Context context;
    private LubanOptions options;