Search in sources :

Example 56 with Uri

use of android.net.Uri in project jpHolo by teusink.

the class CameraLauncher method getUriFromMediaStore.

/**
     * Create entry in media store for image
     *
     * @return uri
     */
private Uri getUriFromMediaStore() {
    ContentValues values = new ContentValues();
    values.put(android.provider.MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
    Uri uri;
    try {
        uri = this.cordova.getActivity().getContentResolver().insert(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    } catch (RuntimeException e) {
        LOG.d(LOG_TAG, "Can't write to external media storage.");
        try {
            uri = this.cordova.getActivity().getContentResolver().insert(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, values);
        } catch (RuntimeException ex) {
            LOG.d(LOG_TAG, "Can't write to internal media storage.");
            return null;
        }
    }
    return uri;
}
Also used : ContentValues(android.content.ContentValues) Uri(android.net.Uri)

Example 57 with Uri

use of android.net.Uri 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 58 with Uri

use of android.net.Uri in project jpHolo by teusink.

the class FileHelper method getMimeType.

/**
     * Returns the mime type of the data specified by the given URI string.
     *
     * @param uriString the URI string of the data
     * @return the mime type of the specified data
     */
public static String getMimeType(String uriString, CordovaInterface cordova) {
    String mimeType = null;
    Uri uri = Uri.parse(uriString);
    if (uriString.startsWith("content://")) {
        mimeType = cordova.getActivity().getContentResolver().getType(uri);
    } else {
        mimeType = getMimeTypeForExtension(uri.getPath());
    }
    return mimeType;
}
Also used : Uri(android.net.Uri)

Example 59 with Uri

use of android.net.Uri in project cordova-android-chromeview by thedracle.

the class CordovaWebViewClient method shouldOverrideUrlLoading.

/**
     * Give the host application a chance to take over the control when a new url
     * is about to be loaded in the current WebView.
     *
     * @param view          The WebView that is initiating the callback.
     * @param url           The url to be loaded.
     * @return              true to override, false for default behavior
     */
@Override
public boolean shouldOverrideUrlLoading(ChromeView view, String url) {
    // Check if it's an exec() bridge command message.
    if (NativeToJsMessageQueue.ENABLE_LOCATION_CHANGE_EXEC_MODE && url.startsWith(CORDOVA_EXEC_URL_PREFIX)) {
        handleExecUrl(url);
    } else // Give plugins the chance to handle the url
    if ((this.appView.pluginManager != null) && this.appView.pluginManager.onOverrideUrlLoading(url)) {
    } else // If dialing phone (tel:5551212)
    if (url.startsWith(WebView.SCHEME_TEL)) {
        try {
            Intent intent = new Intent(Intent.ACTION_DIAL);
            intent.setData(Uri.parse(url));
            this.cordova.getActivity().startActivity(intent);
        } catch (android.content.ActivityNotFoundException e) {
            LOG.e(TAG, "Error dialing " + url + ": " + e.toString());
        }
    } else // If displaying map (geo:0,0?q=address)
    if (url.startsWith("geo:")) {
        try {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(url));
            this.cordova.getActivity().startActivity(intent);
        } catch (android.content.ActivityNotFoundException e) {
            LOG.e(TAG, "Error showing map " + url + ": " + e.toString());
        }
    } else // If sending email (mailto:abc@corp.com)
    if (url.startsWith(WebView.SCHEME_MAILTO)) {
        try {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(url));
            this.cordova.getActivity().startActivity(intent);
        } catch (android.content.ActivityNotFoundException e) {
            LOG.e(TAG, "Error sending email " + url + ": " + e.toString());
        }
    } else // If sms:5551212?body=This is the message
    if (url.startsWith("sms:")) {
        try {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            // Get address
            String address = null;
            int parmIndex = url.indexOf('?');
            if (parmIndex == -1) {
                address = url.substring(4);
            } else {
                address = url.substring(4, parmIndex);
                // If body, then set sms body
                Uri uri = Uri.parse(url);
                String query = uri.getQuery();
                if (query != null) {
                    if (query.startsWith("body=")) {
                        intent.putExtra("sms_body", query.substring(5));
                    }
                }
            }
            intent.setData(Uri.parse("sms:" + address));
            intent.putExtra("address", address);
            intent.setType("vnd.android-dir/mms-sms");
            this.cordova.getActivity().startActivity(intent);
        } catch (android.content.ActivityNotFoundException e) {
            LOG.e(TAG, "Error sending sms " + url + ":" + e.toString());
        }
    } else //Android Market
    if (url.startsWith("market:")) {
        try {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(url));
            this.cordova.getActivity().startActivity(intent);
        } catch (android.content.ActivityNotFoundException e) {
            LOG.e(TAG, "Error loading Google Play Store: " + url, e);
        }
    } else // All else
    {
        // Our app continues to run.  When BACK is pressed, our app is redisplayed.
        if (url.startsWith("file://") || url.startsWith("data:") || Config.isUrlWhiteListed(url)) {
            return false;
        } else // If not our application, let default viewer handle
        {
            try {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(url));
                this.cordova.getActivity().startActivity(intent);
            } catch (android.content.ActivityNotFoundException e) {
                LOG.e(TAG, "Error loading url " + url, e);
            }
        }
    }
    return true;
}
Also used : Intent(android.content.Intent) Uri(android.net.Uri)

Example 60 with Uri

use of android.net.Uri in project cordova-android-chromeview by thedracle.

the class FileHelper method getMimeType.

/**
     * Returns the mime type of the data specified by the given URI string.
     *
     * @param uriString the URI string of the data
     * @return the mime type of the specified data
     */
public static String getMimeType(String uriString, CordovaInterface cordova) {
    String mimeType = null;
    Uri uri = Uri.parse(uriString);
    if (uriString.startsWith("content://")) {
        mimeType = cordova.getActivity().getContentResolver().getType(uri);
    } else {
        // MimeTypeMap.getFileExtensionFromUrl() fails when there are query parameters.
        String extension = uri.getPath();
        int lastDot = extension.lastIndexOf('.');
        if (lastDot != -1) {
            extension = extension.substring(lastDot + 1);
        }
        // Convert the URI string to lower case to ensure compatibility with MimeTypeMap (see CB-2185).
        extension = extension.toLowerCase();
        if (extension.equals("3ga")) {
            mimeType = "audio/3gpp";
        } else {
            mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
        }
    }
    return mimeType;
}
Also used : Uri(android.net.Uri)

Aggregations

Uri (android.net.Uri)3406 Intent (android.content.Intent)732 Cursor (android.database.Cursor)466 ContentValues (android.content.ContentValues)349 File (java.io.File)339 IOException (java.io.IOException)254 ContentResolver (android.content.ContentResolver)242 ArrayList (java.util.ArrayList)209 Test (org.junit.Test)194 RemoteException (android.os.RemoteException)190 Bundle (android.os.Bundle)154 Bitmap (android.graphics.Bitmap)129 Context (android.content.Context)118 InputStream (java.io.InputStream)110 PendingIntent (android.app.PendingIntent)104 LargeTest (android.test.suitebuilder.annotation.LargeTest)97 View (android.view.View)95 FileNotFoundException (java.io.FileNotFoundException)94 Request (android.app.DownloadManager.Request)83 TextView (android.widget.TextView)73