• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
17 package android.content;
18 
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;
31 
32 import java.io.File;
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;
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  */
44 public class ContextWrapper extends Context {
45     Context mBase;
46 
ContextWrapper(Context base)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      */
attachBaseContext(Context base)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      */
getBaseContext()68     public Context getBaseContext() {
69         return mBase;
70     }
71 
72     @Override
getAssets()73     public AssetManager getAssets() {
74         return mBase.getAssets();
75     }
76 
77     @Override
getResources()78     public Resources getResources()
79     {
80         return mBase.getResources();
81     }
82 
83     @Override
getPackageManager()84     public PackageManager getPackageManager() {
85         return mBase.getPackageManager();
86     }
87 
88     @Override
getContentResolver()89     public ContentResolver getContentResolver() {
90         return mBase.getContentResolver();
91     }
92 
93     @Override
getMainLooper()94     public Looper getMainLooper() {
95         return mBase.getMainLooper();
96     }
97 
98     @Override
getApplicationContext()99     public Context getApplicationContext() {
100         return mBase.getApplicationContext();
101     }
102 
103     @Override
setTheme(int resid)104     public void setTheme(int resid) {
105         mBase.setTheme(resid);
106     }
107 
108     @Override
getTheme()109     public Resources.Theme getTheme() {
110         return mBase.getTheme();
111     }
112 
113     @Override
getClassLoader()114     public ClassLoader getClassLoader() {
115         return mBase.getClassLoader();
116     }
117 
118     @Override
getPackageName()119     public String getPackageName() {
120         return mBase.getPackageName();
121     }
122 
123     @Override
getApplicationInfo()124     public ApplicationInfo getApplicationInfo() {
125         return mBase.getApplicationInfo();
126     }
127 
128     @Override
getPackageResourcePath()129     public String getPackageResourcePath() {
130         return mBase.getPackageResourcePath();
131     }
132 
133     @Override
getPackageCodePath()134     public String getPackageCodePath() {
135         return mBase.getPackageCodePath();
136     }
137 
138     /** @hide */
139     @Override
getSharedPrefsFile(String name)140     public File getSharedPrefsFile(String name) {
141         return mBase.getSharedPrefsFile(name);
142     }
143 
144     @Override
getSharedPreferences(String name, int mode)145     public SharedPreferences getSharedPreferences(String name, int mode) {
146         return mBase.getSharedPreferences(name, mode);
147     }
148 
149     @Override
openFileInput(String name)150     public FileInputStream openFileInput(String name)
151         throws FileNotFoundException {
152         return mBase.openFileInput(name);
153     }
154 
155     @Override
openFileOutput(String name, int mode)156     public FileOutputStream openFileOutput(String name, int mode)
157         throws FileNotFoundException {
158         return mBase.openFileOutput(name, mode);
159     }
160 
161     @Override
deleteFile(String name)162     public boolean deleteFile(String name) {
163         return mBase.deleteFile(name);
164     }
165 
166     @Override
getFileStreamPath(String name)167     public File getFileStreamPath(String name) {
168         return mBase.getFileStreamPath(name);
169     }
170 
171     @Override
fileList()172     public String[] fileList() {
173         return mBase.fileList();
174     }
175 
176     @Override
getFilesDir()177     public File getFilesDir() {
178         return mBase.getFilesDir();
179     }
180 
181     @Override
getExternalFilesDir(String type)182     public File getExternalFilesDir(String type) {
183         return mBase.getExternalFilesDir(type);
184     }
185 
186     @Override
getCacheDir()187     public File getCacheDir() {
188         return mBase.getCacheDir();
189     }
190 
191     @Override
getExternalCacheDir()192     public File getExternalCacheDir() {
193         return mBase.getExternalCacheDir();
194     }
195 
196     @Override
getDir(String name, int mode)197     public File getDir(String name, int mode) {
198         return mBase.getDir(name, mode);
199     }
200 
201     @Override
openOrCreateDatabase(String name, int mode, CursorFactory factory)202     public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory) {
203         return mBase.openOrCreateDatabase(name, mode, factory);
204     }
205 
206     @Override
deleteDatabase(String name)207     public boolean deleteDatabase(String name) {
208         return mBase.deleteDatabase(name);
209     }
210 
211     @Override
getDatabasePath(String name)212     public File getDatabasePath(String name) {
213         return mBase.getDatabasePath(name);
214     }
215 
216     @Override
databaseList()217     public String[] databaseList() {
218         return mBase.databaseList();
219     }
220 
221     @Override
getWallpaper()222     public Drawable getWallpaper() {
223         return mBase.getWallpaper();
224     }
225 
226     @Override
peekWallpaper()227     public Drawable peekWallpaper() {
228         return mBase.peekWallpaper();
229     }
230 
231     @Override
getWallpaperDesiredMinimumWidth()232     public int getWallpaperDesiredMinimumWidth() {
233         return mBase.getWallpaperDesiredMinimumWidth();
234     }
235 
236     @Override
getWallpaperDesiredMinimumHeight()237     public int getWallpaperDesiredMinimumHeight() {
238         return mBase.getWallpaperDesiredMinimumHeight();
239     }
240 
241     @Override
setWallpaper(Bitmap bitmap)242     public void setWallpaper(Bitmap bitmap) throws IOException {
243         mBase.setWallpaper(bitmap);
244     }
245 
246     @Override
setWallpaper(InputStream data)247     public void setWallpaper(InputStream data) throws IOException {
248         mBase.setWallpaper(data);
249     }
250 
251     @Override
clearWallpaper()252     public void clearWallpaper() throws IOException {
253         mBase.clearWallpaper();
254     }
255 
256     @Override
startActivity(Intent intent)257     public void startActivity(Intent intent) {
258         mBase.startActivity(intent);
259     }
260 
261     @Override
startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)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);
267     }
268 
269     @Override
sendBroadcast(Intent intent)270     public void sendBroadcast(Intent intent) {
271         mBase.sendBroadcast(intent);
272     }
273 
274     @Override
sendBroadcast(Intent intent, String receiverPermission)275     public void sendBroadcast(Intent intent, String receiverPermission) {
276         mBase.sendBroadcast(intent, receiverPermission);
277     }
278 
279     @Override
sendOrderedBroadcast(Intent intent, String receiverPermission)280     public void sendOrderedBroadcast(Intent intent,
281             String receiverPermission) {
282         mBase.sendOrderedBroadcast(intent, receiverPermission);
283     }
284 
285     @Override
sendOrderedBroadcast( Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)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);
293     }
294 
295     @Override
sendStickyBroadcast(Intent intent)296     public void sendStickyBroadcast(Intent intent) {
297         mBase.sendStickyBroadcast(intent);
298     }
299 
300     @Override
sendStickyOrderedBroadcast( Intent intent, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)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);
308     }
309 
310     @Override
removeStickyBroadcast(Intent intent)311     public void removeStickyBroadcast(Intent intent) {
312         mBase.removeStickyBroadcast(intent);
313     }
314 
315     @Override
registerReceiver( BroadcastReceiver receiver, IntentFilter filter)316     public Intent registerReceiver(
317         BroadcastReceiver receiver, IntentFilter filter) {
318         return mBase.registerReceiver(receiver, filter);
319     }
320 
321     @Override
registerReceiver( BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler)322     public Intent registerReceiver(
323         BroadcastReceiver receiver, IntentFilter filter,
324         String broadcastPermission, Handler scheduler) {
325         return mBase.registerReceiver(receiver, filter, broadcastPermission,
326                 scheduler);
327     }
328 
329     @Override
unregisterReceiver(BroadcastReceiver receiver)330     public void unregisterReceiver(BroadcastReceiver receiver) {
331         mBase.unregisterReceiver(receiver);
332     }
333 
334     @Override
startService(Intent service)335     public ComponentName startService(Intent service) {
336         return mBase.startService(service);
337     }
338 
339     @Override
stopService(Intent name)340     public boolean stopService(Intent name) {
341         return mBase.stopService(name);
342     }
343 
344     @Override
bindService(Intent service, ServiceConnection conn, int flags)345     public boolean bindService(Intent service, ServiceConnection conn,
346             int flags) {
347         return mBase.bindService(service, conn, flags);
348     }
349 
350     @Override
unbindService(ServiceConnection conn)351     public void unbindService(ServiceConnection conn) {
352         mBase.unbindService(conn);
353     }
354 
355     @Override
startInstrumentation(ComponentName className, String profileFile, Bundle arguments)356     public boolean startInstrumentation(ComponentName className,
357             String profileFile, Bundle arguments) {
358         return mBase.startInstrumentation(className, profileFile, arguments);
359     }
360 
361     @Override
getSystemService(String name)362     public Object getSystemService(String name) {
363         return mBase.getSystemService(name);
364     }
365 
366     @Override
checkPermission(String permission, int pid, int uid)367     public int checkPermission(String permission, int pid, int uid) {
368         return mBase.checkPermission(permission, pid, uid);
369     }
370 
371     @Override
checkCallingPermission(String permission)372     public int checkCallingPermission(String permission) {
373         return mBase.checkCallingPermission(permission);
374     }
375 
376     @Override
checkCallingOrSelfPermission(String permission)377     public int checkCallingOrSelfPermission(String permission) {
378         return mBase.checkCallingOrSelfPermission(permission);
379     }
380 
381     @Override
enforcePermission( String permission, int pid, int uid, String message)382     public void enforcePermission(
383             String permission, int pid, int uid, String message) {
384         mBase.enforcePermission(permission, pid, uid, message);
385     }
386 
387     @Override
enforceCallingPermission(String permission, String message)388     public void enforceCallingPermission(String permission, String message) {
389         mBase.enforceCallingPermission(permission, message);
390     }
391 
392     @Override
enforceCallingOrSelfPermission( String permission, String message)393     public void enforceCallingOrSelfPermission(
394             String permission, String message) {
395         mBase.enforceCallingOrSelfPermission(permission, message);
396     }
397 
398     @Override
grantUriPermission(String toPackage, Uri uri, int modeFlags)399     public void grantUriPermission(String toPackage, Uri uri, int modeFlags) {
400         mBase.grantUriPermission(toPackage, uri, modeFlags);
401     }
402 
403     @Override
revokeUriPermission(Uri uri, int modeFlags)404     public void revokeUriPermission(Uri uri, int modeFlags) {
405         mBase.revokeUriPermission(uri, modeFlags);
406     }
407 
408     @Override
checkUriPermission(Uri uri, int pid, int uid, int modeFlags)409     public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) {
410         return mBase.checkUriPermission(uri, pid, uid, modeFlags);
411     }
412 
413     @Override
checkCallingUriPermission(Uri uri, int modeFlags)414     public int checkCallingUriPermission(Uri uri, int modeFlags) {
415         return mBase.checkCallingUriPermission(uri, modeFlags);
416     }
417 
418     @Override
checkCallingOrSelfUriPermission(Uri uri, int modeFlags)419     public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) {
420         return mBase.checkCallingOrSelfUriPermission(uri, modeFlags);
421     }
422 
423     @Override
checkUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int 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);
428     }
429 
430     @Override
enforceUriPermission( Uri uri, int pid, int uid, int modeFlags, String message)431     public void enforceUriPermission(
432             Uri uri, int pid, int uid, int modeFlags, String message) {
433         mBase.enforceUriPermission(uri, pid, uid, modeFlags, message);
434     }
435 
436     @Override
enforceCallingUriPermission( Uri uri, int modeFlags, String message)437     public void enforceCallingUriPermission(
438             Uri uri, int modeFlags, String message) {
439         mBase.enforceCallingUriPermission(uri, modeFlags, message);
440     }
441 
442     @Override
enforceCallingOrSelfUriPermission( Uri uri, int modeFlags, String message)443     public void enforceCallingOrSelfUriPermission(
444             Uri uri, int modeFlags, String message) {
445         mBase.enforceCallingOrSelfUriPermission(uri, modeFlags, message);
446     }
447 
448     @Override
enforceUriPermission( Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags, String 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,
454                 message);
455     }
456 
457     @Override
createPackageContext(String packageName, int flags)458     public Context createPackageContext(String packageName, int flags)
459         throws PackageManager.NameNotFoundException {
460         return mBase.createPackageContext(packageName, flags);
461     }
462 
463     @Override
isRestricted()464     public boolean isRestricted() {
465         return mBase.isRestricted();
466     }
467 }
468