aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2013-07-31 19:13:31 -0700
committerSvetoslav Ganov <svetoslavganov@google.com>2013-07-31 19:14:29 -0700
commit282209e42c32d712fd5685f283047d84e813297e (patch)
treeeefb186d1b44135a31d00cff83f5ce4366825e97
parentecaec06dfbaa011676c37f5f6170b984da5c6a5e (diff)
downloadexperimental-282209e42c32d712fd5685f283047d84e813297e.tar.gz
Adding lazy population of printer capabilities - test the new APIs.
Change-Id: Id5865ee84cbad8faf7d830a3e6dc8e03d7d85294
-rw-r--r--PrintService/src/foo/bar/printservice/MyPrintService.java157
-rw-r--r--PrintService2/src/foo/bar/printservice2/MyPrintService.java6
2 files changed, 96 insertions, 67 deletions
diff --git a/PrintService/src/foo/bar/printservice/MyPrintService.java b/PrintService/src/foo/bar/printservice/MyPrintService.java
index 5bb6661..435e30e 100644
--- a/PrintService/src/foo/bar/printservice/MyPrintService.java
+++ b/PrintService/src/foo/bar/printservice/MyPrintService.java
@@ -39,6 +39,16 @@ public class MyPrintService extends PrintService {
private Handler mHandler;
+ private PrinterId mFirstFakePrinterId;
+
+ private PrinterId mSecondFakePrinterId;
+
+ @Override
+ public void onCreate() {
+ mFirstFakePrinterId = generatePrinterId("1");
+ mSecondFakePrinterId = generatePrinterId("2");
+ }
+
@Override
protected void onConnected() {
mHandler = new MyHandler(getMainLooper());
@@ -68,6 +78,87 @@ public class MyPrintService extends PrintService {
}
@Override
+ protected void onRequestUpdatePrinters(List<PrinterId> printerIds) {
+ List<PrinterInfo> udpatedPrinters = new ArrayList<PrinterInfo>();
+ final int printerIdCount = printerIds.size();
+ for (int i = 0; i < printerIdCount; i++) {
+ PrinterId printerId = printerIds.get(i);
+ if (printerId.equals(mFirstFakePrinterId)) {
+ PrinterInfo printer = new PrinterInfo.Builder(printerId, "Printer 1")
+ .setStatus(PrinterInfo.STATUS_READY)
+ .setMinMargins(new Margins(0, 0, 0, 0), new Margins(0, 0, 0, 0))
+ .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
+ MediaSize.ISO_A2), true)
+ .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
+ MediaSize.ISO_A3), false)
+ .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
+ MediaSize.ISO_A4), false)
+ .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
+ MediaSize.NA_LETTER), false)
+ .addResolution(new Resolution("R1", getString(
+ R.string.resolution_600x600), 600, 600), true)
+ .addInputTray(new Tray("FirstInputTray", getString(
+ R.string.input_tray_first)), false)
+ .addOutputTray(new Tray("FirstOutputTray", getString(
+ R.string.output_tray_first)), false)
+ .setDuplexModes(PrintAttributes.DUPLEX_MODE_NONE
+ | PrintAttributes.DUPLEX_MODE_LONG_EDGE
+ | PrintAttributes.DUPLEX_MODE_SHORT_EDGE,
+ PrintAttributes.DUPLEX_MODE_NONE)
+ .setColorModes(PrintAttributes.COLOR_MODE_COLOR
+ | PrintAttributes.COLOR_MODE_MONOCHROME,
+ PrintAttributes.COLOR_MODE_COLOR)
+ .setFittingModes(PrintAttributes.FITTING_MODE_NONE
+ | PrintAttributes.FITTING_MODE_FIT_TO_PAGE,
+ PrintAttributes.FITTING_MODE_NONE)
+ .setOrientations(PrintAttributes.ORIENTATION_PORTRAIT
+ | PrintAttributes.ORIENTATION_LANDSCAPE,
+ PrintAttributes.ORIENTATION_PORTRAIT)
+ .create();
+ udpatedPrinters.add(printer);
+ } else if (printerId.equals(mSecondFakePrinterId)) {
+ PrinterInfo printer = new PrinterInfo.Builder(printerId, "Printer 2")
+ .setStatus(PrinterInfo.STATUS_READY)
+ .setMinMargins(new Margins(0, 0, 0, 0), new Margins(0, 0, 0, 0))
+ .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
+ MediaSize.ISO_A4), true)
+ .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
+ MediaSize.ISO_A5), false)
+ .addResolution(new Resolution("R1", getString(
+ R.string.resolution_200x200), 200, 200), true)
+ .addResolution(new Resolution("R2", getString(
+ R.string.resolution_300x300), 300, 300), false)
+ .addInputTray(new Tray("FirstInputTray", getString(
+ R.string.input_tray_first)), false)
+ .addInputTray(new Tray("SecondInputTray", getString(
+ R.string.input_tray_second)), true)
+ .addOutputTray(new Tray("FirstOutputTray", getString(
+ R.string.output_tray_first)), false)
+ .addOutputTray(new Tray("SecondOutputTray", getString(
+ R.string.output_tray_second)), true)
+ .setDuplexModes(PrintAttributes.DUPLEX_MODE_NONE
+ | PrintAttributes.DUPLEX_MODE_LONG_EDGE
+ | PrintAttributes.DUPLEX_MODE_SHORT_EDGE,
+ PrintAttributes.DUPLEX_MODE_SHORT_EDGE)
+ .setColorModes(PrintAttributes.COLOR_MODE_COLOR
+ | PrintAttributes.COLOR_MODE_MONOCHROME,
+ PrintAttributes.COLOR_MODE_MONOCHROME)
+ .setFittingModes(PrintAttributes.FITTING_MODE_FIT_TO_PAGE
+ | PrintAttributes.FITTING_MODE_NONE,
+ PrintAttributes.FITTING_MODE_FIT_TO_PAGE)
+ .setOrientations(PrintAttributes.ORIENTATION_PORTRAIT
+ | PrintAttributes.ORIENTATION_LANDSCAPE,
+ PrintAttributes.ORIENTATION_LANDSCAPE)
+ .create();
+ udpatedPrinters.add(printer);
+ }
+ if (!udpatedPrinters.isEmpty()) {
+ updateDiscoveredPrinters(udpatedPrinters);
+ }
+ }
+ }
+
+ @Override
public void onPrintJobQueued(final PrintJob printJob) {
Log.i(LOG_TAG, "#onPrintJobQueued()");
PrintJobInfo info = printJob.getInfo();
@@ -137,37 +228,7 @@ public class MyPrintService extends PrintService {
private void addFirstFakePrinter() {
PrinterId printerId = generatePrinterId("1");
- PrinterInfo printer = new PrinterInfo.Builder(printerId, "Printer 1")
- .setStatus(PrinterInfo.STATUS_READY)
- .setMinMargins(new Margins(0, 0, 0, 0), new Margins(0, 0, 0, 0))
- .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
- MediaSize.ISO_A2), true)
- .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
- MediaSize.ISO_A3), false)
- .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
- MediaSize.ISO_A4), false)
- .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
- MediaSize.NA_LETTER), false)
- .addResolution(new Resolution("R1", getString(
- R.string.resolution_600x600), 600, 600), true)
- .addInputTray(new Tray("FirstInputTray", getString(
- R.string.input_tray_first)), false)
- .addOutputTray(new Tray("FirstOutputTray", getString(
- R.string.output_tray_first)), false)
- .setDuplexModes(PrintAttributes.DUPLEX_MODE_NONE
- | PrintAttributes.DUPLEX_MODE_LONG_EDGE
- | PrintAttributes.DUPLEX_MODE_SHORT_EDGE,
- PrintAttributes.DUPLEX_MODE_NONE)
- .setColorModes(PrintAttributes.COLOR_MODE_COLOR
- | PrintAttributes.COLOR_MODE_MONOCHROME,
- PrintAttributes.COLOR_MODE_COLOR)
- .setFittingModes(PrintAttributes.FITTING_MODE_NONE
- | PrintAttributes.FITTING_MODE_FIT_TO_PAGE,
- PrintAttributes.FITTING_MODE_NONE)
- .setOrientations(PrintAttributes.ORIENTATION_PORTRAIT
- | PrintAttributes.ORIENTATION_LANDSCAPE,
- PrintAttributes.ORIENTATION_PORTRAIT)
- .create();
+ PrinterInfo printer = new PrinterInfo.Builder(printerId, "Printer 1").create();
List<PrinterInfo> printers = new ArrayList<PrinterInfo>();
printers.add(printer);
addDiscoveredPrinters(printers);
@@ -175,39 +236,7 @@ public class MyPrintService extends PrintService {
private void addSecondFakePrinter() {
PrinterId printerId = generatePrinterId("2");
- PrinterInfo printer = new PrinterInfo.Builder(printerId, "Printer 2")
- .setStatus(PrinterInfo.STATUS_READY)
- .setMinMargins(new Margins(0, 0, 0, 0), new Margins(0, 0, 0, 0))
- .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
- MediaSize.ISO_A4), true)
- .addMediaSize(MediaSize.createMediaSize(getPackageManager(),
- MediaSize.ISO_A5), false)
- .addResolution(new Resolution("R1", getString(
- R.string.resolution_200x200), 200, 200), true)
- .addResolution(new Resolution("R2", getString(
- R.string.resolution_300x300), 300, 300), false)
- .addInputTray(new Tray("FirstInputTray", getString(
- R.string.input_tray_first)), false)
- .addInputTray(new Tray("SecondInputTray", getString(
- R.string.input_tray_second)), true)
- .addOutputTray(new Tray("FirstOutputTray", getString(
- R.string.output_tray_first)), false)
- .addOutputTray(new Tray("SecondOutputTray", getString(
- R.string.output_tray_second)), true)
- .setDuplexModes(PrintAttributes.DUPLEX_MODE_NONE
- | PrintAttributes.DUPLEX_MODE_LONG_EDGE
- | PrintAttributes.DUPLEX_MODE_SHORT_EDGE,
- PrintAttributes.DUPLEX_MODE_SHORT_EDGE)
- .setColorModes(PrintAttributes.COLOR_MODE_COLOR
- | PrintAttributes.COLOR_MODE_MONOCHROME,
- PrintAttributes.COLOR_MODE_MONOCHROME)
- .setFittingModes(PrintAttributes.FITTING_MODE_FIT_TO_PAGE
- | PrintAttributes.FITTING_MODE_NONE,
- PrintAttributes.FITTING_MODE_FIT_TO_PAGE)
- .setOrientations(PrintAttributes.ORIENTATION_PORTRAIT
- | PrintAttributes.ORIENTATION_LANDSCAPE,
- PrintAttributes.ORIENTATION_LANDSCAPE)
- .create();
+ PrinterInfo printer = new PrinterInfo.Builder(printerId, "Printer 2").create();
List<PrinterInfo> printers = new ArrayList<PrinterInfo>();
printers.add(printer);
addDiscoveredPrinters(printers);
diff --git a/PrintService2/src/foo/bar/printservice2/MyPrintService.java b/PrintService2/src/foo/bar/printservice2/MyPrintService.java
index 8a4227a..ffc91fa 100644
--- a/PrintService2/src/foo/bar/printservice2/MyPrintService.java
+++ b/PrintService2/src/foo/bar/printservice2/MyPrintService.java
@@ -121,7 +121,7 @@ public class MyPrintService extends PrintService {
PrintJobInfo info = printJob.getInfo();
Toast.makeText(MyPrintService.this,
- "Printer: " + info.getPrinterId().getLocalId()
+ "Printer: " + info.getPrinterId().getName()
+ " copies: " + info.getAttributes().getCopies(),
Toast.LENGTH_SHORT).show();
@@ -166,7 +166,7 @@ public class MyPrintService extends PrintService {
.create();
List<PrinterInfo> printers = new ArrayList<PrinterInfo>();
printers.add(printer);
- addDiscoveredPrinters(printers);
+ addPrinters(printers);
}
private void addSecondFakePrinter() {
@@ -204,7 +204,7 @@ public class MyPrintService extends PrintService {
.create();
List<PrinterInfo> printers = new ArrayList<PrinterInfo>();
printers.add(printer);
- addDiscoveredPrinters(printers);
+ addPrinters(printers);
}
private final class MyHandler extends Handler {