blob: fbd60a518be0dbfa5aac8e9bc9103089fc0a1232 [file] [log] [blame]
kevinchao(181562)4e459232020-05-19 16:35:07 +08001/*
2 * Copyright (C) 2012 The Android Open Source Project
3 * Copyright 2020-2022 Fairphone B.V.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17package com.android.providers.partnerbookmarks;
18
19import android.content.ContentProvider;
20import android.content.ContentValues;
21import android.content.UriMatcher;
22import android.content.res.Configuration;
23import android.content.res.Resources;
24import android.database.Cursor;
25import android.database.MatrixCursor;
26import android.net.Uri;
27import android.util.Log;
28
29public class PartnerHomepageProvider extends ContentProvider {
30 private static final String TAG = "PartnerHomepageProvider";
31 // Keep "http://www.android.com/" as fall-back.
32 // Other strings in this class must remain as it is.
33 private static String mHomepageUri = "http://www.android.com/";
34 private static final int URI_MATCH_HOMEPAGE = 0;
35 private static final int URI_MATCH_DISABLE_INCOGNITO_MODE = 1;
36 private static final int URI_MATCH_DISABLE_BOOKMARKS_EDITING = 2;
37 private static final UriMatcher URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
38
39 static {
40 URI_MATCHER.addURI(
41 "com.android.partnerbrowsercustomizations", "homepage", URI_MATCH_HOMEPAGE);
42 }
43
44 private boolean prepareHomepageUri() {
45 Resources res = getContext().getResources();
46 try {
47 mHomepageUri = res.getString(R.string.homepage_uri);
48 } catch (android.content.res.Resources.NotFoundException e) {
49 Log.e(TAG, "prepareHomepageUri failed to fetch resources; bailing out");
50 e.printStackTrace();
51 return false;
52 }
53
54 return true;
55 }
56
57 @Override
58 public boolean onCreate() {
59 prepareHomepageUri();
60 Log.d(TAG, "onCreate mHomepageUri=" + mHomepageUri);
61 return true;
62 }
63
64 @Override
65 public void onConfigurationChanged(Configuration newConfig) {
66 prepareHomepageUri();
67 Log.d(TAG, "onConfigurationChanged mHomepageUri=" + mHomepageUri);
68 }
69
70 @Override
71 public String getType(Uri uri) {
72 switch (URI_MATCHER.match(uri)) {
73 case URI_MATCH_HOMEPAGE:
74 return "vnd.android.cursor.item/partnerhomepage";
75 case URI_MATCH_DISABLE_INCOGNITO_MODE:
76 return "vnd.android.cursor.item/partnerdisableincognitomode";
77 case URI_MATCH_DISABLE_BOOKMARKS_EDITING:
78 return "vnd.android.cursor.item/partnerdisablebookmarksediting";
79 default:
80 return null;
81 }
82 }
83
84 @Override
85 public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
86 String sortOrder) {
87 switch (URI_MATCHER.match(uri)) {
88 case URI_MATCH_HOMEPAGE: {
89 MatrixCursor cursor = new MatrixCursor(new String[]{"homepage"}, 1);
90 cursor.addRow(new Object[]{mHomepageUri});
91 return cursor;
92 }
93 case URI_MATCH_DISABLE_INCOGNITO_MODE: {
94 MatrixCursor cursor =
95 new MatrixCursor(new String[]{"disableincognitomode"}, 1);
96 cursor.addRow(new Object[]{1});
97 return cursor;
98 }
99 case URI_MATCH_DISABLE_BOOKMARKS_EDITING: {
100 MatrixCursor cursor =
101 new MatrixCursor(new String[]{"disablebookmarksediting"}, 1);
102 cursor.addRow(new Object[]{1});
103 return cursor;
104 }
105 default:
106 return null;
107 }
108 }
109
110 @Override
111 public Uri insert(Uri uri, ContentValues values) {
112 throw new UnsupportedOperationException();
113 }
114
115 @Override
116 public int delete(Uri uri, String selection, String[] selectionArgs) {
117 throw new UnsupportedOperationException();
118 }
119
120 @Override
121 public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
122 throw new UnsupportedOperationException();
123 }
124}