Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 565d274f authored by Svet Ganov's avatar Svet Ganov Committed by Android Git Automerger
Browse files

am 340b198c: Merge "Handle null projection properly if provider app op is not...

am 340b198c: Merge "Handle null projection properly if provider app op is not enabled." into mnc-dev

* commit '340b198c':
  Handle null projection properly if provider app op is not enabled.
parents 59f9592f 340b198c
Loading
Loading
Loading
Loading
+21 −1
Original line number Diff line number Diff line
@@ -211,8 +211,28 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
                // We do not call ContentProvider#query with a modified where clause since
                // the implementation is not guaranteed to be backed by a SQL database, hence
                // it may not handle properly the tautology where clause we would have created.
                if (projection != null) {
                    return new MatrixCursor(projection, 0);
                }

                // Null projection means all columns but we have no idea which they are.
                // However, the caller may be expecting to access them my index. Hence,
                // we have to execute the query as if allowed to get a cursor with the
                // columns. We then use the column names to return an empty cursor.
                Cursor cursor = ContentProvider.this.query(uri, projection, selection,
                        selectionArgs, sortOrder, CancellationSignal.fromTransport(
                                cancellationSignal));

                // Create a projection for all columns.
                final int columnCount = cursor.getCount();
                String[] allColumns = new String[columnCount];
                for (int i = 0; i < columnCount; i++) {
                    allColumns[i] = cursor.getColumnName(i);
                }

                // Return an empty cursor for all columns.
                return new MatrixCursor(allColumns, 0);
            }
            final String original = setCallingPackage(callingPkg);
            try {
                return ContentProvider.this.query(