128a5834185ace02fed8b61989532a6516f30f04eAdam Powell/* 228a5834185ace02fed8b61989532a6516f30f04eAdam Powell * Copyright (C) 2011 The Android Open Source Project 328a5834185ace02fed8b61989532a6516f30f04eAdam Powell * 428a5834185ace02fed8b61989532a6516f30f04eAdam Powell * Licensed under the Apache License, Version 2.0 (the "License"); 528a5834185ace02fed8b61989532a6516f30f04eAdam Powell * you may not use this file except in compliance with the License. 628a5834185ace02fed8b61989532a6516f30f04eAdam Powell * You may obtain a copy of the License at 728a5834185ace02fed8b61989532a6516f30f04eAdam Powell * 828a5834185ace02fed8b61989532a6516f30f04eAdam Powell * http://www.apache.org/licenses/LICENSE-2.0 928a5834185ace02fed8b61989532a6516f30f04eAdam Powell * 1028a5834185ace02fed8b61989532a6516f30f04eAdam Powell * Unless required by applicable law or agreed to in writing, software 1128a5834185ace02fed8b61989532a6516f30f04eAdam Powell * distributed under the License is distributed on an "AS IS" BASIS, 1228a5834185ace02fed8b61989532a6516f30f04eAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1328a5834185ace02fed8b61989532a6516f30f04eAdam Powell * See the License for the specific language governing permissions and 1428a5834185ace02fed8b61989532a6516f30f04eAdam Powell * limitations under the License. 1528a5834185ace02fed8b61989532a6516f30f04eAdam Powell */ 1628a5834185ace02fed8b61989532a6516f30f04eAdam Powell 1728a5834185ace02fed8b61989532a6516f30f04eAdam Powellpackage com.example.android.supportv4.content; 1828a5834185ace02fed8b61989532a6516f30f04eAdam Powell 1928a5834185ace02fed8b61989532a6516f30f04eAdam Powellimport android.content.ContentProvider; 2028a5834185ace02fed8b61989532a6516f30f04eAdam Powellimport android.content.ContentValues; 2128a5834185ace02fed8b61989532a6516f30f04eAdam Powellimport android.database.Cursor; 2228a5834185ace02fed8b61989532a6516f30f04eAdam Powellimport android.net.Uri; 2328a5834185ace02fed8b61989532a6516f30f04eAdam Powellimport android.os.ParcelFileDescriptor; 2428a5834185ace02fed8b61989532a6516f30f04eAdam Powellimport android.util.Log; 2528a5834185ace02fed8b61989532a6516f30f04eAdam Powell 2628a5834185ace02fed8b61989532a6516f30f04eAdam Powellimport java.io.File; 2728a5834185ace02fed8b61989532a6516f30f04eAdam Powellimport java.io.FileNotFoundException; 2828a5834185ace02fed8b61989532a6516f30f04eAdam Powell 2928a5834185ace02fed8b61989532a6516f30f04eAdam Powell/** 3028a5834185ace02fed8b61989532a6516f30f04eAdam Powell * This simple ContentProvider provides access to the two example files shared 3128a5834185ace02fed8b61989532a6516f30f04eAdam Powell * by the ShareCompat example {@link com.example.android.supportv4.app.SharingSupport}. 3228a5834185ace02fed8b61989532a6516f30f04eAdam Powell */ 3328a5834185ace02fed8b61989532a6516f30f04eAdam Powellpublic class SharingSupportProvider extends ContentProvider { 3428a5834185ace02fed8b61989532a6516f30f04eAdam Powell public static final Uri CONTENT_URI = 3528a5834185ace02fed8b61989532a6516f30f04eAdam Powell Uri.parse("content://com.example.supportv4.content.sharingsupportprovider"); 3628a5834185ace02fed8b61989532a6516f30f04eAdam Powell 3728a5834185ace02fed8b61989532a6516f30f04eAdam Powell private static final String TAG = "SharingSupportProvider"; 3828a5834185ace02fed8b61989532a6516f30f04eAdam Powell 3928a5834185ace02fed8b61989532a6516f30f04eAdam Powell @Override 4028a5834185ace02fed8b61989532a6516f30f04eAdam Powell public boolean onCreate() { 4128a5834185ace02fed8b61989532a6516f30f04eAdam Powell return true; 4228a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 4328a5834185ace02fed8b61989532a6516f30f04eAdam Powell 4428a5834185ace02fed8b61989532a6516f30f04eAdam Powell @Override 4528a5834185ace02fed8b61989532a6516f30f04eAdam Powell public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, 4628a5834185ace02fed8b61989532a6516f30f04eAdam Powell String sortOrder) { 4728a5834185ace02fed8b61989532a6516f30f04eAdam Powell return null; 4828a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 4928a5834185ace02fed8b61989532a6516f30f04eAdam Powell 5028a5834185ace02fed8b61989532a6516f30f04eAdam Powell @Override 5128a5834185ace02fed8b61989532a6516f30f04eAdam Powell public String getType(Uri uri) { 5228a5834185ace02fed8b61989532a6516f30f04eAdam Powell if (uri.equals(Uri.withAppendedPath(CONTENT_URI, "foo.txt")) || 5328a5834185ace02fed8b61989532a6516f30f04eAdam Powell uri.equals(Uri.withAppendedPath(CONTENT_URI, "bar.txt"))) { 5428a5834185ace02fed8b61989532a6516f30f04eAdam Powell return "text/plain"; 5528a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 5628a5834185ace02fed8b61989532a6516f30f04eAdam Powell return null; 5728a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 5828a5834185ace02fed8b61989532a6516f30f04eAdam Powell 5928a5834185ace02fed8b61989532a6516f30f04eAdam Powell @Override 6028a5834185ace02fed8b61989532a6516f30f04eAdam Powell public Uri insert(Uri uri, ContentValues values) { 6128a5834185ace02fed8b61989532a6516f30f04eAdam Powell return null; 6228a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 6328a5834185ace02fed8b61989532a6516f30f04eAdam Powell 6428a5834185ace02fed8b61989532a6516f30f04eAdam Powell @Override 6528a5834185ace02fed8b61989532a6516f30f04eAdam Powell public int delete(Uri uri, String selection, String[] selectionArgs) { 6628a5834185ace02fed8b61989532a6516f30f04eAdam Powell return 0; 6728a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 6828a5834185ace02fed8b61989532a6516f30f04eAdam Powell 6928a5834185ace02fed8b61989532a6516f30f04eAdam Powell @Override 7028a5834185ace02fed8b61989532a6516f30f04eAdam Powell public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { 7128a5834185ace02fed8b61989532a6516f30f04eAdam Powell return 0; 7228a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 7328a5834185ace02fed8b61989532a6516f30f04eAdam Powell 7428a5834185ace02fed8b61989532a6516f30f04eAdam Powell @Override 7528a5834185ace02fed8b61989532a6516f30f04eAdam Powell public ParcelFileDescriptor openFile(Uri uri, String mode) { 7628a5834185ace02fed8b61989532a6516f30f04eAdam Powell String path = uri.getPath(); 7728a5834185ace02fed8b61989532a6516f30f04eAdam Powell if (mode.equals("r") && 7828a5834185ace02fed8b61989532a6516f30f04eAdam Powell (path.equals("/foo.txt") || path.equals("/bar.txt"))) { 7928a5834185ace02fed8b61989532a6516f30f04eAdam Powell try { 8028a5834185ace02fed8b61989532a6516f30f04eAdam Powell return ParcelFileDescriptor.open( 8128a5834185ace02fed8b61989532a6516f30f04eAdam Powell new File(getContext().getFilesDir() + path), 8228a5834185ace02fed8b61989532a6516f30f04eAdam Powell ParcelFileDescriptor.MODE_READ_ONLY); 8328a5834185ace02fed8b61989532a6516f30f04eAdam Powell } catch (FileNotFoundException e) { 8428a5834185ace02fed8b61989532a6516f30f04eAdam Powell Log.e(TAG, "Bad file " + uri); 8528a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 8628a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 8728a5834185ace02fed8b61989532a6516f30f04eAdam Powell return null; 8828a5834185ace02fed8b61989532a6516f30f04eAdam Powell } 8928a5834185ace02fed8b61989532a6516f30f04eAdam Powell} 90