package foo.bar.printservice;
import android.app.ListActivity;
import android.os.Bundle;
import android.print.PrintJobId;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
public class MyDialogActivity extends ListActivity {
private static final int ITEM_INDEX_PRINT_NOW = 0;
private static final int ITEM_INDEX_PRINT_DELAYED = 1;
private static final int ITEM_INDEX_FAIL_NOW = 2;
private static final int ITEM_INDEX_FAIL_DELAYED = 3;
private static final int ITEM_INDEX_BLOCK_NOW = 4;
private static final int ITEM_INDEX_BLOCK_DELAYED = 5;
private static final int ITEM_INDEX_BLOCK_AND_DELAYED_UNBLOCK = 6;
private static final int ITEM_INDEX_PRINT_SLOWLY = 7;
private static final int ITEM_INDEX_CANCEL_YES = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PrintJobId printJobId = getIntent().getParcelableExtra(
MyPrintService.INTENT_EXTRA_PRINT_JOB_ID);
final int actionType = getIntent().getIntExtra(MyPrintService.INTENT_EXTRA_ACTION_TYPE,
MyPrintService.ACTION_TYPE_ON_PRINT_JOB_PENDING);
if (actionType == MyPrintService.ACTION_TYPE_ON_PRINT_JOB_PENDING) {
createActionTypeOnPrintJobPendingUi(printJobId);
} else {
createActionTypeOnReqeustCancelPrintJobUi(printJobId);
}
}
private void createActionTypeOnPrintJobPendingUi(final PrintJobId printJobId) {
setTitle(getString(R.string.on_print_job_pending_activity_title));
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.on_print_job_queued_actions)));
getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case ITEM_INDEX_PRINT_NOW: {
MyPrintService.peekInstance().handleQueuedPrintJob(printJobId);
} break;
case ITEM_INDEX_PRINT_DELAYED: {
MyPrintService.peekInstance().handleQueuedPrintJobDelayed(printJobId);
} break;
case ITEM_INDEX_FAIL_NOW: {
MyPrintService.peekInstance().handleFailPrintJob(printJobId);
} break;
case ITEM_INDEX_FAIL_DELAYED: {
MyPrintService.peekInstance().handleFailPrintJobDelayed(printJobId);
} break;
case ITEM_INDEX_BLOCK_NOW: {
MyPrintService.peekInstance().handleBlockPrintJob(printJobId);
} break;
case ITEM_INDEX_BLOCK_DELAYED: {
MyPrintService.peekInstance().handleBlockPrintJobDelayed(printJobId);
} break;
case ITEM_INDEX_BLOCK_AND_DELAYED_UNBLOCK: {
MyPrintService.peekInstance().handleBlockAndDelayedUnblockPrintJob(
printJobId);
} break;
case ITEM_INDEX_PRINT_SLOWLY: {
MyPrintService.peekInstance().handlePrintJobProgress(printJobId, 0);
} break;
}
finishAndRemoveTask();
}
});
}
private void createActionTypeOnReqeustCancelPrintJobUi(final PrintJobId printJobId) {
setTitle(getString(R.string.on_cancle_print_job_requested_activity_title));
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.on_request_cancel_print_job_actions)));
getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case ITEM_INDEX_CANCEL_YES: {
MyPrintService.peekInstance().handleRequestCancelPrintJob(printJobId);
} break;
}
finishAndRemoveTask();
}
});
}
}