1package foo.bar.printservice;
2
3import android.app.Activity;
4import android.content.Intent;
5import android.os.Bundle;
6import android.os.Handler;
7import android.print.PageRange;
8import android.print.PrintAttributes;
9import android.print.PrintAttributes.MediaSize;
10import android.print.PrintJobInfo;
11import android.print.PrinterCapabilitiesInfo;
12import android.print.PrinterInfo;
13import android.printservice.PrintService;
14
15public class CustomPrintOptionsActivity extends Activity {
16
17    @Override
18    protected void onCreate(Bundle savedInstanceState) {
19        super.onCreate(savedInstanceState);
20    }
21
22    @Override
23    public void onResume() {
24        super.onResume();
25
26        PrintJobInfo printJobInfo = (PrintJobInfo) getIntent().getParcelableExtra(
27                PrintService.EXTRA_PRINT_JOB_INFO);
28        PrinterInfo printerInfo = (PrinterInfo) getIntent().getParcelableExtra(
29                "android.intent.extra.print.EXTRA_PRINTER_INFO");
30
31        PrinterCapabilitiesInfo capabilities = printerInfo.getCapabilities();
32
33        PrintAttributes attributes = new PrintAttributes.Builder()
34                .setColorMode(PrintAttributes.COLOR_MODE_MONOCHROME)
35                .setMediaSize(MediaSize.ISO_A5)
36                .setResolution(capabilities.getResolutions().get(0))
37                .build();
38
39        PrintJobInfo.Builder builder = new PrintJobInfo.Builder(printJobInfo);
40        builder.setAttributes(attributes);
41        builder.setCopies(2);
42        builder.setAttributes(attributes);
43        builder.setPages(new PageRange[] {new PageRange(1, 1), new PageRange(3, 3)});
44        builder.putAdvancedOption("EXTRA_FIRST_ADVANCED_OPTION", "OPALA");
45        builder.putAdvancedOption("EXTRA_SECOND_ADVANCED_OPTION", 1);
46
47        PrintJobInfo newPrintJobInfo = builder.build();
48
49        Intent result = new Intent();
50        result.putExtra(PrintService.EXTRA_PRINT_JOB_INFO, newPrintJobInfo);
51        setResult(Activity.RESULT_OK, result);
52
53        finish();
54    }
55}
56