OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / frameworks / base / core / java / android / content / ContextWrapper.java
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
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     /** @hide */
139     @Override
140     public File getSharedPrefsFile(String name) {
141         return mBase.getSharedPrefsFile(name);
142     }
143
144     @Override
145     public SharedPreferences getSharedPreferences(String name, int mode) {
146         return mBase.getSharedPreferences(name, mode);
147     }
148
149     @Override
150     public FileInputStream openFileInput(String name)
151         throws FileNotFoundException {
152         return mBase.openFileInput(name);
153     }
154
155     @Override
156     public FileOutputStream openFileOutput(String name, int mode)
157         throws FileNotFoundException {
158         return mBase.openFileOutput(name, mode);
159     }
160
161     @Override
162     public boolean deleteFile(String name) {
163         return mBase.deleteFile(name);
164     }
165
166     @Override
167     public File getFileStreamPath(String name) {
168         return mBase.getFileStreamPath(name);
169     }
170
171     @Override
172     public String[] fileList() {
173         return mBase.fileList();
174     }
175
176     @Override
177     public File getFilesDir() {
178         return mBase.getFilesDir();
179     }
180     
181     @Override
182     public File getExternalFilesDir(String type) {
183         return mBase.getExternalFilesDir(type);
184     }
185     
186     @Override
187     public File getCacheDir() {
188         return mBase.getCacheDir();
189     }
190
191     @Override
192     public File getExternalCacheDir() {
193         return mBase.getExternalCacheDir();
194     }
195
196     @Override
197     public File getDir(String name, int mode) {
198         return mBase.getDir(name, mode);
199     }
200
201     @Override
202     public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory) {
203         return mBase.openOrCreateDatabase(name, mode, factory);
204     }
205
206     @Override
207     public boolean deleteDatabase(String name) {
208         return mBase.deleteDatabase(name);
209     }
210
211     @Override
212     public File getDatabasePath(String name) {
213         return mBase.getDatabasePath(name);
214     }
215
216     @Override
217     public String[] databaseList() {
218         return mBase.databaseList();
219     }
220
221     @Override
222     public Drawable getWallpaper() {
223         return mBase.getWallpaper();
224     }
225
226     @Override
227     public Drawable peekWallpaper() {
228         return mBase.peekWallpaper();
229     }
230
231     @Override
232     public int getWallpaperDesiredMinimumWidth() {
233         return mBase.getWallpaperDesiredMinimumWidth();
234     }
235
236     @Override
237     public int getWallpaperDesiredMinimumHeight() {
238         return mBase.getWallpaperDesiredMinimumHeight();
239     }
240
241     @Override
242     public void setWallpaper(Bitmap bitmap) throws IOException {
243         mBase.setWallpaper(bitmap);
244     }
245
246     @Override
247     public void setWallpaper(InputStream data) throws IOException {
248         mBase.setWallpaper(data);
249     }
250
251     @Override
252     public void clearWallpaper() throws IOException {
253         mBase.clearWallpaper();
254     }
255
256     @Override
257     public void startActivity(Intent intent) {
258         mBase.startActivity(intent);
259     }
260
261     @Override
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
270     public void sendBroadcast(Intent intent) {
271         mBase.sendBroadcast(intent);
272     }
273
274     @Override
275     public void sendBroadcast(Intent intent, String receiverPermission) {
276         mBase.sendBroadcast(intent, receiverPermission);
277     }
278
279     @Override
280     public void sendOrderedBroadcast(Intent intent,
281             String receiverPermission) {
282         mBase.sendOrderedBroadcast(intent, receiverPermission);
283     }
284
285     @Override
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
296     public void sendStickyBroadcast(Intent intent) {
297         mBase.sendStickyBroadcast(intent);
298     }
299
300     @Override
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
311     public void removeStickyBroadcast(Intent intent) {
312         mBase.removeStickyBroadcast(intent);
313     }
314
315     @Override
316     public Intent registerReceiver(
317         BroadcastReceiver receiver, IntentFilter filter) {
318         return mBase.registerReceiver(receiver, filter);
319     }
320
321     @Override
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
330     public void unregisterReceiver(BroadcastReceiver receiver) {
331         mBase.unregisterReceiver(receiver);
332     }
333
334     @Override
335     public ComponentName startService(Intent service) {
336         return mBase.startService(service);
337     }
338
339     @Override
340     public boolean stopService(Intent name) {
341         return mBase.stopService(name);
342     }
343
344     @Override
345     public boolean bindService(Intent service, ServiceConnection conn,
346             int flags) {
347         return mBase.bindService(service, conn, flags);
348     }
349
350     @Override
351     public void unbindService(ServiceConnection conn) {
352         mBase.unbindService(conn);
353     }
354
355     @Override
356     public boolean startInstrumentation(ComponentName className,
357             String profileFile, Bundle arguments) {
358         return mBase.startInstrumentation(className, profileFile, arguments);
359     }
360
361     @Override
362     public Object getSystemService(String name) {
363         return mBase.getSystemService(name);
364     }
365
366     @Override
367     public int checkPermission(String permission, int pid, int uid) {
368         return mBase.checkPermission(permission, pid, uid);
369     }
370
371     @Override
372     public int checkCallingPermission(String permission) {
373         return mBase.checkCallingPermission(permission);
374     }
375
376     @Override
377     public int checkCallingOrSelfPermission(String permission) {
378         return mBase.checkCallingOrSelfPermission(permission);
379     }
380
381     @Override
382     public void enforcePermission(
383             String permission, int pid, int uid, String message) {
384         mBase.enforcePermission(permission, pid, uid, message);
385     }
386
387     @Override
388     public void enforceCallingPermission(String permission, String message) {
389         mBase.enforceCallingPermission(permission, message);
390     }
391
392     @Override
393     public void enforceCallingOrSelfPermission(
394             String permission, String message) {
395         mBase.enforceCallingOrSelfPermission(permission, message);
396     }
397
398     @Override
399     public void grantUriPermission(String toPackage, Uri uri, int modeFlags) {
400         mBase.grantUriPermission(toPackage, uri, modeFlags);
401     }
402
403     @Override
404     public void revokeUriPermission(Uri uri, int modeFlags) {
405         mBase.revokeUriPermission(uri, modeFlags);
406     }
407
408     @Override
409     public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) {
410         return mBase.checkUriPermission(uri, pid, uid, modeFlags);
411     }
412
413     @Override
414     public int checkCallingUriPermission(Uri uri, int modeFlags) {
415         return mBase.checkCallingUriPermission(uri, modeFlags);
416     }
417
418     @Override
419     public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) {
420         return mBase.checkCallingOrSelfUriPermission(uri, modeFlags);
421     }
422
423     @Override
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
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
437     public void enforceCallingUriPermission(
438             Uri uri, int modeFlags, String message) {
439         mBase.enforceCallingUriPermission(uri, modeFlags, message);
440     }
441
442     @Override
443     public void enforceCallingOrSelfUriPermission(
444             Uri uri, int modeFlags, String message) {
445         mBase.enforceCallingOrSelfUriPermission(uri, modeFlags, message);
446     }
447
448     @Override
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
458     public Context createPackageContext(String packageName, int flags)
459         throws PackageManager.NameNotFoundException {
460         return mBase.createPackageContext(packageName, flags);
461     }
462
463     @Override
464     public boolean isRestricted() {
465         return mBase.isRestricted();
466     }
467 }