/**
  * Updates states of all transfer records with the specified which are "running" and "waiting" to
  * "pending cancel"
  *
  * @param TransferType The type of transfers to cancel
  * @return Number of rows updated.
  */
 public int cancelAllWithType(TransferType type) {
   ContentValues values = new ContentValues();
   values.put(TransferTable.COLUMN_STATE, TransferState.PENDING_CANCEL.toString());
   String selection = null;
   String[] selectionArgs = null;
   if (type == TransferType.ANY) {
     selection = TransferTable.COLUMN_STATE + " in (?,?,?,?,?)";
     selectionArgs =
         new String[] {
           TransferState.IN_PROGRESS.toString(),
           TransferState.RESUMED_WAITING.toString(),
           TransferState.WAITING.toString(),
           TransferState.PAUSED.toString(),
           TransferState.WAITING_FOR_NETWORK.toString()
         };
   } else {
     selection =
         TransferTable.COLUMN_STATE + " in (?,?,?,?,?) and " + TransferTable.COLUMN_TYPE + "=?";
     selectionArgs =
         new String[] {
           TransferState.IN_PROGRESS.toString(),
           TransferState.RESUMED_WAITING.toString(),
           TransferState.WAITING.toString(),
           TransferState.PAUSED.toString(),
           TransferState.WAITING_FOR_NETWORK.toString(),
           type.toString()
         };
   }
   return transferDBBase.update(transferDBBase.getContentUri(), values, selection, selectionArgs);
 }
 /**
  * Updates states of all transfer records which are "waiting for network" to "waiting to resume"
  *
  * @return Number of rows updated.
  */
 public int updateNetworkConnected() {
   ContentValues values = new ContentValues();
   values.put(TransferTable.COLUMN_STATE, TransferState.RESUMED_WAITING.toString());
   return transferDBBase.update(
       transferDBBase.getContentUri(),
       values,
       TransferTable.COLUMN_STATE + " in (?,?)",
       new String[] {
         TransferState.PENDING_NETWORK_DISCONNECT.toString(),
         TransferState.WAITING_FOR_NETWORK.toString()
       });
 }
 /**
  * Updates states of all transfer records which are "running" and "waiting" to "paused"
  *
  * @return Number of rows updated.
  */
 public int setAllRunningRecordsToPausedBeforeShutdownService() {
   ContentValues values = new ContentValues();
   values.put(TransferTable.COLUMN_STATE, TransferState.PAUSED.toString());
   return transferDBBase.update(
       transferDBBase.getContentUri(),
       values,
       TransferTable.COLUMN_STATE + " in (?,?,?,?)",
       new String[] {
         TransferState.IN_PROGRESS.toString(),
         TransferState.PENDING_PAUSE.toString(),
         TransferState.RESUMED_WAITING.toString(),
         TransferState.WAITING.toString()
       });
 }