2 * Copyright (C) 2006 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package android.content;
19 import android.content.pm.ApplicationInfo;
20 import android.content.pm.PackageManager;
21 import android.content.res.AssetManager;
22 import android.content.res.Resources;
23 import android.database.sqlite.SQLiteDatabase;
24 import android.database.sqlite.SQLiteDatabase.CursorFactory;
25 import android.graphics.Bitmap;
26 import android.graphics.drawable.Drawable;
27 import android.net.Uri;
28 import android.os.Bundle;
29 import android.os.Handler;
30 import android.os.Looper;
33 import java.io.FileInputStream;
34 import java.io.FileNotFoundException;
35 import java.io.FileOutputStream;
36 import java.io.IOException;
37 import java.io.InputStream;
40 * Proxying implementation of Context that simply delegates all of its calls to
41 * another Context. Can be subclassed to modify behavior without changing
42 * the original Context.
44 public class ContextWrapper extends Context {
47 public ContextWrapper(Context base) {
52 * Set the base context for this ContextWrapper. All calls will then be
53 * delegated to the base context. Throws
54 * IllegalStateException if a base context has already been set.
56 * @param base The new base context for this wrapper.
58 protected void attachBaseContext(Context base) {
60 throw new IllegalStateException("Base context already set");
66 * @return the base context as set by the constructor or setBaseContext
68 public Context getBaseContext() {
73 public AssetManager getAssets() {
74 return mBase.getAssets();
78 public Resources getResources()
80 return mBase.getResources();
84 public PackageManager getPackageManager() {
85 return mBase.getPackageManager();
89 public ContentResolver getContentResolver() {
90 return mBase.getContentResolver();
94 public Looper getMainLooper() {
95 return mBase.getMainLooper();
99 public Context getApplicationContext() {
100 return mBase.getApplicationContext();
104 public void setTheme(int resid) {
105 mBase.setTheme(resid);
109 public Resources.Theme getTheme() {
110 return mBase.getTheme();
114 public ClassLoader getClassLoader() {
115 return mBase.getClassLoader();
119 public String getPackageName() {
120 return mBase.getPackageName();
124 public ApplicationInfo getApplicationInfo() {
125 return mBase.getApplicationInfo();
129 public String getPackageResourcePath() {
130 return mBase.getPackageResourcePath();
134 public String getPackageCodePath() {
135 return mBase.getPackageCodePath();
140 public File getSharedPrefsFile(String name) {
141 return mBase.getSharedPrefsFile(name);
145 public SharedPreferences getSharedPreferences(String name, int mode) {
146 return mBase.getSharedPreferences(name, mode);
150 public FileInputStream openFileInput(String name)
151 throws FileNotFoundException {
152 return mBase.openFileInput(name);
156 public FileOutputStream openFileOutput(String name, int mode)
157 throws FileNotFoundException {
158 return mBase.openFileOutput(name, mode);
162 public boolean deleteFile(String name) {
163 return mBase.deleteFile(name);
167 public File getFileStreamPath(String name) {
168 return mBase.getFileStreamPath(name);
172 public String[] fileList() {
173 return mBase.fileList();
177 public File getFilesDir() {
178 return mBase.getFilesDir();
182 public File getExternalFilesDir(String type) {
183 return mBase.getExternalFilesDir(type);
187 public File getCacheDir() {
188 return mBase.getCacheDir();
192 public File getExternalCacheDir() {
193 return mBase.getExternalCacheDir();
197 public File getDir(String name, int mode) {
198 return mBase.getDir(name, mode);
202 public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory) {
203 return mBase.openOrCreateDatabase(name, mode, factory);
207 public boolean deleteDatabase(String name) {
208 return mBase.deleteDatabase(name);
212 public File getDatabasePath(String name) {
213 return mBase.getDatabasePath(name);
217 public String[] databaseList() {
218 return mBase.databaseList();
222 public Drawable getWallpaper() {
223 return mBase.getWallpaper();
227 public Drawable peekWallpaper() {
228 return mBase.peekWallpaper();
232 public int getWallpaperDesiredMinimumWidth() {
233 return mBase.getWallpaperDesiredMinimumWidth();
237 public int getWallpaperDesiredMinimumHeight() {
238 return mBase.getWallpaperDesiredMinimumHeight();
242 public void setWallpaper(Bitmap bitmap) throws IOException {
243 mBase.setWallpaper(bitmap);
247 public void setWallpaper(InputStream data) throws IOException {
248 mBase.setWallpaper(data);
252 public void clearWallpaper() throws IOException {
253 mBase.clearWallpaper();
257 public void startActivity(Intent intent) {
258 mBase.startActivity(intent);
262 public void startIntentSender(IntentSender intent,
263 Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)
264 throws IntentSender.SendIntentException {
265 mBase.startIntentSender(intent, fillInIntent, flagsMask,
266 flagsValues, extraFlags);
270 public void sendBroadcast(Intent intent) {
271 mBase.sendBroadcast(intent);
275 public void sendBroadcast(Intent intent, String receiverPermission) {
276 mBase.sendBroadcast(intent, receiverPermission);
280 public void sendOrderedBroadcast(Intent intent,
281 String receiverPermission) {
282 mBase.sendOrderedBroadcast(intent, receiverPermission);
286 public void sendOrderedBroadcast(
287 Intent intent, String receiverPermission, BroadcastReceiver resultReceiver,
288 Handler scheduler, int initialCode, String initialData,
289 Bundle initialExtras) {
290 mBase.sendOrderedBroadcast(intent, receiverPermission,
291 resultReceiver, scheduler, initialCode,
292 initialData, initialExtras);
296 public void sendStickyBroadcast(Intent intent) {
297 mBase.sendStickyBroadcast(intent);
301 public void sendStickyOrderedBroadcast(
302 Intent intent, BroadcastReceiver resultReceiver,
303 Handler scheduler, int initialCode, String initialData,
304 Bundle initialExtras) {
305 mBase.sendStickyOrderedBroadcast(intent,
306 resultReceiver, scheduler, initialCode,
307 initialData, initialExtras);
311 public void removeStickyBroadcast(Intent intent) {
312 mBase.removeStickyBroadcast(intent);
316 public Intent registerReceiver(
317 BroadcastReceiver receiver, IntentFilter filter) {
318 return mBase.registerReceiver(receiver, filter);
322 public Intent registerReceiver(
323 BroadcastReceiver receiver, IntentFilter filter,
324 String broadcastPermission, Handler scheduler) {
325 return mBase.registerReceiver(receiver, filter, broadcastPermission,
330 public void unregisterReceiver(BroadcastReceiver receiver) {
331 mBase.unregisterReceiver(receiver);
335 public ComponentName startService(Intent service) {
336 return mBase.startService(service);
340 public boolean stopService(Intent name) {
341 return mBase.stopService(name);
345 public boolean bindService(Intent service, ServiceConnection conn,
347 return mBase.bindService(service, conn, flags);
351 public void unbindService(ServiceConnection conn) {
352 mBase.unbindService(conn);
356 public boolean startInstrumentation(ComponentName className,
357 String profileFile, Bundle arguments) {
358 return mBase.startInstrumentation(className, profileFile, arguments);
362 public Object getSystemService(String name) {
363 return mBase.getSystemService(name);
367 public int checkPermission(String permission, int pid, int uid) {
368 return mBase.checkPermission(permission, pid, uid);
372 public int checkCallingPermission(String permission) {
373 return mBase.checkCallingPermission(permission);
377 public int checkCallingOrSelfPermission(String permission) {
378 return mBase.checkCallingOrSelfPermission(permission);
382 public void enforcePermission(
383 String permission, int pid, int uid, String message) {
384 mBase.enforcePermission(permission, pid, uid, message);
388 public void enforceCallingPermission(String permission, String message) {
389 mBase.enforceCallingPermission(permission, message);
393 public void enforceCallingOrSelfPermission(
394 String permission, String message) {
395 mBase.enforceCallingOrSelfPermission(permission, message);
399 public void grantUriPermission(String toPackage, Uri uri, int modeFlags) {
400 mBase.grantUriPermission(toPackage, uri, modeFlags);
404 public void revokeUriPermission(Uri uri, int modeFlags) {
405 mBase.revokeUriPermission(uri, modeFlags);
409 public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) {
410 return mBase.checkUriPermission(uri, pid, uid, modeFlags);
414 public int checkCallingUriPermission(Uri uri, int modeFlags) {
415 return mBase.checkCallingUriPermission(uri, modeFlags);
419 public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) {
420 return mBase.checkCallingOrSelfUriPermission(uri, modeFlags);
424 public int checkUriPermission(Uri uri, String readPermission,
425 String writePermission, int pid, int uid, int modeFlags) {
426 return mBase.checkUriPermission(uri, readPermission, writePermission,
427 pid, uid, modeFlags);
431 public void enforceUriPermission(
432 Uri uri, int pid, int uid, int modeFlags, String message) {
433 mBase.enforceUriPermission(uri, pid, uid, modeFlags, message);
437 public void enforceCallingUriPermission(
438 Uri uri, int modeFlags, String message) {
439 mBase.enforceCallingUriPermission(uri, modeFlags, message);
443 public void enforceCallingOrSelfUriPermission(
444 Uri uri, int modeFlags, String message) {
445 mBase.enforceCallingOrSelfUriPermission(uri, modeFlags, message);
449 public void enforceUriPermission(
450 Uri uri, String readPermission, String writePermission,
451 int pid, int uid, int modeFlags, String message) {
452 mBase.enforceUriPermission(
453 uri, readPermission, writePermission, pid, uid, modeFlags,
458 public Context createPackageContext(String packageName, int flags)
459 throws PackageManager.NameNotFoundException {
460 return mBase.createPackageContext(packageName, flags);
464 public boolean isRestricted() {
465 return mBase.isRestricted();