Cursor runQuery(ContentResolver resolver,String[] projection,Uri baseUri){
  List<String> selectionParts=new ArrayList<>();
  String[] selectionArgs=getIdsAsStringArray(downloadIds);
  filterByDownloadIds(selectionParts);
  filterByBatchIds(selectionParts);
  filterByNotificationExtras(selectionParts);
  filterByExtraData(selectionParts);
  filterByStatus(selectionParts);
  if (onlyIncludeVisibleInDownloadsUi) {
    selectionParts.add(DownloadContract.Downloads.COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI + " != '0'");
  }
  selectionParts.add(DownloadContract.Downloads.COLUMN_DELETED + " != '1'");
  String selection=joinStrings(" AND ",selectionParts);
  return resolver.query(baseUri,projection,selection,selectionArgs,orderString);
}

Cursor runQuery ( ContentResolver resolver , String [ ] projection , Uri baseUri ) { List < String > selectionParts = new ArrayList < > ( ) ; String [ ] selectionArgs = getIdsAsStringArray ( downloadIds ) ; filterByDownloadIds ( selectionParts ) ; filterByBatchIds ( selectionParts ) ; filterByNotificationExtras ( selectionParts ) ; filterByExtraData ( selectionParts ) ; filterByStatus ( selectionParts ) ; if ( onlyIncludeVisibleInDownloadsUi ) { selectionParts . add ( DownloadContract . Downloads . COLUMN_IS_VISIBLE_IN_DOWNLOADS_UI + " != '0'" ) ; } selectionParts . add ( DownloadContract . Downloads . COLUMN_DELETED + " != '1'" ) ; String selection = joinStrings ( " AND " , selectionParts ) ; return resolver . query ( baseUri , projection , selection , selectionArgs , orderString ) ; }
run this query using the given contentresolver .
