Search in sources :

Example 51 with Cursor

use of android.database.Cursor in project jpHolo by teusink.

the class FileHelper method getRealPath.

/**
     * Returns the real path of the given URI string.
     * If the given URI string represents a content:// URI, the real path is retrieved from the media store.
     *
     * @param uriString the URI string of the audio/image/video
     * @param cordova the current application context
     * @return the full path to the file
     */
@SuppressWarnings("deprecation")
public static String getRealPath(String uriString, CordovaInterface cordova) {
    String realPath = null;
    if (uriString.startsWith("content://")) {
        String[] proj = { _DATA };
        Cursor cursor = cordova.getActivity().managedQuery(Uri.parse(uriString), proj, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(_DATA);
        cursor.moveToFirst();
        realPath = cursor.getString(column_index);
        if (realPath == null) {
            LOG.e(LOG_TAG, "Could get real path for URI string %s", uriString);
        }
    } else if (uriString.startsWith("file://")) {
        realPath = uriString.substring(7);
        if (realPath.startsWith("/android_asset/")) {
            LOG.e(LOG_TAG, "Cannot get real path for URI string %s because it is a file:///android_asset/ URI.", uriString);
            realPath = null;
        }
    } else {
        realPath = uriString;
    }
    return realPath;
}
Also used : Cursor(android.database.Cursor)

Example 52 with Cursor

use of android.database.Cursor in project jpHolo by teusink.

the class ContentFilesystem method getFileMetadataForLocalURL.

@Override
public JSONObject getFileMetadataForLocalURL(LocalFilesystemURL inputURL) throws FileNotFoundException {
    Integer size = null;
    Integer lastModified = null;
    Cursor cursor = openCursorForURL(inputURL);
    try {
        if (cursor != null && cursor.moveToFirst()) {
            size = resourceSizeForCursor(cursor);
            lastModified = lastModifiedDateForCursor(cursor);
        } else {
            throw new FileNotFoundException();
        }
    } finally {
        if (cursor != null)
            cursor.close();
    }
    JSONObject metadata = new JSONObject();
    try {
        metadata.put("size", size);
        metadata.put("type", resourceApi.getMimeType(inputURL.URL));
        metadata.put("name", inputURL.filesystemName);
        metadata.put("fullPath", inputURL.fullPath);
        metadata.put("lastModifiedDate", lastModified);
    } catch (JSONException e) {
        return null;
    }
    return metadata;
}
Also used : JSONObject(org.json.JSONObject) FileNotFoundException(java.io.FileNotFoundException) JSONException(org.json.JSONException) Cursor(android.database.Cursor)

Example 53 with Cursor

use of android.database.Cursor in project jpHolo by teusink.

the class CameraLauncher method checkForDuplicateImage.

/**
     * Used to find out if we are in a situation where the Camera Intent adds to images
     * to the content store. If we are using a FILE_URI and the number of images in the DB
     * increases by 2 we have a duplicate, when using a DATA_URL the number is 1.
     *
     * @param type FILE_URI or DATA_URL
     */
private void checkForDuplicateImage(int type) {
    int diff = 1;
    Uri contentStore = whichContentStore();
    Cursor cursor = queryImgDB(contentStore);
    int currentNumOfImages = cursor.getCount();
    if (type == FILE_URI && this.saveToPhotoAlbum) {
        diff = 2;
    }
    // delete the duplicate file if the difference is 2 for file URI or 1 for Data URL
    if ((currentNumOfImages - numPics) == diff) {
        cursor.moveToLast();
        int id = Integer.valueOf(cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media._ID)));
        if (diff == 2) {
            id--;
        }
        Uri uri = Uri.parse(contentStore + "/" + id);
        this.cordova.getActivity().getContentResolver().delete(uri, null, null);
        cursor.close();
    }
}
Also used : Cursor(android.database.Cursor) Uri(android.net.Uri)

Example 54 with Cursor

use of android.database.Cursor in project jpHolo by teusink.

the class ContactManager method onActivityResult.

/**
     * Called when user picks contact.
     * @param requestCode       The request code originally supplied to startActivityForResult(),
     *                          allowing you to identify who this result came from.
     * @param resultCode        The integer result code returned by the child activity through its setResult().
     * @param intent            An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
     * @throws JSONException
     */
public void onActivityResult(int requestCode, int resultCode, final Intent intent) {
    if (requestCode == CONTACT_PICKER_RESULT) {
        if (resultCode == Activity.RESULT_OK) {
            String contactId = intent.getData().getLastPathSegment();
            // to populate contact data we require  Raw Contact ID
            // so we do look up for contact raw id first
            Cursor c = this.cordova.getActivity().getContentResolver().query(RawContacts.CONTENT_URI, new String[] { RawContacts._ID }, RawContacts.CONTACT_ID + " = " + contactId, null, null);
            if (!c.moveToFirst()) {
                this.callbackContext.error("Error occured while retrieving contact raw id");
                return;
            }
            String id = c.getString(c.getColumnIndex(RawContacts._ID));
            c.close();
            try {
                JSONObject contact = contactAccessor.getContactById(id);
                this.callbackContext.success(contact);
                return;
            } catch (JSONException e) {
                Log.e(LOG_TAG, "JSON fail.", e);
            }
        } else if (resultCode == Activity.RESULT_CANCELED) {
            this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.NO_RESULT, UNKNOWN_ERROR));
            return;
        }
        this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
    }
}
Also used : JSONObject(org.json.JSONObject) PluginResult(org.apache.cordova.PluginResult) JSONException(org.json.JSONException) Cursor(android.database.Cursor)

Example 55 with Cursor

use of android.database.Cursor in project jpHolo by teusink.

the class CameraLauncher method getImageOrientation.

private int getImageOrientation(Uri uri) {
    int rotate = 0;
    String[] cols = { MediaStore.Images.Media.ORIENTATION };
    try {
        Cursor cursor = cordova.getActivity().getContentResolver().query(uri, cols, null, null, null);
        if (cursor != null) {
            cursor.moveToPosition(0);
            rotate = cursor.getInt(0);
            cursor.close();
        }
    } catch (Exception e) {
    // You can get an IllegalArgumentException if ContentProvider doesn't support querying for orientation.
    }
    return rotate;
}
Also used : Cursor(android.database.Cursor) JSONException(org.json.JSONException) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException) ActivityNotFoundException(android.content.ActivityNotFoundException)

Aggregations

Cursor (android.database.Cursor)4002 ArrayList (java.util.ArrayList)547 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)527 Uri (android.net.Uri)467 ContentValues (android.content.ContentValues)334 ContentResolver (android.content.ContentResolver)193 Test (org.junit.Test)183 RemoteException (android.os.RemoteException)182 File (java.io.File)170 IOException (java.io.IOException)159 MatrixCursor (android.database.MatrixCursor)154 Intent (android.content.Intent)140 SQLException (android.database.SQLException)126 MediumTest (android.test.suitebuilder.annotation.MediumTest)116 HashMap (java.util.HashMap)108 SQLiteException (android.database.sqlite.SQLiteException)94 SQLiteQueryBuilder (android.database.sqlite.SQLiteQueryBuilder)93 SQLiteCursor (android.database.sqlite.SQLiteCursor)88 Query (android.app.DownloadManager.Query)76 MergeCursor (android.database.MergeCursor)75