16fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslavpackage foo.bar.printservice;
26fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
36fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslavimport android.app.ListActivity;
46fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslavimport android.os.Bundle;
5f11598332008fd706ed17be975a0ff73ba7f6a21Svetoslav Ganovimport android.print.PrintJobId;
66fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslavimport android.view.View;
76fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslavimport android.widget.AdapterView;
86fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslavimport android.widget.ArrayAdapter;
96fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
106fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslavpublic class MyDialogActivity extends ListActivity {
116fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
126fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    private static final int ITEM_INDEX_PRINT_NOW = 0;
136fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    private static final int ITEM_INDEX_PRINT_DELAYED = 1;
146fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    private static final int ITEM_INDEX_FAIL_NOW = 2;
156fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    private static final int ITEM_INDEX_FAIL_DELAYED = 3;
163bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov    private static final int ITEM_INDEX_BLOCK_NOW = 4;
173bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov    private static final int ITEM_INDEX_BLOCK_DELAYED = 5;
183bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov    private static final int ITEM_INDEX_BLOCK_AND_DELAYED_UNBLOCK = 6;
196fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
206fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    private static final int ITEM_INDEX_CANCEL_YES = 0;
216fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
226fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    @Override
236fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    protected void onCreate(Bundle savedInstanceState) {
246fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        super.onCreate(savedInstanceState);
256fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
26f11598332008fd706ed17be975a0ff73ba7f6a21Svetoslav Ganov        PrintJobId printJobId = getIntent().getParcelableExtra(
27f11598332008fd706ed17be975a0ff73ba7f6a21Svetoslav Ganov                MyPrintService.INTENT_EXTRA_PRINT_JOB_ID);
286fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        final int actionType = getIntent().getIntExtra(MyPrintService.INTENT_EXTRA_ACTION_TYPE,
296fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                MyPrintService.ACTION_TYPE_ON_PRINT_JOB_PENDING);
306fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
316fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        if (actionType == MyPrintService.ACTION_TYPE_ON_PRINT_JOB_PENDING) {
326fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav            createActionTypeOnPrintJobPendingUi(printJobId);
336fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        } else {
346fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav            createActionTypeOnReqeustCancelPrintJobUi(printJobId);
356fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        }
366fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    }
376fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
38f11598332008fd706ed17be975a0ff73ba7f6a21Svetoslav Ganov    private void createActionTypeOnPrintJobPendingUi(final PrintJobId printJobId) {
396fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        setTitle(getString(R.string.on_print_job_pending_activity_title));
406fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
416fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
426fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                getResources().getStringArray(R.array.on_print_job_queued_actions)));
436fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
446fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav            @Override
456fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
466fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                switch (position) {
476fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    case ITEM_INDEX_PRINT_NOW: {
486fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        MyPrintService.peekInstance().handleQueuedPrintJob(printJobId);
496fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        finish();
506fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    } break;
516fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
526fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    case ITEM_INDEX_PRINT_DELAYED: {
536fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        MyPrintService.peekInstance().handleQueuedPrintJobDelayed(printJobId);
546fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        finish();
556fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    } break;
566fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
576fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    case ITEM_INDEX_FAIL_NOW: {
586fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        MyPrintService.peekInstance().handleFailPrintJob(printJobId);
596fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        finish();
606fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    } break;
616fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
626fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    case ITEM_INDEX_FAIL_DELAYED: {
636fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        MyPrintService.peekInstance().handleFailPrintJobDelayed(printJobId);
646fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        finish();
656fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    } break;
666fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
673bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                    case ITEM_INDEX_BLOCK_NOW: {
683bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                        MyPrintService.peekInstance().handleBlockPrintJob(printJobId);
693bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                        finish();
703bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                    } break;
713bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov
723bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                    case ITEM_INDEX_BLOCK_DELAYED: {
733bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                        MyPrintService.peekInstance().handleBlockPrintJobDelayed(printJobId);
743bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                        finish();
753bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                    } break;
763bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov
773bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                    case ITEM_INDEX_BLOCK_AND_DELAYED_UNBLOCK: {
783bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                        MyPrintService.peekInstance().handleBlockAndDelayedUnblockPrintJob(
793bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                                printJobId);
803bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                        finish();
813bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov                    } break;
823bb4d60425207dad4241d0565ff0c4a20dca119dSvetoslav Ganov
836fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    default: {
846fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        finish();
856fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    } break;
866fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                }
876fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav            }
886fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        });
896fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    }
906fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
91f11598332008fd706ed17be975a0ff73ba7f6a21Svetoslav Ganov    private void createActionTypeOnReqeustCancelPrintJobUi(final PrintJobId printJobId) {
926fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        setTitle(getString(R.string.on_cancle_print_job_requested_activity_title));
936fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
946fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
956fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                getResources().getStringArray(R.array.on_request_cancel_print_job_actions)));
966fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
976fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav            @Override
986fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
996fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                switch (position) {
1006fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    case ITEM_INDEX_CANCEL_YES: {
1016fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        MyPrintService.peekInstance().handleRequestCancelPrintJob(printJobId);
1026fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        finish();
1036fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    } break;
1046fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav
1056fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    default: {
1066fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                        finish();
1076fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                    } break;
1086fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav                }
1096fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav            }
1106fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav        });
1116fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav    }
1126fc52023a04fe45b6f59212fc716cbbcf76f35fcSvetoslav}
113