ContextWrapper.java revision 870e09fcd2dfdc12ac318962efd28b0420c562bb
1/* 2 * Copyright (C) 2006 The Android Open Source Project 3 * 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 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 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. 15 */ 16 17package android.content; 18 19import android.content.pm.ApplicationInfo; 20import android.content.pm.PackageManager; 21import android.content.res.AssetManager; 22import android.content.res.Resources; 23import android.database.sqlite.SQLiteDatabase; 24import android.database.sqlite.SQLiteDatabase.CursorFactory; 25import android.graphics.Bitmap; 26import android.graphics.drawable.Drawable; 27import android.net.Uri; 28import android.os.Bundle; 29import android.os.Handler; 30import android.os.Looper; 31 32import java.io.File; 33import java.io.FileInputStream; 34import java.io.FileNotFoundException; 35import java.io.FileOutputStream; 36import java.io.IOException; 37import java.io.InputStream; 38 39/** 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. 43 */ 44public class ContextWrapper extends Context { 45 Context mBase; 46 47 public ContextWrapper(Context base) { 48 mBase = base; 49 } 50 51 /** 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. 55 * 56 * @param base The new base context for this wrapper. 57 */ 58 protected void attachBaseContext(Context base) { 59 if (mBase != null) { 60 throw new IllegalStateException("Base context already set"); 61 } 62 mBase = base; 63 } 64 65 /** 66 * @return the base context as set by the constructor or setBaseContext 67 */ 68 public Context getBaseContext() { 69 return mBase; 70 } 71 72 @Override 73 public AssetManager getAssets() { 74 return mBase.getAssets(); 75 } 76 77 @Override 78 public Resources getResources() 79 { 80 return mBase.getResources(); 81 } 82 83 @Override 84 public PackageManager getPackageManager() { 85 return mBase.getPackageManager(); 86 } 87 88 @Override 89 public ContentResolver getContentResolver() { 90 return mBase.getContentResolver(); 91 } 92 93 @Override 94 public Looper getMainLooper() { 95 return mBase.getMainLooper(); 96 } 97 98 @Override 99 public Context getApplicationContext() { 100 return mBase.getApplicationContext(); 101 } 102 103 @Override 104 public void setTheme(int resid) { 105 mBase.setTheme(resid); 106 } 107 108 @Override 109 public Resources.Theme getTheme() { 110 return mBase.getTheme(); 111 } 112 113 @Override 114 public ClassLoader getClassLoader() { 115 return mBase.getClassLoader(); 116 } 117 118 @Override 119 public String getPackageName() { 120 return mBase.getPackageName(); 121 } 122 123 @Override 124 public ApplicationInfo getApplicationInfo() { 125 return mBase.getApplicationInfo(); 126 } 127 128 @Override 129 public String getPackageResourcePath() { 130 return mBase.getPackageResourcePath(); 131 } 132 133 @Override 134 public String getPackageCodePath() { 135 return mBase.getPackageCodePath(); 136 } 137 138 @Override 139 public File getSharedPrefsFile(String name) { 140 return mBase.getSharedPrefsFile(name); 141 } 142 143 @Override 144 public SharedPreferences getSharedPreferences(String name, int mode) { 145 return mBase.getSharedPreferences(name, mode); 146 } 147 148 @Override 149 public FileInputStream openFileInput(String name) 150 throws FileNotFoundException { 151 return mBase.openFileInput(name); 152 } 153 154 @Override 155 public FileOutputStream openFileOutput(String name, int mode) 156 throws FileNotFoundException { 157 return mBase.openFileOutput(name, mode); 158 } 159 160 @Override 161 public boolean deleteFile(String name) { 162 return mBase.deleteFile(name); 163 } 164 165 @Override 166 public File getFileStreamPath(String name) { 167 return mBase.getFileStreamPath(name); 168 } 169 170 @Override 171 public String[] fileList() { 172 return mBase.fileList(); 173 } 174 175 @Override 176 public File getFilesDir() { 177 return mBase.getFilesDir(); 178 } 179 180 @Override 181 public File getCacheDir() { 182 return mBase.getCacheDir(); 183 } 184 185 @Override 186 public File getDir(String name, int mode) { 187 return mBase.getDir(name, mode); 188 } 189 190 @Override 191 public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory) { 192 return mBase.openOrCreateDatabase(name, mode, factory); 193 } 194 195 @Override 196 public boolean deleteDatabase(String name) { 197 return mBase.deleteDatabase(name); 198 } 199 200 @Override 201 public File getDatabasePath(String name) { 202 return mBase.getDatabasePath(name); 203 } 204 205 @Override 206 public String[] databaseList() { 207 return mBase.databaseList(); 208 } 209 210 @Override 211 public Drawable getWallpaper() { 212 return mBase.getWallpaper(); 213 } 214 215 @Override 216 public Drawable peekWallpaper() { 217 return mBase.peekWallpaper(); 218 } 219 220 @Override 221 public int getWallpaperDesiredMinimumWidth() { 222 return mBase.getWallpaperDesiredMinimumWidth(); 223 } 224 225 @Override 226 public int getWallpaperDesiredMinimumHeight() { 227 return mBase.getWallpaperDesiredMinimumHeight(); 228 } 229 230 @Override 231 public void setWallpaper(Bitmap bitmap) throws IOException { 232 mBase.setWallpaper(bitmap); 233 } 234 235 @Override 236 public void setWallpaper(InputStream data) throws IOException { 237 mBase.setWallpaper(data); 238 } 239 240 @Override 241 public void clearWallpaper() throws IOException { 242 mBase.clearWallpaper(); 243 } 244 245 @Override 246 public void startActivity(Intent intent) { 247 mBase.startActivity(intent); 248 } 249 250 @Override 251 public void sendBroadcast(Intent intent) { 252 mBase.sendBroadcast(intent); 253 } 254 255 @Override 256 public void sendBroadcast(Intent intent, String receiverPermission) { 257 mBase.sendBroadcast(intent, receiverPermission); 258 } 259 260 @Override 261 public void sendOrderedBroadcast(Intent intent, 262 String receiverPermission) { 263 mBase.sendOrderedBroadcast(intent, receiverPermission); 264 } 265 266 @Override 267 public void sendOrderedBroadcast( 268 Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, 269 Handler scheduler, int initialCode, String initialData, 270 Bundle initialExtras) { 271 mBase.sendOrderedBroadcast(intent, receiverPermission, 272 resultReceiver, scheduler, initialCode, 273 initialData, initialExtras); 274 } 275 276 @Override 277 public void sendStickyBroadcast(Intent intent) { 278 mBase.sendStickyBroadcast(intent); 279 } 280 281 @Override 282 public void removeStickyBroadcast(Intent intent) { 283 mBase.removeStickyBroadcast(intent); 284 } 285 286 @Override 287 public Intent registerReceiver( 288 BroadcastReceiver receiver, IntentFilter filter) { 289 return mBase.registerReceiver(receiver, filter); 290 } 291 292 @Override 293 public Intent registerReceiver( 294 BroadcastReceiver receiver, IntentFilter filter, 295 String broadcastPermission, Handler scheduler) { 296 return mBase.registerReceiver(receiver, filter, broadcastPermission, 297 scheduler); 298 } 299 300 @Override 301 public void unregisterReceiver(BroadcastReceiver receiver) { 302 mBase.unregisterReceiver(receiver); 303 } 304 305 @Override 306 public ComponentName startService(Intent service) { 307 return mBase.startService(service); 308 } 309 310 @Override 311 public boolean stopService(Intent name) { 312 return mBase.stopService(name); 313 } 314 315 @Override 316 public boolean bindService(Intent service, ServiceConnection conn, 317 int flags) { 318 return mBase.bindService(service, conn, flags); 319 } 320 321 @Override 322 public void unbindService(ServiceConnection conn) { 323 mBase.unbindService(conn); 324 } 325 326 @Override 327 public boolean startInstrumentation(ComponentName className, 328 String profileFile, Bundle arguments) { 329 return mBase.startInstrumentation(className, profileFile, arguments); 330 } 331 332 @Override 333 public Object getSystemService(String name) { 334 return mBase.getSystemService(name); 335 } 336 337 @Override 338 public int checkPermission(String permission, int pid, int uid) { 339 return mBase.checkPermission(permission, pid, uid); 340 } 341 342 @Override 343 public int checkCallingPermission(String permission) { 344 return mBase.checkCallingPermission(permission); 345 } 346 347 @Override 348 public int checkCallingOrSelfPermission(String permission) { 349 return mBase.checkCallingOrSelfPermission(permission); 350 } 351 352 @Override 353 public void enforcePermission( 354 String permission, int pid, int uid, String message) { 355 mBase.enforcePermission(permission, pid, uid, message); 356 } 357 358 @Override 359 public void enforceCallingPermission(String permission, String message) { 360 mBase.enforceCallingPermission(permission, message); 361 } 362 363 @Override 364 public void enforceCallingOrSelfPermission( 365 String permission, String message) { 366 mBase.enforceCallingOrSelfPermission(permission, message); 367 } 368 369 @Override 370 public void grantUriPermission(String toPackage, Uri uri, int modeFlags) { 371 mBase.grantUriPermission(toPackage, uri, modeFlags); 372 } 373 374 @Override 375 public void revokeUriPermission(Uri uri, int modeFlags) { 376 mBase.revokeUriPermission(uri, modeFlags); 377 } 378 379 @Override 380 public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) { 381 return mBase.checkUriPermission(uri, pid, uid, modeFlags); 382 } 383 384 @Override 385 public int checkCallingUriPermission(Uri uri, int modeFlags) { 386 return mBase.checkCallingUriPermission(uri, modeFlags); 387 } 388 389 @Override 390 public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) { 391 return mBase.checkCallingOrSelfUriPermission(uri, modeFlags); 392 } 393 394 @Override 395 public int checkUriPermission(Uri uri, String readPermission, 396 String writePermission, int pid, int uid, int modeFlags) { 397 return mBase.checkUriPermission(uri, readPermission, writePermission, 398 pid, uid, modeFlags); 399 } 400 401 @Override 402 public void enforceUriPermission( 403 Uri uri, int pid, int uid, int modeFlags, String message) { 404 mBase.enforceUriPermission(uri, pid, uid, modeFlags, message); 405 } 406 407 @Override 408 public void enforceCallingUriPermission( 409 Uri uri, int modeFlags, String message) { 410 mBase.enforceCallingUriPermission(uri, modeFlags, message); 411 } 412 413 @Override 414 public void enforceCallingOrSelfUriPermission( 415 Uri uri, int modeFlags, String message) { 416 mBase.enforceCallingOrSelfUriPermission(uri, modeFlags, message); 417 } 418 419 @Override 420 public void enforceUriPermission( 421 Uri uri, String readPermission, String writePermission, 422 int pid, int uid, int modeFlags, String message) { 423 mBase.enforceUriPermission( 424 uri, readPermission, writePermission, pid, uid, modeFlags, 425 message); 426 } 427 428 @Override 429 public Context createPackageContext(String packageName, int flags) 430 throws PackageManager.NameNotFoundException { 431 return mBase.createPackageContext(packageName, flags); 432 } 433 434 @Override 435 public boolean isRestricted() { 436 return mBase.isRestricted(); 437 } 438} 439