CursorUtils.java

 1package eu.siacs.conversations.utils;
 2
 3import android.database.AbstractWindowedCursor;
 4import android.database.Cursor;
 5import android.database.CursorWindow;
 6import android.database.sqlite.SQLiteCursor;
 7
 8public class CursorUtils {
 9
10    public static void upgradeCursorWindowSize(final Cursor cursor) {
11        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
12            if (cursor instanceof AbstractWindowedCursor windowedCursor) {
13                windowedCursor.setWindow(new CursorWindow("4M", 4 * 1024 * 1024));
14            }
15            if (cursor instanceof SQLiteCursor) {
16                ((SQLiteCursor) cursor).setFillWindowForwardOnly(true);
17            }
18        }
19    }
20}