MyDialogActivity.java revision 9981caa9c40383230c2e08fade7cbe03e2d96125
1package foo.bar.printservice;
2
3import android.app.ListActivity;
4import android.os.Bundle;
5import android.print.PrintJobId;
6import android.view.View;
7import android.widget.AdapterView;
8import android.widget.ArrayAdapter;
9
10public class MyDialogActivity extends ListActivity {
11
12    private static final int ITEM_INDEX_PRINT_NOW = 0;
13    private static final int ITEM_INDEX_PRINT_DELAYED = 1;
14    private static final int ITEM_INDEX_FAIL_NOW = 2;
15    private static final int ITEM_INDEX_FAIL_DELAYED = 3;
16    private static final int ITEM_INDEX_BLOCK_NOW = 4;
17    private static final int ITEM_INDEX_BLOCK_DELAYED = 5;
18    private static final int ITEM_INDEX_BLOCK_AND_DELAYED_UNBLOCK = 6;
19    private static final int ITEM_INDEX_PRINT_SLOWLY = 7;
20
21    private static final int ITEM_INDEX_CANCEL_YES = 0;
22
23    @Override
24    protected void onCreate(Bundle savedInstanceState) {
25        super.onCreate(savedInstanceState);
26
27        PrintJobId printJobId = getIntent().getParcelableExtra(
28                MyPrintService.INTENT_EXTRA_PRINT_JOB_ID);
29        final int actionType = getIntent().getIntExtra(MyPrintService.INTENT_EXTRA_ACTION_TYPE,
30                MyPrintService.ACTION_TYPE_ON_PRINT_JOB_PENDING);
31
32        if (actionType == MyPrintService.ACTION_TYPE_ON_PRINT_JOB_PENDING) {
33            createActionTypeOnPrintJobPendingUi(printJobId);
34        } else {
35            createActionTypeOnReqeustCancelPrintJobUi(printJobId);
36        }
37    }
38
39    private void createActionTypeOnPrintJobPendingUi(final PrintJobId printJobId) {
40        setTitle(getString(R.string.on_print_job_pending_activity_title));
41
42        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
43                getResources().getStringArray(R.array.on_print_job_queued_actions)));
44        getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
45            @Override
46            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
47                switch (position) {
48                    case ITEM_INDEX_PRINT_NOW: {
49                        MyPrintService.peekInstance().handleQueuedPrintJob(printJobId);
50                        finish();
51                    } break;
52
53                    case ITEM_INDEX_PRINT_DELAYED: {
54                        MyPrintService.peekInstance().handleQueuedPrintJobDelayed(printJobId);
55                        finish();
56                    } break;
57
58                    case ITEM_INDEX_FAIL_NOW: {
59                        MyPrintService.peekInstance().handleFailPrintJob(printJobId);
60                        finish();
61                    } break;
62
63                    case ITEM_INDEX_FAIL_DELAYED: {
64                        MyPrintService.peekInstance().handleFailPrintJobDelayed(printJobId);
65                        finish();
66                    } break;
67
68                    case ITEM_INDEX_BLOCK_NOW: {
69                        MyPrintService.peekInstance().handleBlockPrintJob(printJobId);
70                        finish();
71                    } break;
72
73                    case ITEM_INDEX_BLOCK_DELAYED: {
74                        MyPrintService.peekInstance().handleBlockPrintJobDelayed(printJobId);
75                        finish();
76                    } break;
77
78                    case ITEM_INDEX_BLOCK_AND_DELAYED_UNBLOCK: {
79                        MyPrintService.peekInstance().handleBlockAndDelayedUnblockPrintJob(
80                                printJobId);
81                        finish();
82                    } break;
83
84                    case ITEM_INDEX_PRINT_SLOWLY: {
85                        MyPrintService.peekInstance().handlePrintJobProgress(printJobId, 0);
86                        finish();
87                    } break;
88
89                    default: {
90                        finish();
91                    } break;
92                }
93            }
94        });
95    }
96
97    private void createActionTypeOnReqeustCancelPrintJobUi(final PrintJobId printJobId) {
98        setTitle(getString(R.string.on_cancle_print_job_requested_activity_title));
99
100        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
101                getResources().getStringArray(R.array.on_request_cancel_print_job_actions)));
102        getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
103            @Override
104            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
105                switch (position) {
106                    case ITEM_INDEX_CANCEL_YES: {
107                        MyPrintService.peekInstance().handleRequestCancelPrintJob(printJobId);
108                        finish();
109                    } break;
110
111                    default: {
112                        finish();
113                    } break;
114                }
115            }
116        });
117    }
118}
119