@Override
  public boolean onContextItemSelected(MenuItem item) {
    final AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    final int id = (int) info.id;
    // Error check just in case.
    if (id == -1) {
      return super.onContextItemSelected(item);
    }
    switch (item.getItemId()) {
      case R.id.delete_schedule:
        // Confirm that the schedule will be deleted.
        new AlertDialog.Builder(this)
            .setTitle(getString(R.string.delete_schedule))
            .setMessage(getString(R.string.delete_schedule_confirm))
            .setPositiveButton(
                android.R.string.ok,
                new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface d, int w) {
                    TimeSchedule.deleteTimeSchedule(TimeScheduleActivity.this, id);
                  }
                })
            .setNegativeButton(android.R.string.cancel, null)
            .show();
        return true;

      case R.id.enable_schedule:
        final Cursor c = (Cursor) mScheduleList.getAdapter().getItem(info.position);
        final TimeSchedule schedule = new TimeSchedule(c);
        TimeSchedule.enableTimeSchedule(this, schedule.id, !schedule.enabled);
        if (!schedule.enabled) {}
        return true;

      case R.id.edit_schedule:
        Intent intent = new Intent(this, SetTimeScheduleActivity.class);
        intent.putExtra(TimeSchedule.EXTRA_ID, id);
        startActivity(intent);
        return true;

      default:
        break;
    }
    return super.onContextItemSelected(item);
  }