diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2013-07-31 19:13:31 -0700 |
---|---|---|
committer | Svetoslav Ganov <svetoslavganov@google.com> | 2013-07-31 19:14:29 -0700 |
commit | 282209e42c32d712fd5685f283047d84e813297e (patch) | |
tree | eefb186d1b44135a31d00cff83f5ce4366825e97 | |
parent | ecaec06dfbaa011676c37f5f6170b984da5c6a5e (diff) | |
download | experimental-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.java | 157 | ||||
-rw-r--r-- | PrintService2/src/foo/bar/printservice2/MyPrintService.java | 6 |
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 { |