Example usage for android.database CursorWindow acquireReference

List of usage examples for android.database CursorWindow acquireReference

Introduction

In this page you can find the example usage for android.database CursorWindow acquireReference.

Prototype

public void acquireReference() 

Source Link

Document

Acquires a reference to the object.

Usage

From source file:mobisocial.musubi.provider.IdentityCursorWrapper.java

@Override
public void fillWindow(int position, CursorWindow window) {
    if (position < 0 || position > getCount()) {
        return;// w  w  w.  ja v a  2  s .  c o m
    }
    window.acquireReference();

    try {
        moveToPosition(position - 1);
        window.clear();
        window.setStartPosition(position);
        int columnNum = getColumnCount();
        window.setNumColumns(columnNum);
        while (moveToNext() && window.allocRow()) {
            for (int i = 0; i < columnNum; i++) {
                if (i == colThumb || i == colHash) {
                    byte[] field = getBlob(i);
                    if (!window.putBlob(field, getPosition(), i)) {
                        window.freeLastRow();
                        break;
                    }
                } else {
                    String field = getString(i);
                    if (field != null) {
                        if (!window.putString(field, getPosition(), i)) {
                            window.freeLastRow();
                            break;
                        }
                    } else {
                        if (!window.putNull(getPosition(), i)) {
                            window.freeLastRow();
                            break;
                        }
                    }
                }
            }
        }
    } catch (IllegalStateException e) {
        // simply ignore it
    } finally {
        window.releaseReference();
    }
}