HomeProvider.java revision bafe58a83ade9cfa5c91e7033fae2d08a64603e8
1bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
2bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck/*
3bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck * Copyright (C) 2011 The Android Open Source Project
4bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck *
5bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck * Licensed under the Apache License, Version 2.0 (the "License");
6bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck * you may not use this file except in compliance with the License.
7bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck * You may obtain a copy of the License at
8bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck *
9bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck *      http://www.apache.org/licenses/LICENSE-2.0
10bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck *
11bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck * Unless required by applicable law or agreed to in writing, software
12bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck * distributed under the License is distributed on an "AS IS" BASIS,
13bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck * See the License for the specific language governing permissions and
15bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck * limitations under the License.
16bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck */
17bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckpackage com.android.browser.homepages;
18bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
19bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckimport android.content.ContentProvider;
20bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckimport android.content.ContentValues;
21bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckimport android.content.res.AssetFileDescriptor;
22bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckimport android.database.Cursor;
23bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckimport android.net.Uri;
24bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckimport android.os.ParcelFileDescriptor;
25bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckimport android.util.Log;
26bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
27bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckimport java.io.IOException;
28bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
29bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reckpublic class HomeProvider extends ContentProvider {
30bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
31bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    private static final String TAG = "HomeProvider";
32bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    public static final String AUTHORITY = "com.android.browser.home";
33bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    public static final String MOST_VISITED = "content://" + AUTHORITY + "/";
34bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
35bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    @Override
36bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    public int delete(Uri uri, String selection, String[] selectionArgs) {
37bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck        return 0;
38bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    }
39bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
40bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    @Override
41bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    public String getType(Uri uri) {
42bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck        return null;
43bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    }
44bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
45bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    @Override
46bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    public Uri insert(Uri uri, ContentValues values) {
47bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck        return null;
48bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    }
49bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
50bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    @Override
51bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    public boolean onCreate() {
52bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck        return false;
53bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    }
54bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
55bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    @Override
56bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    public Cursor query(Uri uri, String[] projection, String selection,
57bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck            String[] selectionArgs, String sortOrder) {
58bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck        return null;
59bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    }
60bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
61bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    @Override
62bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    public int update(Uri uri, ContentValues values, String selection,
63bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck            String[] selectionArgs) {
64bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck        return 0;
65bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    }
66bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
67bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    @Override
68bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    public ParcelFileDescriptor openFile(Uri uri, String mode) {
69bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck        try {
70bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck            ParcelFileDescriptor[] pipes = ParcelFileDescriptor.createPipe();
71bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck            final ParcelFileDescriptor write = pipes[1];
72bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck            AssetFileDescriptor afd = new AssetFileDescriptor(write, 0, -1);
73bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck            new RequestHandler(getContext(), uri, afd.createOutputStream()).start();
74bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck            return pipes[0];
75bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck        } catch (IOException e) {
76bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck            Log.e(TAG, "Failed to handle request: " + uri, e);
77bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck            return null;
78bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck        }
79bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck    }
80bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck
81bafe58a83ade9cfa5c91e7033fae2d08a64603e8John Reck}
82