queryWithExtras method

Future<CursorData?> queryWithExtras(
  1. String uri,
  2. List<String>? projection,
  3. BundleMap? queryArgs,
  4. ReceivedCancellationSignal? cancellationSignal,
)

query(uri: Uri, projection: Array<String!>?, queryArgs: Bundle?, cancellationSignal: CancellationSignal?): Cursor? https://developer.android.com/reference/kotlin/android/content/ContentProvider#query_2

Implementation

Future<CursorData?> queryWithExtras(
  String uri,
  List<String>? projection,
  BundleMap? queryArgs,
  ReceivedCancellationSignal? cancellationSignal,
) async {
  if (queryArgs == null) {
    return queryWithSignal(
      uri,
      projection,
      null,
      null,
      null,
      cancellationSignal,
    );
  }

  // if client doesn't supply an SQL sort order argument, attempt to build one from
  // QUERY_ARG_SORT* arguments.
  var sortClause =
      queryArgs[AndroidContentResolver.QUERY_ARG_SQL_SORT_ORDER] as String?;
  if (sortClause == null &&
      queryArgs.containsKey(AndroidContentResolver.QUERY_ARG_SORT_COLUMNS)) {
    sortClause = AndroidContentResolver.createSqlSortClause(queryArgs);
  }

  return queryWithSignal(
    uri,
    projection,
    queryArgs[AndroidContentResolver.QUERY_ARG_SQL_SELECTION] as String?,
    _asList(queryArgs[AndroidContentResolver.QUERY_ARG_SQL_SELECTION_ARGS]),
    sortClause,
    cancellationSignal,
  );
}