192ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslavpackage foo.bar.printservice;
292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslavimport android.app.ListActivity;
492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslavimport android.os.Bundle;
5d71923289a0709ab46a5f1ea525eb1f998ba0ea5Svetoslav Ganovimport android.print.PrintJobId;
692ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslavimport android.view.View;
792ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslavimport android.widget.AdapterView;
892ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslavimport android.widget.ArrayAdapter;
992ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
1092ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslavpublic class MyDialogActivity extends ListActivity {
1192ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
1292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    private static final int ITEM_INDEX_PRINT_NOW = 0;
1392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    private static final int ITEM_INDEX_PRINT_DELAYED = 1;
1492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    private static final int ITEM_INDEX_FAIL_NOW = 2;
1592ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    private static final int ITEM_INDEX_FAIL_DELAYED = 3;
16d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov    private static final int ITEM_INDEX_BLOCK_NOW = 4;
17d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov    private static final int ITEM_INDEX_BLOCK_DELAYED = 5;
18d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov    private static final int ITEM_INDEX_BLOCK_AND_DELAYED_UNBLOCK = 6;
1992ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
2092ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    private static final int ITEM_INDEX_CANCEL_YES = 0;
2192ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
2292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    @Override
2392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    protected void onCreate(Bundle savedInstanceState) {
2492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        super.onCreate(savedInstanceState);
2592ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
26d71923289a0709ab46a5f1ea525eb1f998ba0ea5Svetoslav Ganov        PrintJobId printJobId = getIntent().getParcelableExtra(
27d71923289a0709ab46a5f1ea525eb1f998ba0ea5Svetoslav Ganov                MyPrintService.INTENT_EXTRA_PRINT_JOB_ID);
2892ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        final int actionType = getIntent().getIntExtra(MyPrintService.INTENT_EXTRA_ACTION_TYPE,
2992ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                MyPrintService.ACTION_TYPE_ON_PRINT_JOB_PENDING);
3092ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
3192ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        if (actionType == MyPrintService.ACTION_TYPE_ON_PRINT_JOB_PENDING) {
3292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav            createActionTypeOnPrintJobPendingUi(printJobId);
3392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        } else {
3492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav            createActionTypeOnReqeustCancelPrintJobUi(printJobId);
3592ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        }
3692ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    }
3792ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
38d71923289a0709ab46a5f1ea525eb1f998ba0ea5Svetoslav Ganov    private void createActionTypeOnPrintJobPendingUi(final PrintJobId printJobId) {
3992ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        setTitle(getString(R.string.on_print_job_pending_activity_title));
4092ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
4192ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
4292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                getResources().getStringArray(R.array.on_print_job_queued_actions)));
4392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
4492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav            @Override
4592ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
4692ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                switch (position) {
4792ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    case ITEM_INDEX_PRINT_NOW: {
4892ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        MyPrintService.peekInstance().handleQueuedPrintJob(printJobId);
4992ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        finish();
5092ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    } break;
5192ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
5292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    case ITEM_INDEX_PRINT_DELAYED: {
5392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        MyPrintService.peekInstance().handleQueuedPrintJobDelayed(printJobId);
5492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        finish();
5592ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    } break;
5692ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
5792ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    case ITEM_INDEX_FAIL_NOW: {
5892ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        MyPrintService.peekInstance().handleFailPrintJob(printJobId);
5992ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        finish();
6092ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    } break;
6192ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
6292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    case ITEM_INDEX_FAIL_DELAYED: {
6392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        MyPrintService.peekInstance().handleFailPrintJobDelayed(printJobId);
6492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        finish();
6592ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    } break;
6692ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
67d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                    case ITEM_INDEX_BLOCK_NOW: {
68d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                        MyPrintService.peekInstance().handleBlockPrintJob(printJobId);
69d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                        finish();
70d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                    } break;
71d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov
72d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                    case ITEM_INDEX_BLOCK_DELAYED: {
73d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                        MyPrintService.peekInstance().handleBlockPrintJobDelayed(printJobId);
74d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                        finish();
75d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                    } break;
76d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov
77d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                    case ITEM_INDEX_BLOCK_AND_DELAYED_UNBLOCK: {
78d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                        MyPrintService.peekInstance().handleBlockAndDelayedUnblockPrintJob(
79d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                                printJobId);
80d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                        finish();
81d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov                    } break;
82d4749f7e87021f43fb9b93c7cececd1c25a640a2Svetoslav Ganov
8392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    default: {
8492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        finish();
8592ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    } break;
8692ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                }
8792ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav            }
8892ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        });
8992ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    }
9092ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
91d71923289a0709ab46a5f1ea525eb1f998ba0ea5Svetoslav Ganov    private void createActionTypeOnReqeustCancelPrintJobUi(final PrintJobId printJobId) {
9292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        setTitle(getString(R.string.on_cancle_print_job_requested_activity_title));
9392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
9492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
9592ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                getResources().getStringArray(R.array.on_request_cancel_print_job_actions)));
9692ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
9792ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav            @Override
9892ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
9992ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                switch (position) {
10092ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    case ITEM_INDEX_CANCEL_YES: {
10192ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        MyPrintService.peekInstance().handleRequestCancelPrintJob(printJobId);
10292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        finish();
10392ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    } break;
10492ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav
10592ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    default: {
10692ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                        finish();
10792ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                    } break;
10892ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav                }
10992ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav            }
11092ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav        });
11192ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav    }
11292ee8105683fe2c1483e8e2cb10e6be3e762f9f5Svetoslav}
113