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