Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a798c0a9 authored by Svetoslav's avatar Svetoslav Committed by svetoslavganov
Browse files

Refactor printing

Change-Id: I19850154ef2798afff511e4490a268ce38e8cbae
parent 67a0ed00
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -22498,6 +22498,7 @@ package android.printservice {
    method protected void onDisconnected();
    method protected abstract void onPrintJobQueued(android.printservice.PrintJob);
    method protected abstract void onRequestCancelPrintJob(android.printservice.PrintJob);
    field public static final java.lang.String EXTRA_PRINTER_INFO = "android.intent.extra.print.PRINTER_INFO";
    field public static final java.lang.String EXTRA_PRINT_JOB_INFO = "android.intent.extra.print.PRINT_JOB_INFO";
    field public static final java.lang.String SERVICE_INTERFACE = "android.printservice.PrintService";
    field public static final java.lang.String SERVICE_META_DATA = "android.printservice";
+3 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.print;

import android.os.ICancellationSignal;
import android.print.PrintDocumentInfo;

/**
@@ -24,6 +25,8 @@ import android.print.PrintDocumentInfo;
 * @hide
 */
oneway interface ILayoutResultCallback {
    void onLayoutStarted(ICancellationSignal cancellation, int sequence);
    void onLayoutFinished(in PrintDocumentInfo info, boolean changed, int sequence);
    void onLayoutFailed(CharSequence error, int sequence);
    void onLayoutCanceled(int sequence);
}
+0 −1
Original line number Diff line number Diff line
@@ -37,5 +37,4 @@ oneway interface IPrintDocumentAdapter {
    void write(in PageRange[] pages, in ParcelFileDescriptor fd,
            IWriteResultCallback callback, int sequence);
    void finish();
    void cancel();
}
+3 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.print;

import android.os.ICancellationSignal;
import android.print.PageRange;

/**
@@ -24,6 +25,8 @@ import android.print.PageRange;
 * @hide
 */
oneway interface IWriteResultCallback {
    void onWriteStarted(ICancellationSignal cancellation, int sequence);
    void onWriteFinished(in PageRange[] pages, int sequence);
    void onWriteFailed(CharSequence error, int sequence);
    void onWriteCanceled(int sequence);
}
+99 −0
Original line number Diff line number Diff line
@@ -151,6 +151,105 @@ public final class PrintAttributes implements Parcelable {
        mColorMode = colorMode;
    }

    /**
     * Gets whether this print attributes are in portrait orientation,
     * which is the media size is in portrait and all orientation dependent
     * attributes such as resolution and margins are properly adjusted.
     *
     * @return Whether this print attributes are in portrait.
     *
     * @hide
     */
    public boolean isPortrait() {
        return mMediaSize.isPortrait();
    }

    /**
     * Gets a new print attributes instance which is in portrait orientation,
     * which is the media size is in portrait and all orientation dependent
     * attributes such as resolution and margins are properly adjusted.
     *
     * @return New instance in portrait orientation if this one is in
     * landscape, otherwise this instance.
     *
     * @hide
     */
    public PrintAttributes asPortrait() {
        if (isPortrait()) {
            return this;
        }

        PrintAttributes attributes = new PrintAttributes();

        // Rotate the media size.
        attributes.setMediaSize(getMediaSize().asPortrait());

        // Rotate the resolution.
        Resolution oldResolution = getResolution();
        Resolution newResolution = new Resolution(
                oldResolution.getId(),
                oldResolution.getLabel(),
                oldResolution.getVerticalDpi(),
                oldResolution.getHorizontalDpi());
        attributes.setResolution(newResolution);

        // Rotate the physical margins.
        Margins oldMinMargins = getMinMargins();
        Margins newMinMargins = new Margins(
                oldMinMargins.getBottomMils(),
                oldMinMargins.getLeftMils(),
                oldMinMargins.getTopMils(),
                oldMinMargins.getRightMils());
        attributes.setMinMargins(newMinMargins);

        attributes.setColorMode(getColorMode());

        return attributes;
    }

    /**
     * Gets a new print attributes instance which is in landscape orientation,
     * which is the media size is in landscape and all orientation dependent
     * attributes such as resolution and margins are properly adjusted.
     *
     * @return New instance in landscape orientation if this one is in
     * portrait, otherwise this instance.
     *
     * @hide
     */
    public PrintAttributes asLandscape() {
        if (!isPortrait()) {
            return this;
        }

        PrintAttributes attributes = new PrintAttributes();

        // Rotate the media size.
        attributes.setMediaSize(getMediaSize().asLandscape());

        // Rotate the resolution.
        Resolution oldResolution = getResolution();
        Resolution newResolution = new Resolution(
                oldResolution.getId(),
                oldResolution.getLabel(),
                oldResolution.getVerticalDpi(),
                oldResolution.getHorizontalDpi());
        attributes.setResolution(newResolution);

        // Rotate the physical margins.
        Margins oldMinMargins = getMinMargins();
        Margins newMargins = new Margins(
                oldMinMargins.getTopMils(),
                oldMinMargins.getRightMils(),
                oldMinMargins.getBottomMils(),
                oldMinMargins.getLeftMils());
        attributes.setMinMargins(newMargins);

        attributes.setColorMode(getColorMode());

        return attributes;
    }

    @Override
    public void writeToParcel(Parcel parcel, int flags) {
        if (mMediaSize != null) {
Loading