Source code
package android.support.v4.print;
import android.content.Context;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build.VERSION;
import java.io.FileNotFoundException;
public final class PrintHelper {
public static final int COLOR_MODE_COLOR = 2;
public static final int COLOR_MODE_MONOCHROME = 1;
public static final int ORIENTATION_LANDSCAPE = 1;
public static final int ORIENTATION_PORTRAIT = 2;
public static final int SCALE_MODE_FILL = 2;
public static final int SCALE_MODE_FIT = 1;
PrintHelperVersionImpl mImpl;
public interface OnPrintFinishCallback {
void onFinish();
}
interface PrintHelperVersionImpl {
int getColorMode();
int getOrientation();
int getScaleMode();
void printBitmap(String str, Bitmap bitmap, OnPrintFinishCallback onPrintFinishCallback);
void printBitmap(String str, Uri uri, OnPrintFinishCallback onPrintFinishCallback) throws FileNotFoundException;
void setColorMode(int i);
void setOrientation(int i);
void setScaleMode(int i);
}
private static final class PrintHelperKitkatImpl implements PrintHelperVersionImpl {
private final PrintHelperKitkat mPrintHelper;
PrintHelperKitkatImpl(Context context) {
this.mPrintHelper = new PrintHelperKitkat(context);
}
public void setScaleMode(int scaleMode) {
this.mPrintHelper.setScaleMode(scaleMode);
}
public int getScaleMode() {
return this.mPrintHelper.getScaleMode();
}
public void setColorMode(int colorMode) {
this.mPrintHelper.setColorMode(colorMode);
}
public int getColorMode() {
return this.mPrintHelper.getColorMode();
}
public void setOrientation(int orientation) {
this.mPrintHelper.setOrientation(orientation);
}
public int getOrientation() {
return this.mPrintHelper.getOrientation();
}
public void printBitmap(String jobName, Bitmap bitmap, final OnPrintFinishCallback callback) {
android.support.v4.print.PrintHelperKitkat.OnPrintFinishCallback delegateCallback = null;
if (callback != null) {
delegateCallback = new android.support.v4.print.PrintHelperKitkat.OnPrintFinishCallback() {
public void onFinish() {
callback.onFinish();
}
};
}
this.mPrintHelper.printBitmap(jobName, bitmap, delegateCallback);
}
public void printBitmap(String jobName, Uri imageFile, final OnPrintFinishCallback callback) throws FileNotFoundException {
android.support.v4.print.PrintHelperKitkat.OnPrintFinishCallback delegateCallback = null;
if (callback != null) {
delegateCallback = new android.support.v4.print.PrintHelperKitkat.OnPrintFinishCallback() {
public void onFinish() {
callback.onFinish();
}
};
}
this.mPrintHelper.printBitmap(jobName, imageFile, delegateCallback);
}
}
private static final class PrintHelperStubImpl implements PrintHelperVersionImpl {
int mColorMode;
int mOrientation;
int mScaleMode;
private PrintHelperStubImpl() {
this.mScaleMode = 2;
this.mColorMode = 2;
this.mOrientation = 1;
}
public void setScaleMode(int scaleMode) {
this.mScaleMode = scaleMode;
}
public int getColorMode() {
return this.mColorMode;
}
public void setColorMode(int colorMode) {
this.mColorMode = colorMode;
}
public void setOrientation(int orientation) {
this.mOrientation = orientation;
}
public int getOrientation() {
return this.mOrientation;
}
public int getScaleMode() {
return this.mScaleMode;
}
public void printBitmap(String jobName, Bitmap bitmap, OnPrintFinishCallback callback) {
}
public void printBitmap(String jobName, Uri imageFile, OnPrintFinishCallback callback) {
}
}
public static boolean systemSupportsPrint() {
if (VERSION.SDK_INT >= 19) {
return true;
}
return false;
}
public PrintHelper(Context context) {
if (systemSupportsPrint()) {
this.mImpl = new PrintHelperKitkatImpl(context);
} else {
this.mImpl = new PrintHelperStubImpl();
}
}
public void setScaleMode(int scaleMode) {
this.mImpl.setScaleMode(scaleMode);
}
public int getScaleMode() {
return this.mImpl.getScaleMode();
}
public void setColorMode(int colorMode) {
this.mImpl.setColorMode(colorMode);
}
public int getColorMode() {
return this.mImpl.getColorMode();
}
public void setOrientation(int orientation) {
this.mImpl.setOrientation(orientation);
}
public int getOrientation() {
return this.mImpl.getOrientation();
}
public void printBitmap(String jobName, Bitmap bitmap) {
this.mImpl.printBitmap(jobName, bitmap, null);
}
public void printBitmap(String jobName, Bitmap bitmap, OnPrintFinishCallback callback) {
this.mImpl.printBitmap(jobName, bitmap, callback);
}
public void printBitmap(String jobName, Uri imageFile) throws FileNotFoundException {
this.mImpl.printBitmap(jobName, imageFile, null);
}
public void printBitmap(String jobName, Uri imageFile, OnPrintFinishCallback callback) throws FileNotFoundException {
this.mImpl.printBitmap(jobName, imageFile, callback);
}
}