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

Commit 340b198c authored by Svet Ganov's avatar Svet Ganov Committed by Android (Google) Code Review
Browse files

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

parents 2301174e a2147ec9
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(