blob: 8919570ef8724ffade4ea7813fbc9220f31aaab9 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Package path can be changed, but should match <manifest package="..."> in AndroidManifest.xml.
package org.chromium.example.partnercustomizations;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
/**
* A sample ContentProvider demonstrating the various partner configurations: adding a homepage,
* disabling incognito mode, and adding default bookmarks.
*
* This class name can be changed, but should match <provider android:name="..."> in
* AndroidManifest.xml.
*/
public class PartnerBrowserCustomizationsProviderExample extends ContentProvider {
// "http://www.android.com/" is just an example. Please replace this to actual homepage.
// Other strings in this class must remain as it is.
private static final String HOMEPAGE_URI = "http://www.android.com/";
private static final int URI_MATCH_HOMEPAGE = 0;
private static final int URI_MATCH_DISABLE_INCOGNITO_MODE = 1;
private static final int URI_MATCH_DISABLE_BOOKMARKS_EDITING = 2;
private static final UriMatcher URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
static {
URI_MATCHER.addURI("com.android.partnerbrowsercustomizations", "homepage",
URI_MATCH_HOMEPAGE);
URI_MATCHER.addURI("com.android.partnerbrowsercustomizations", "disableincognitomode",
URI_MATCH_DISABLE_INCOGNITO_MODE);
URI_MATCHER.addURI("com.android.partnerbrowsercustomizations", "disablebookmarksediting",
URI_MATCH_DISABLE_BOOKMARKS_EDITING);
}
@Override
public boolean onCreate() {
return true;
}
@Override
public String getType(Uri uri) {
// In fact, Chrome does not call this.
// Just a recommaned ContentProvider practice in general.
switch (URI_MATCHER.match(uri)) {
case URI_MATCH_HOMEPAGE:
return "vnd.android.cursor.item/partnerhomepage";
case URI_MATCH_DISABLE_INCOGNITO_MODE:
return "vnd.android.cursor.item/partnerdisableincognitomode";
case URI_MATCH_DISABLE_BOOKMARKS_EDITING:
return "vnd.android.cursor.item/partnerdisablebookmarksediting";
default:
return null;
}
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
String sortOrder) {
switch (URI_MATCHER.match(uri)) {
case URI_MATCH_HOMEPAGE:
{
MatrixCursor cursor = new MatrixCursor(new String[] { "homepage" }, 1);
cursor.addRow(new Object[] { HOMEPAGE_URI });
return cursor;
}
case URI_MATCH_DISABLE_INCOGNITO_MODE:
{
MatrixCursor cursor = new MatrixCursor(new String[] { "disableincognitomode" }, 1);
cursor.addRow(new Object[] { 1 });
return cursor;
}
case URI_MATCH_DISABLE_BOOKMARKS_EDITING:
{
MatrixCursor cursor = new MatrixCursor(
new String[] { "disablebookmarksediting" }, 1);
cursor.addRow(new Object[] { 1 });
return cursor;
}
default:
return null;
}
}
@Override
public Uri insert(Uri uri, ContentValues values) {
throw new UnsupportedOperationException();
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
throw new UnsupportedOperationException();
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
throw new UnsupportedOperationException();
}
}