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

Commit 265a099c authored by Svetoslav's avatar Svetoslav Committed by Android (Google) Code Review
Browse files

Merge "Add APIs for an advanced print options activity." into klp-dev

parents a41d7d9c 1c43fcea
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -267,6 +267,7 @@ package android {
    field public static final int addPrintersActivity = 16843750; // 0x10103e6
    field public static final int addStatesFromChildren = 16842992; // 0x10100f0
    field public static final int adjustViewBounds = 16843038; // 0x101011e
    field public static final int advancedPrintOptionsActivity = 16843761; // 0x10103f1
    field public static final int alertDialogIcon = 16843605; // 0x1010355
    field public static final int alertDialogStyle = 16842845; // 0x101005d
    field public static final int alertDialogTheme = 16843529; // 0x1010309
@@ -19013,6 +19014,16 @@ package android.print {
    field public static final int STATE_STARTED = 3; // 0x3
  }
  public static final class PrintJobInfo.Builder {
    ctor public PrintJobInfo.Builder(android.print.PrintJobInfo);
    method public android.print.PrintJobInfo build();
    method public void putAdvancedOption(java.lang.String, java.lang.String);
    method public void putAdvancedOption(java.lang.String, int);
    method public void setAttributes(android.print.PrintAttributes);
    method public void setCopies(int);
    method public void setPages(android.print.PageRange[]);
  }
  public final class PrintManager {
    method public java.util.List<android.print.PrintJob> getPrintJobs();
    method public android.print.PrintJob print(java.lang.String, android.print.PrintDocumentAdapter, android.print.PrintAttributes);
@@ -19095,10 +19106,13 @@ package android.printservice {
    method public boolean cancel();
    method public boolean complete();
    method public boolean fail(java.lang.String);
    method public int getAdvancedIntOption(java.lang.String);
    method public java.lang.String getAdvancedStringOption(java.lang.String);
    method public android.printservice.PrintDocument getDocument();
    method public android.print.PrintJobId getId();
    method public android.print.PrintJobInfo getInfo();
    method public java.lang.String getTag();
    method public boolean hasAdvancedOption(java.lang.String);
    method public boolean isBlocked();
    method public boolean isCancelled();
    method public boolean isCompleted();
@@ -19120,6 +19134,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_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";
  }
+76 −1
Original line number Diff line number Diff line
@@ -439,7 +439,7 @@ public final class PrintJobInfo implements Parcelable {
    /**
     * Sets the included pages.
     *
     * @return The included pages.
     * @param pageRanges The included pages.
     *
     * @hide
     */
@@ -601,6 +601,81 @@ public final class PrintJobInfo implements Parcelable {
        }
    }

    /**
     * Builder for creating a {@link PrintJobInfo}.
     */
    public static final class Builder {
        private final PrintJobInfo mPrototype;

        /**
         * Constructor.
         *
         * @param prototype Prototype to use as a starting point.
         * Can be null.
         */
        public Builder(PrintJobInfo prototype) {
            mPrototype = (prototype != null)
                    ? new PrintJobInfo(prototype)
                    : new PrintJobInfo();
        }

        /**
         * Sets the number of copies.
         *
         * @param copies The number of copies.
         */
        public void setCopies(int copies) {
            mPrototype.mCopies = copies;
        }

        /**
         * Sets the print job attributes.
         *
         * @param attributes The attributes.
         */
        public void setAttributes(PrintAttributes attributes) {
            mPrototype.mAttributes = attributes;
        }

        /**
         * Sets the included pages.
         *
         * @param pages The included pages.
         */
        public void setPages(PageRange[] pages) {
            mPrototype.mPageRanges = pages;
        }

        /**
         * Puts an advanced (printer specific) option.
         *
         * @param key The option key.
         * @param value The option value.
         */
        public void putAdvancedOption(String key, String value) {

        }

        /**
         * Puts an advanced (printer specific) option.
         *
         * @param key The option key.
         * @param value The option value.
         */
        public void putAdvancedOption(String key, int value) {

        }

        /**
         * Creates a new {@link PrintJobInfo} instance.
         *
         * @return The new instance.
         */
        public PrintJobInfo build() {
            return mPrototype;
        }
    }

    public static final Parcelable.Creator<PrintJobInfo> CREATOR =
            new Creator<PrintJobInfo>() {
        @Override
+35 −1
Original line number Diff line number Diff line
@@ -304,7 +304,7 @@ public final class PrintJob {
    /**
     * Gets the print job tag.
     *
     * @return tag The tag or null.
     * @return The tag or null.
     *
     * @see #setTag(String)
     */
@@ -313,6 +313,40 @@ public final class PrintJob {
        return getInfo().getTag();
    }

    /**
     * Gets the value of an advanced (printer specific) print option.
     *
     * @param key The option key.
     * @return The option value.
     */
    public String getAdvancedStringOption(String key) {
        PrintService.throwIfNotCalledOnMainThread();
        return null;
    }

    /**
     * Gets whether this job has a given advanced (printer specific) print
     * option.
     *
     * @param key The option key.
     * @return Whether the option is present.
     */
    public boolean hasAdvancedOption(String key) {
        PrintService.throwIfNotCalledOnMainThread();
        return false;
    }

    /**
     * Gets the value of an advanced (printer specific) print option.
     *
     * @param key The option key.
     * @return The option value.
     */
    public int getAdvancedIntOption(String key) {
        PrintService.throwIfNotCalledOnMainThread();
        return 0;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
+23 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.printservice;

import android.R;
import android.app.Service;
import android.content.ComponentName;
import android.content.Context;
@@ -189,6 +190,28 @@ public abstract class PrintService extends Service {
     */
    public static final String SERVICE_META_DATA = "android.printservice";

    /**
     * If you declared an optional activity with advanced print options via the
     * {@link R.attr#advancedPrintOptionsActivity advancedPrintOptionsActivity}
     * attribute, this extra is used to pass in the currently constructed {@link
     * PrintJobInfo} to your activity allowing you to modify it. After you are
     * done, you must return the modified {@link PrintJobInfo} via the same extra.
     * <p>
     * You cannot modify the passed in {@link PrintJobInfo} directly, rather you
     * should build another one using the {@link PrintJobInfo.Builder} class. You
     * can specify any standard properties and add advanced, printer specific,
     * ones via {@link PrintJobInfo.Builder#putAdvancedOption(String, String)
     * PrintJobInfo.Builder#putAdvancedOption(String, String)} and {@link
     * PrintJobInfo.Builder#putAdvancedOption(String, int)
     * PrintJobInfo.Builder#putAdvancedOption(String, int)}. The advanced options
     * are not interpreted by the system, they will not be visible to applications,
     * and can only be accessed by your print service via {@link
     * PrintJob#getAdvancedStringOption(String) PrintJob.getAdvancedStringOption(String)}
     * and {@link PrintJob#getAdvancedIntOption(String) PrintJob.getAdvancedIntOption(String)}.
     * </p>
     */
    public static final String EXTRA_PRINT_JOB_INFO = "android.intent.extra.print.PRINT_JOB_INFO";

    private Handler mHandler;

    private IPrintServiceClient mClient;
+3 −0
Original line number Diff line number Diff line
@@ -2621,6 +2621,9 @@
        <!-- Fully qualified class name of an activity that allows the user to manually
             add printers to this print service. -->
        <attr name="addPrintersActivity" format="string"/>
        <!-- Fully qualified class name of an activity with advanced print options
             specific to this print service. -->
        <attr name="advancedPrintOptionsActivity" format="string"/>
        <!-- The vendor name if this print service is vendor specific. -->
        <attr name="vendor" format="string"/>
    </declare-styleable>
Loading