16f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling/*
26f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * Copyright (C) 2013 The Android Open Source Project
36f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling *
46f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * Licensed under the Apache License, Version 2.0 (the "License");
56f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * you may not use this file except in compliance with the License.
66f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * You may obtain a copy of the License at
76f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling *
86f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling *      http://www.apache.org/licenses/LICENSE-2.0
96f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling *
106f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * Unless required by applicable law or agreed to in writing, software
116f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * distributed under the License is distributed on an "AS IS" BASIS,
126f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * See the License for the specific language governing permissions and
146f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling * limitations under the License.
156f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling */
166f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling
176f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingpackage com.android.camera.data;
186f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling
196f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingimport android.content.ContentResolver;
206f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingimport android.database.Cursor;
216f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingimport android.net.Uri;
226f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingimport android.provider.MediaStore;
236f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling
246f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberlingpublic class DataUtils {
256f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling
266f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling    /**
276f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling     * Get the file path from a Media storage URI.
286f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling     */
296f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling    public static String getPathFromURI(ContentResolver contentResolver, Uri contentUri) {
306f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling        String[] proj = {
316f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling                MediaStore.Images.Media.DATA
326f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling        };
336f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling        Cursor cursor = contentResolver.query(contentUri, proj, null, null, null);
346f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling        if (cursor == null) {
356f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling            return null;
366f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling        }
376f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling        try {
386f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling            int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
396f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling            if (!cursor.moveToFirst()) {
406f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling                return null;
416f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling            } else {
426f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling                return cursor.getString(columnIndex);
436f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling            }
446f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling        } finally {
456f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling            cursor.close();
466f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling        }
476f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling    }
486f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling
496f64b50db6565bc6454304fd20c0c4020b297bb7Sascha Haeberling}
50