// Path: app/src/main/java/com/wonderful/ishow/bean/ExifInfo.java
// public class ExifInfo {
// 
// 	private int mExifOrientation;
// 	private int mExifDegrees;
// 	private int mExifTranslation;
// 
// 	public ExifInfo(int exifOrientation, int exifDegrees, int exifTranslation) {
// 		mExifOrientation = exifOrientation;
// 		mExifDegrees = exifDegrees;
// 		mExifTranslation = exifTranslation;
// 	}
// 
// 	public int getExifOrientation() {
// 		return mExifOrientation;
// 	}
// 
// 	public int getExifDegrees() {
// 		return mExifDegrees;
// 	}
// 
// 	public int getExifTranslation() {
// 		return mExifTranslation;
// 	}
// 
// 	public void setExifOrientation(int exifOrientation) {
// 		mExifOrientation = exifOrientation;
// 	}
// 
// 	public void setExifDegrees(int exifDegrees) {
// 		mExifDegrees = exifDegrees;
// 	}
// 
// 	public void setExifTranslation(int exifTranslation) {
// 		mExifTranslation = exifTranslation;
// 	}
// 
// 	@Override
// 	public boolean equals(Object o) {
// 		if(this == o)
// 			return true;
// 		if(o == null || getClass() != o.getClass())
// 			return false;
// 
// 		ExifInfo exifInfo = (ExifInfo) o;
// 
// 		if(mExifOrientation != exifInfo.mExifOrientation)
// 			return false;
// 		if(mExifDegrees != exifInfo.mExifDegrees)
// 			return false;
// 		return mExifTranslation == exifInfo.mExifTranslation;
// 
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		int result = mExifOrientation;
// 		result = 31 * result + mExifDegrees;
// 		result = 31 * result + mExifTranslation;
// 		return result;
// 	}
// 
// }


import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.ParcelFileDescriptor;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.util.Log;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.wonderful.ishow.bean.ExifInfo;
package com.wonderful.ishow.util;




/**
 * Creates and returns a Bitmap for a given Uri(String url). inSampleSize is calculated based on
 * requiredWidth property. However can be adjusted if OOM occurs. If any EXIF config is found -
 * bitmap is transformed properly.
 */
public class BitmapLoadTask extends AsyncTask<Void, Void, BitmapLoadTask.BitmapWorkerResult> {

	private static final String TAG = BitmapLoadTask.class.getSimpleName();

	public interface BitmapLoadCallback {

// Path: app/src/main/java/com/wonderful/ishow/bean/ExifInfo.java
// public class ExifInfo {
// 
// 	private int mExifOrientation;
// 	private int mExifDegrees;
// 	private int mExifTranslation;
// 
// 	public ExifInfo(int exifOrientation, int exifDegrees, int exifTranslation) {
// 		mExifOrientation = exifOrientation;
// 		mExifDegrees = exifDegrees;
// 		mExifTranslation = exifTranslation;
// 	}
// 
// 	public int getExifOrientation() {
// 		return mExifOrientation;
// 	}
// 
// 	public int getExifDegrees() {
// 		return mExifDegrees;
// 	}
// 
// 	public int getExifTranslation() {
// 		return mExifTranslation;
// 	}
// 
// 	public void setExifOrientation(int exifOrientation) {
// 		mExifOrientation = exifOrientation;
// 	}
// 
// 	public void setExifDegrees(int exifDegrees) {
// 		mExifDegrees = exifDegrees;
// 	}
// 
// 	public void setExifTranslation(int exifTranslation) {
// 		mExifTranslation = exifTranslation;
// 	}
// 
// 	@Override
// 	public boolean equals(Object o) {
// 		if(this == o)
// 			return true;
// 		if(o == null || getClass() != o.getClass())
// 			return false;
// 
// 		ExifInfo exifInfo = (ExifInfo) o;
// 
// 		if(mExifOrientation != exifInfo.mExifOrientation)
// 			return false;
// 		if(mExifDegrees != exifInfo.mExifDegrees)
// 			return false;
// 		return mExifTranslation == exifInfo.mExifTranslation;
// 
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		int result = mExifOrientation;
// 		result = 31 * result + mExifDegrees;
// 		result = 31 * result + mExifTranslation;
// 		return result;
// 	}
// 
// }


// Path: app/src/main/java/com/wonderful/ishow/util/BitmapLoadTask.java
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.ParcelFileDescriptor;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.util.Log;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.wonderful.ishow.bean.ExifInfo;

package com.wonderful.ishow.util;




/**
 * Creates and returns a Bitmap for a given Uri(String url). inSampleSize is calculated based on
 * requiredWidth property. However can be adjusted if OOM occurs. If any EXIF config is found -
 * bitmap is transformed properly.
 */
public class BitmapLoadTask extends AsyncTask<Void, Void, BitmapLoadTask.BitmapWorkerResult> {

	private static final String TAG = BitmapLoadTask.class.getSimpleName();

	public interface BitmapLoadCallback {

		void onBitmapLoaded(@NonNull Bitmap bitmap, @NonNull ExifInfo exifInfo, @NonNull String imageInputPath,