• 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.annotation.SystemApi;
20 import android.annotation.TestApi;
21 import android.annotation.UnsupportedAppUsage;
22 import android.app.IApplicationThread;
23 import android.app.IServiceConnection;
24 import android.content.pm.ApplicationInfo;
25 import android.content.pm.PackageManager;
26 import android.content.res.AssetManager;
27 import android.content.res.Configuration;
28 import android.content.res.Resources;
29 import android.database.DatabaseErrorHandler;
30 import android.database.sqlite.SQLiteDatabase;
31 import android.database.sqlite.SQLiteDatabase.CursorFactory;
32 import android.graphics.Bitmap;
33 import android.graphics.drawable.Drawable;
34 import android.net.Uri;
35 import android.os.Bundle;
36 import android.os.Handler;
37 import android.os.IBinder;
38 import android.os.Looper;
39 import android.os.UserHandle;
40 import android.view.Display;
41 import android.view.DisplayAdjustments;
42 import android.view.autofill.AutofillManager.AutofillClient;
43 
44 import java.io.File;
45 import java.io.FileInputStream;
46 import java.io.FileNotFoundException;
47 import java.io.FileOutputStream;
48 import java.io.IOException;
49 import java.io.InputStream;
50 import java.util.concurrent.Executor;
51 
52 /**
53  * Proxying implementation of Context that simply delegates all of its calls to
54  * another Context.  Can be subclassed to modify behavior without changing
55  * the original Context.
56  */
57 public class ContextWrapper extends Context {
58     @UnsupportedAppUsage
59     Context mBase;
60 
ContextWrapper(Context base)61     public ContextWrapper(Context base) {
62         mBase = base;
63     }
64 
65     /**
66      * Set the base context for this ContextWrapper.  All calls will then be
67      * delegated to the base context.  Throws
68      * IllegalStateException if a base context has already been set.
69      *
70      * @param base The new base context for this wrapper.
71      */
attachBaseContext(Context base)72     protected void attachBaseContext(Context base) {
73         if (mBase != null) {
74             throw new IllegalStateException("Base context already set");
75         }
76         mBase = base;
77     }
78 
79     /**
80      * @return the base context as set by the constructor or setBaseContext
81      */
getBaseContext()82     public Context getBaseContext() {
83         return mBase;
84     }
85 
86     @Override
getAssets()87     public AssetManager getAssets() {
88         return mBase.getAssets();
89     }
90 
91     @Override
getResources()92     public Resources getResources() {
93         return mBase.getResources();
94     }
95 
96     @Override
getPackageManager()97     public PackageManager getPackageManager() {
98         return mBase.getPackageManager();
99     }
100 
101     @Override
getContentResolver()102     public ContentResolver getContentResolver() {
103         return mBase.getContentResolver();
104     }
105 
106     @Override
getMainLooper()107     public Looper getMainLooper() {
108         return mBase.getMainLooper();
109     }
110 
111     @Override
getMainExecutor()112     public Executor getMainExecutor() {
113         return mBase.getMainExecutor();
114     }
115 
116     @Override
getApplicationContext()117     public Context getApplicationContext() {
118         return mBase.getApplicationContext();
119     }
120 
121     @Override
setTheme(int resid)122     public void setTheme(int resid) {
123         mBase.setTheme(resid);
124     }
125 
126     /** @hide */
127     @Override
128     @UnsupportedAppUsage
getThemeResId()129     public int getThemeResId() {
130         return mBase.getThemeResId();
131     }
132 
133     @Override
getTheme()134     public Resources.Theme getTheme() {
135         return mBase.getTheme();
136     }
137 
138     @Override
getClassLoader()139     public ClassLoader getClassLoader() {
140         return mBase.getClassLoader();
141     }
142 
143     @Override
getPackageName()144     public String getPackageName() {
145         return mBase.getPackageName();
146     }
147 
148     /** @hide */
149     @Override
150     @UnsupportedAppUsage
getBasePackageName()151     public String getBasePackageName() {
152         return mBase.getBasePackageName();
153     }
154 
155     /** @hide */
156     @Override
getOpPackageName()157     public String getOpPackageName() {
158         return mBase.getOpPackageName();
159     }
160 
161     @Override
getApplicationInfo()162     public ApplicationInfo getApplicationInfo() {
163         return mBase.getApplicationInfo();
164     }
165 
166     @Override
getPackageResourcePath()167     public String getPackageResourcePath() {
168         return mBase.getPackageResourcePath();
169     }
170 
171     @Override
getPackageCodePath()172     public String getPackageCodePath() {
173         return mBase.getPackageCodePath();
174     }
175 
176     @Override
getSharedPreferences(String name, int mode)177     public SharedPreferences getSharedPreferences(String name, int mode) {
178         return mBase.getSharedPreferences(name, mode);
179     }
180 
181     /** @removed */
182     @Override
getSharedPreferences(File file, int mode)183     public SharedPreferences getSharedPreferences(File file, int mode) {
184         return mBase.getSharedPreferences(file, mode);
185     }
186 
187     /** @hide */
188     @Override
reloadSharedPreferences()189     public void reloadSharedPreferences() {
190         mBase.reloadSharedPreferences();
191     }
192 
193     @Override
moveSharedPreferencesFrom(Context sourceContext, String name)194     public boolean moveSharedPreferencesFrom(Context sourceContext, String name) {
195         return mBase.moveSharedPreferencesFrom(sourceContext, name);
196     }
197 
198     @Override
deleteSharedPreferences(String name)199     public boolean deleteSharedPreferences(String name) {
200         return mBase.deleteSharedPreferences(name);
201     }
202 
203     @Override
openFileInput(String name)204     public FileInputStream openFileInput(String name)
205         throws FileNotFoundException {
206         return mBase.openFileInput(name);
207     }
208 
209     @Override
openFileOutput(String name, int mode)210     public FileOutputStream openFileOutput(String name, int mode)
211         throws FileNotFoundException {
212         return mBase.openFileOutput(name, mode);
213     }
214 
215     @Override
deleteFile(String name)216     public boolean deleteFile(String name) {
217         return mBase.deleteFile(name);
218     }
219 
220     @Override
getFileStreamPath(String name)221     public File getFileStreamPath(String name) {
222         return mBase.getFileStreamPath(name);
223     }
224 
225     /** @removed */
226     @Override
getSharedPreferencesPath(String name)227     public File getSharedPreferencesPath(String name) {
228         return mBase.getSharedPreferencesPath(name);
229     }
230 
231     @Override
fileList()232     public String[] fileList() {
233         return mBase.fileList();
234     }
235 
236     @Override
getDataDir()237     public File getDataDir() {
238         return mBase.getDataDir();
239     }
240 
241     @Override
getFilesDir()242     public File getFilesDir() {
243         return mBase.getFilesDir();
244     }
245 
246     @Override
getNoBackupFilesDir()247     public File getNoBackupFilesDir() {
248         return mBase.getNoBackupFilesDir();
249     }
250 
251     @Override
getExternalFilesDir(String type)252     public File getExternalFilesDir(String type) {
253         return mBase.getExternalFilesDir(type);
254     }
255 
256     @Override
getExternalFilesDirs(String type)257     public File[] getExternalFilesDirs(String type) {
258         return mBase.getExternalFilesDirs(type);
259     }
260 
261     @Override
getObbDir()262     public File getObbDir() {
263         return mBase.getObbDir();
264     }
265 
266     @Override
getObbDirs()267     public File[] getObbDirs() {
268         return mBase.getObbDirs();
269     }
270 
271     @Override
getCacheDir()272     public File getCacheDir() {
273         return mBase.getCacheDir();
274     }
275 
276     @Override
getCodeCacheDir()277     public File getCodeCacheDir() {
278         return mBase.getCodeCacheDir();
279     }
280 
281     @Override
getExternalCacheDir()282     public File getExternalCacheDir() {
283         return mBase.getExternalCacheDir();
284     }
285 
286     @Override
getExternalCacheDirs()287     public File[] getExternalCacheDirs() {
288         return mBase.getExternalCacheDirs();
289     }
290 
291     @Override
getExternalMediaDirs()292     public File[] getExternalMediaDirs() {
293         return mBase.getExternalMediaDirs();
294     }
295 
296     @Override
getDir(String name, int mode)297     public File getDir(String name, int mode) {
298         return mBase.getDir(name, mode);
299     }
300 
301 
302     /** @hide **/
303     @Override
getPreloadsFileCache()304     public File getPreloadsFileCache() {
305         return mBase.getPreloadsFileCache();
306     }
307 
308     @Override
openOrCreateDatabase(String name, int mode, CursorFactory factory)309     public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory) {
310         return mBase.openOrCreateDatabase(name, mode, factory);
311     }
312 
313     @Override
openOrCreateDatabase(String name, int mode, CursorFactory factory, DatabaseErrorHandler errorHandler)314     public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory,
315             DatabaseErrorHandler errorHandler) {
316         return mBase.openOrCreateDatabase(name, mode, factory, errorHandler);
317     }
318 
319     @Override
moveDatabaseFrom(Context sourceContext, String name)320     public boolean moveDatabaseFrom(Context sourceContext, String name) {
321         return mBase.moveDatabaseFrom(sourceContext, name);
322     }
323 
324     @Override
deleteDatabase(String name)325     public boolean deleteDatabase(String name) {
326         return mBase.deleteDatabase(name);
327     }
328 
329     @Override
getDatabasePath(String name)330     public File getDatabasePath(String name) {
331         return mBase.getDatabasePath(name);
332     }
333 
334     @Override
databaseList()335     public String[] databaseList() {
336         return mBase.databaseList();
337     }
338 
339     @Override
340     @Deprecated
getWallpaper()341     public Drawable getWallpaper() {
342         return mBase.getWallpaper();
343     }
344 
345     @Override
346     @Deprecated
peekWallpaper()347     public Drawable peekWallpaper() {
348         return mBase.peekWallpaper();
349     }
350 
351     @Override
352     @Deprecated
getWallpaperDesiredMinimumWidth()353     public int getWallpaperDesiredMinimumWidth() {
354         return mBase.getWallpaperDesiredMinimumWidth();
355     }
356 
357     @Override
358     @Deprecated
getWallpaperDesiredMinimumHeight()359     public int getWallpaperDesiredMinimumHeight() {
360         return mBase.getWallpaperDesiredMinimumHeight();
361     }
362 
363     @Override
364     @Deprecated
setWallpaper(Bitmap bitmap)365     public void setWallpaper(Bitmap bitmap) throws IOException {
366         mBase.setWallpaper(bitmap);
367     }
368 
369     @Override
370     @Deprecated
setWallpaper(InputStream data)371     public void setWallpaper(InputStream data) throws IOException {
372         mBase.setWallpaper(data);
373     }
374 
375     @Override
376     @Deprecated
clearWallpaper()377     public void clearWallpaper() throws IOException {
378         mBase.clearWallpaper();
379     }
380 
381     @Override
startActivity(Intent intent)382     public void startActivity(Intent intent) {
383         mBase.startActivity(intent);
384     }
385 
386     /** @hide */
387     @Override
startActivityAsUser(Intent intent, UserHandle user)388     public void startActivityAsUser(Intent intent, UserHandle user) {
389         mBase.startActivityAsUser(intent, user);
390     }
391 
392     /** @hide **/
startActivityForResult( String who, Intent intent, int requestCode, Bundle options)393     public void startActivityForResult(
394             String who, Intent intent, int requestCode, Bundle options) {
395         mBase.startActivityForResult(who, intent, requestCode, options);
396     }
397 
398     /** @hide **/
canStartActivityForResult()399     public boolean canStartActivityForResult() {
400         return mBase.canStartActivityForResult();
401     }
402 
403     @Override
startActivity(Intent intent, Bundle options)404     public void startActivity(Intent intent, Bundle options) {
405         mBase.startActivity(intent, options);
406     }
407 
408     /** @hide */
409     @Override
startActivityAsUser(Intent intent, Bundle options, UserHandle user)410     public void startActivityAsUser(Intent intent, Bundle options, UserHandle user) {
411         mBase.startActivityAsUser(intent, options, user);
412     }
413 
414     @Override
startActivities(Intent[] intents)415     public void startActivities(Intent[] intents) {
416         mBase.startActivities(intents);
417     }
418 
419     @Override
startActivities(Intent[] intents, Bundle options)420     public void startActivities(Intent[] intents, Bundle options) {
421         mBase.startActivities(intents, options);
422     }
423 
424     /** @hide */
425     @Override
startActivitiesAsUser(Intent[] intents, Bundle options, UserHandle userHandle)426     public int startActivitiesAsUser(Intent[] intents, Bundle options, UserHandle userHandle) {
427         return mBase.startActivitiesAsUser(intents, options, userHandle);
428     }
429 
430     @Override
startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)431     public void startIntentSender(IntentSender intent,
432             Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags)
433             throws IntentSender.SendIntentException {
434         mBase.startIntentSender(intent, fillInIntent, flagsMask,
435                 flagsValues, extraFlags);
436     }
437 
438     @Override
startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)439     public void startIntentSender(IntentSender intent,
440             Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags,
441             Bundle options) throws IntentSender.SendIntentException {
442         mBase.startIntentSender(intent, fillInIntent, flagsMask,
443                 flagsValues, extraFlags, options);
444     }
445 
446     @Override
sendBroadcast(Intent intent)447     public void sendBroadcast(Intent intent) {
448         mBase.sendBroadcast(intent);
449     }
450 
451     @Override
sendBroadcast(Intent intent, String receiverPermission)452     public void sendBroadcast(Intent intent, String receiverPermission) {
453         mBase.sendBroadcast(intent, receiverPermission);
454     }
455 
456     /** @hide */
457     @Override
sendBroadcastMultiplePermissions(Intent intent, String[] receiverPermissions)458     public void sendBroadcastMultiplePermissions(Intent intent, String[] receiverPermissions) {
459         mBase.sendBroadcastMultiplePermissions(intent, receiverPermissions);
460     }
461 
462     /** @hide */
463     @Override
sendBroadcastAsUserMultiplePermissions(Intent intent, UserHandle user, String[] receiverPermissions)464     public void sendBroadcastAsUserMultiplePermissions(Intent intent, UserHandle user,
465             String[] receiverPermissions) {
466         mBase.sendBroadcastAsUserMultiplePermissions(intent, user, receiverPermissions);
467     }
468 
469     /** @hide */
470     @SystemApi
471     @Override
sendBroadcast(Intent intent, String receiverPermission, Bundle options)472     public void sendBroadcast(Intent intent, String receiverPermission, Bundle options) {
473         mBase.sendBroadcast(intent, receiverPermission, options);
474     }
475 
476     /** @hide */
477     @Override
sendBroadcast(Intent intent, String receiverPermission, int appOp)478     public void sendBroadcast(Intent intent, String receiverPermission, int appOp) {
479         mBase.sendBroadcast(intent, receiverPermission, appOp);
480     }
481 
482     @Override
sendOrderedBroadcast(Intent intent, String receiverPermission)483     public void sendOrderedBroadcast(Intent intent,
484             String receiverPermission) {
485         mBase.sendOrderedBroadcast(intent, receiverPermission);
486     }
487 
488     @Override
sendOrderedBroadcast( Intent intent, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)489     public void sendOrderedBroadcast(
490         Intent intent, String receiverPermission, BroadcastReceiver resultReceiver,
491         Handler scheduler, int initialCode, String initialData,
492         Bundle initialExtras) {
493         mBase.sendOrderedBroadcast(intent, receiverPermission,
494                 resultReceiver, scheduler, initialCode,
495                 initialData, initialExtras);
496     }
497 
498     /** @hide */
499     @SystemApi
500     @Override
sendOrderedBroadcast( Intent intent, String receiverPermission, Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)501     public void sendOrderedBroadcast(
502             Intent intent, String receiverPermission, Bundle options, BroadcastReceiver resultReceiver,
503             Handler scheduler, int initialCode, String initialData,
504             Bundle initialExtras) {
505         mBase.sendOrderedBroadcast(intent, receiverPermission,
506                 options, resultReceiver, scheduler, initialCode,
507                 initialData, initialExtras);
508     }
509 
510     /** @hide */
511     @Override
sendOrderedBroadcast( Intent intent, String receiverPermission, int appOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)512     public void sendOrderedBroadcast(
513         Intent intent, String receiverPermission, int appOp, BroadcastReceiver resultReceiver,
514         Handler scheduler, int initialCode, String initialData,
515         Bundle initialExtras) {
516         mBase.sendOrderedBroadcast(intent, receiverPermission, appOp,
517                 resultReceiver, scheduler, initialCode,
518                 initialData, initialExtras);
519     }
520 
521     @Override
sendBroadcastAsUser(Intent intent, UserHandle user)522     public void sendBroadcastAsUser(Intent intent, UserHandle user) {
523         mBase.sendBroadcastAsUser(intent, user);
524     }
525 
526     @Override
sendBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission)527     public void sendBroadcastAsUser(Intent intent, UserHandle user,
528             String receiverPermission) {
529         mBase.sendBroadcastAsUser(intent, user, receiverPermission);
530     }
531 
532     /** @hide */
533     @Override
sendBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, Bundle options)534     public void sendBroadcastAsUser(Intent intent, UserHandle user,
535             String receiverPermission, Bundle options) {
536         mBase.sendBroadcastAsUser(intent, user, receiverPermission, options);
537     }
538 
539     /** @hide */
540     @Override
sendBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, int appOp)541     public void sendBroadcastAsUser(Intent intent, UserHandle user,
542             String receiverPermission, int appOp) {
543         mBase.sendBroadcastAsUser(intent, user, receiverPermission, appOp);
544     }
545 
546     @Override
sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)547     public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user,
548             String receiverPermission, BroadcastReceiver resultReceiver, Handler scheduler,
549             int initialCode, String initialData, Bundle initialExtras) {
550         mBase.sendOrderedBroadcastAsUser(intent, user, receiverPermission, resultReceiver,
551                 scheduler, initialCode, initialData, initialExtras);
552     }
553 
554     /** @hide */
555     @Override
sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, int appOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)556     public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user,
557             String receiverPermission, int appOp, BroadcastReceiver resultReceiver,
558             Handler scheduler, int initialCode, String initialData, Bundle initialExtras) {
559         mBase.sendOrderedBroadcastAsUser(intent, user, receiverPermission, appOp, resultReceiver,
560                 scheduler, initialCode, initialData, initialExtras);
561     }
562 
563     /** @hide */
564     @Override
sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, int appOp, Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)565     public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user,
566             String receiverPermission, int appOp, Bundle options, BroadcastReceiver resultReceiver,
567             Handler scheduler, int initialCode, String initialData, Bundle initialExtras) {
568         mBase.sendOrderedBroadcastAsUser(intent, user, receiverPermission, appOp, options,
569                 resultReceiver, scheduler, initialCode, initialData, initialExtras);
570     }
571 
572     @Override
573     @Deprecated
sendStickyBroadcast(Intent intent)574     public void sendStickyBroadcast(Intent intent) {
575         mBase.sendStickyBroadcast(intent);
576     }
577 
578     @Override
579     @Deprecated
sendStickyOrderedBroadcast( Intent intent, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)580     public void sendStickyOrderedBroadcast(
581         Intent intent, BroadcastReceiver resultReceiver,
582         Handler scheduler, int initialCode, String initialData,
583         Bundle initialExtras) {
584         mBase.sendStickyOrderedBroadcast(intent,
585                 resultReceiver, scheduler, initialCode,
586                 initialData, initialExtras);
587     }
588 
589     @Override
590     @Deprecated
removeStickyBroadcast(Intent intent)591     public void removeStickyBroadcast(Intent intent) {
592         mBase.removeStickyBroadcast(intent);
593     }
594 
595     @Override
596     @Deprecated
sendStickyBroadcastAsUser(Intent intent, UserHandle user)597     public void sendStickyBroadcastAsUser(Intent intent, UserHandle user) {
598         mBase.sendStickyBroadcastAsUser(intent, user);
599     }
600 
601     /** @hide */
602     @Override
603     @Deprecated
sendStickyBroadcastAsUser(Intent intent, UserHandle user, Bundle options)604     public void sendStickyBroadcastAsUser(Intent intent, UserHandle user, Bundle options) {
605         mBase.sendStickyBroadcastAsUser(intent, user, options);
606     }
607 
608     @Override
609     @Deprecated
sendStickyOrderedBroadcastAsUser(Intent intent, UserHandle user, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras)610     public void sendStickyOrderedBroadcastAsUser(Intent intent,
611             UserHandle user, BroadcastReceiver resultReceiver,
612             Handler scheduler, int initialCode, String initialData,
613             Bundle initialExtras) {
614         mBase.sendStickyOrderedBroadcastAsUser(intent, user, resultReceiver,
615                 scheduler, initialCode, initialData, initialExtras);
616     }
617 
618     @Override
619     @Deprecated
removeStickyBroadcastAsUser(Intent intent, UserHandle user)620     public void removeStickyBroadcastAsUser(Intent intent, UserHandle user) {
621         mBase.removeStickyBroadcastAsUser(intent, user);
622     }
623 
624     @Override
registerReceiver( BroadcastReceiver receiver, IntentFilter filter)625     public Intent registerReceiver(
626         BroadcastReceiver receiver, IntentFilter filter) {
627         return mBase.registerReceiver(receiver, filter);
628     }
629 
630     @Override
registerReceiver( BroadcastReceiver receiver, IntentFilter filter, int flags)631     public Intent registerReceiver(
632         BroadcastReceiver receiver, IntentFilter filter, int flags) {
633         return mBase.registerReceiver(receiver, filter, flags);
634     }
635 
636     @Override
registerReceiver( BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler)637     public Intent registerReceiver(
638         BroadcastReceiver receiver, IntentFilter filter,
639         String broadcastPermission, Handler scheduler) {
640         return mBase.registerReceiver(receiver, filter, broadcastPermission,
641                 scheduler);
642     }
643 
644     @Override
registerReceiver( BroadcastReceiver receiver, IntentFilter filter, String broadcastPermission, Handler scheduler, int flags)645     public Intent registerReceiver(
646         BroadcastReceiver receiver, IntentFilter filter,
647         String broadcastPermission, Handler scheduler, int flags) {
648         return mBase.registerReceiver(receiver, filter, broadcastPermission,
649                 scheduler, flags);
650     }
651 
652     /** @hide */
653     @Override
654     @UnsupportedAppUsage
registerReceiverAsUser( BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler)655     public Intent registerReceiverAsUser(
656         BroadcastReceiver receiver, UserHandle user, IntentFilter filter,
657         String broadcastPermission, Handler scheduler) {
658         return mBase.registerReceiverAsUser(receiver, user, filter, broadcastPermission,
659                 scheduler);
660     }
661 
662     @Override
unregisterReceiver(BroadcastReceiver receiver)663     public void unregisterReceiver(BroadcastReceiver receiver) {
664         mBase.unregisterReceiver(receiver);
665     }
666 
667     @Override
startService(Intent service)668     public ComponentName startService(Intent service) {
669         return mBase.startService(service);
670     }
671 
672     @Override
startForegroundService(Intent service)673     public ComponentName startForegroundService(Intent service) {
674         return mBase.startForegroundService(service);
675     }
676 
677     @Override
stopService(Intent name)678     public boolean stopService(Intent name) {
679         return mBase.stopService(name);
680     }
681 
682     /** @hide */
683     @Override
684     @UnsupportedAppUsage
startServiceAsUser(Intent service, UserHandle user)685     public ComponentName startServiceAsUser(Intent service, UserHandle user) {
686         return mBase.startServiceAsUser(service, user);
687     }
688 
689     /** @hide */
690     @Override
691     @UnsupportedAppUsage
startForegroundServiceAsUser(Intent service, UserHandle user)692     public ComponentName startForegroundServiceAsUser(Intent service, UserHandle user) {
693         return mBase.startForegroundServiceAsUser(service, user);
694     }
695 
696     /** @hide */
697     @Override
stopServiceAsUser(Intent name, UserHandle user)698     public boolean stopServiceAsUser(Intent name, UserHandle user) {
699         return mBase.stopServiceAsUser(name, user);
700     }
701 
702     @Override
bindService(Intent service, ServiceConnection conn, int flags)703     public boolean bindService(Intent service, ServiceConnection conn,
704             int flags) {
705         return mBase.bindService(service, conn, flags);
706     }
707 
708     @Override
bindService(Intent service, int flags, Executor executor, ServiceConnection conn)709     public boolean bindService(Intent service, int flags, Executor executor,
710             ServiceConnection conn) {
711         return mBase.bindService(service, flags, executor, conn);
712     }
713 
714     @Override
bindIsolatedService(Intent service, int flags, String instanceName, Executor executor, ServiceConnection conn)715     public boolean bindIsolatedService(Intent service, int flags, String instanceName,
716             Executor executor, ServiceConnection conn) {
717         return mBase.bindIsolatedService(service, flags, instanceName, executor, conn);
718     }
719 
720     /** @hide */
721     @Override
bindServiceAsUser(Intent service, ServiceConnection conn, int flags, UserHandle user)722     public boolean bindServiceAsUser(Intent service, ServiceConnection conn, int flags,
723             UserHandle user) {
724         return mBase.bindServiceAsUser(service, conn, flags, user);
725     }
726 
727     /** @hide */
728     @Override
bindServiceAsUser(Intent service, ServiceConnection conn, int flags, Handler handler, UserHandle user)729     public boolean bindServiceAsUser(Intent service, ServiceConnection conn, int flags,
730             Handler handler, UserHandle user) {
731         return mBase.bindServiceAsUser(service, conn, flags, handler, user);
732     }
733 
734     @Override
updateServiceGroup(ServiceConnection conn, int group, int importance)735     public void updateServiceGroup(ServiceConnection conn, int group, int importance) {
736         mBase.updateServiceGroup(conn, group, importance);
737     }
738 
739     @Override
unbindService(ServiceConnection conn)740     public void unbindService(ServiceConnection conn) {
741         mBase.unbindService(conn);
742     }
743 
744     @Override
startInstrumentation(ComponentName className, String profileFile, Bundle arguments)745     public boolean startInstrumentation(ComponentName className,
746             String profileFile, Bundle arguments) {
747         return mBase.startInstrumentation(className, profileFile, arguments);
748     }
749 
750     @Override
getSystemService(String name)751     public Object getSystemService(String name) {
752         return mBase.getSystemService(name);
753     }
754 
755     @Override
getSystemServiceName(Class<?> serviceClass)756     public String getSystemServiceName(Class<?> serviceClass) {
757         return mBase.getSystemServiceName(serviceClass);
758     }
759 
760     @Override
checkPermission(String permission, int pid, int uid)761     public int checkPermission(String permission, int pid, int uid) {
762         return mBase.checkPermission(permission, pid, uid);
763     }
764 
765     /** @hide */
766     @Override
checkPermission(String permission, int pid, int uid, IBinder callerToken)767     public int checkPermission(String permission, int pid, int uid, IBinder callerToken) {
768         return mBase.checkPermission(permission, pid, uid, callerToken);
769     }
770 
771     @Override
checkCallingPermission(String permission)772     public int checkCallingPermission(String permission) {
773         return mBase.checkCallingPermission(permission);
774     }
775 
776     @Override
checkCallingOrSelfPermission(String permission)777     public int checkCallingOrSelfPermission(String permission) {
778         return mBase.checkCallingOrSelfPermission(permission);
779     }
780 
781     @Override
checkSelfPermission(String permission)782     public int checkSelfPermission(String permission) {
783        return mBase.checkSelfPermission(permission);
784     }
785 
786     @Override
enforcePermission( String permission, int pid, int uid, String message)787     public void enforcePermission(
788             String permission, int pid, int uid, String message) {
789         mBase.enforcePermission(permission, pid, uid, message);
790     }
791 
792     @Override
enforceCallingPermission(String permission, String message)793     public void enforceCallingPermission(String permission, String message) {
794         mBase.enforceCallingPermission(permission, message);
795     }
796 
797     @Override
enforceCallingOrSelfPermission( String permission, String message)798     public void enforceCallingOrSelfPermission(
799             String permission, String message) {
800         mBase.enforceCallingOrSelfPermission(permission, message);
801     }
802 
803     @Override
grantUriPermission(String toPackage, Uri uri, int modeFlags)804     public void grantUriPermission(String toPackage, Uri uri, int modeFlags) {
805         mBase.grantUriPermission(toPackage, uri, modeFlags);
806     }
807 
808     @Override
revokeUriPermission(Uri uri, int modeFlags)809     public void revokeUriPermission(Uri uri, int modeFlags) {
810         mBase.revokeUriPermission(uri, modeFlags);
811     }
812 
813     @Override
revokeUriPermission(String targetPackage, Uri uri, int modeFlags)814     public void revokeUriPermission(String targetPackage, Uri uri, int modeFlags) {
815         mBase.revokeUriPermission(targetPackage, uri, modeFlags);
816     }
817 
818     @Override
checkUriPermission(Uri uri, int pid, int uid, int modeFlags)819     public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags) {
820         return mBase.checkUriPermission(uri, pid, uid, modeFlags);
821     }
822 
823     /** @hide */
824     @Override
checkUriPermission(Uri uri, int pid, int uid, int modeFlags, IBinder callerToken)825     public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags, IBinder callerToken) {
826         return mBase.checkUriPermission(uri, pid, uid, modeFlags, callerToken);
827     }
828 
829     @Override
checkCallingUriPermission(Uri uri, int modeFlags)830     public int checkCallingUriPermission(Uri uri, int modeFlags) {
831         return mBase.checkCallingUriPermission(uri, modeFlags);
832     }
833 
834     @Override
checkCallingOrSelfUriPermission(Uri uri, int modeFlags)835     public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) {
836         return mBase.checkCallingOrSelfUriPermission(uri, modeFlags);
837     }
838 
839     @Override
checkUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags)840     public int checkUriPermission(Uri uri, String readPermission,
841             String writePermission, int pid, int uid, int modeFlags) {
842         return mBase.checkUriPermission(uri, readPermission, writePermission,
843                 pid, uid, modeFlags);
844     }
845 
846     @Override
enforceUriPermission( Uri uri, int pid, int uid, int modeFlags, String message)847     public void enforceUriPermission(
848             Uri uri, int pid, int uid, int modeFlags, String message) {
849         mBase.enforceUriPermission(uri, pid, uid, modeFlags, message);
850     }
851 
852     @Override
enforceCallingUriPermission( Uri uri, int modeFlags, String message)853     public void enforceCallingUriPermission(
854             Uri uri, int modeFlags, String message) {
855         mBase.enforceCallingUriPermission(uri, modeFlags, message);
856     }
857 
858     @Override
enforceCallingOrSelfUriPermission( Uri uri, int modeFlags, String message)859     public void enforceCallingOrSelfUriPermission(
860             Uri uri, int modeFlags, String message) {
861         mBase.enforceCallingOrSelfUriPermission(uri, modeFlags, message);
862     }
863 
864     @Override
enforceUriPermission( Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags, String message)865     public void enforceUriPermission(
866             Uri uri, String readPermission, String writePermission,
867             int pid, int uid, int modeFlags, String message) {
868         mBase.enforceUriPermission(
869                 uri, readPermission, writePermission, pid, uid, modeFlags,
870                 message);
871     }
872 
873     @Override
createPackageContext(String packageName, int flags)874     public Context createPackageContext(String packageName, int flags)
875         throws PackageManager.NameNotFoundException {
876         return mBase.createPackageContext(packageName, flags);
877     }
878 
879     /** @hide */
880     @Override
createPackageContextAsUser(String packageName, int flags, UserHandle user)881     public Context createPackageContextAsUser(String packageName, int flags, UserHandle user)
882             throws PackageManager.NameNotFoundException {
883         return mBase.createPackageContextAsUser(packageName, flags, user);
884     }
885 
886     /** @hide */
887     @Override
888     @UnsupportedAppUsage
createApplicationContext(ApplicationInfo application, int flags)889     public Context createApplicationContext(ApplicationInfo application,
890             int flags) throws PackageManager.NameNotFoundException {
891         return mBase.createApplicationContext(application, flags);
892     }
893 
894     /** @hide */
895     @Override
createContextForSplit(String splitName)896     public Context createContextForSplit(String splitName)
897             throws PackageManager.NameNotFoundException {
898         return mBase.createContextForSplit(splitName);
899     }
900 
901     /** @hide */
902     @Override
getUserId()903     public int getUserId() {
904         return mBase.getUserId();
905     }
906 
907     @Override
createConfigurationContext(Configuration overrideConfiguration)908     public Context createConfigurationContext(Configuration overrideConfiguration) {
909         return mBase.createConfigurationContext(overrideConfiguration);
910     }
911 
912     @Override
createDisplayContext(Display display)913     public Context createDisplayContext(Display display) {
914         return mBase.createDisplayContext(display);
915     }
916 
917     @Override
isRestricted()918     public boolean isRestricted() {
919         return mBase.isRestricted();
920     }
921 
922     /** @hide */
923     @Override
getDisplayAdjustments(int displayId)924     public DisplayAdjustments getDisplayAdjustments(int displayId) {
925         return mBase.getDisplayAdjustments(displayId);
926     }
927 
928     /** @hide */
929     @TestApi
930     @Override
getDisplay()931     public Display getDisplay() {
932         return mBase.getDisplay();
933     }
934 
935     /**
936      * @hide
937      */
938     @Override
getDisplayId()939     public int getDisplayId() {
940         return mBase.getDisplayId();
941     }
942 
943     /**
944      * @hide
945      */
946     @Override
updateDisplay(int displayId)947     public void updateDisplay(int displayId) {
948         mBase.updateDisplay(displayId);
949     }
950 
951     @Override
createDeviceProtectedStorageContext()952     public Context createDeviceProtectedStorageContext() {
953         return mBase.createDeviceProtectedStorageContext();
954     }
955 
956     /** {@hide} */
957     @SystemApi
958     @Override
createCredentialProtectedStorageContext()959     public Context createCredentialProtectedStorageContext() {
960         return mBase.createCredentialProtectedStorageContext();
961     }
962 
963     @Override
isDeviceProtectedStorage()964     public boolean isDeviceProtectedStorage() {
965         return mBase.isDeviceProtectedStorage();
966     }
967 
968     /** {@hide} */
969     @SystemApi
970     @Override
isCredentialProtectedStorage()971     public boolean isCredentialProtectedStorage() {
972         return mBase.isCredentialProtectedStorage();
973     }
974 
975     /** {@hide} */
976     @Override
canLoadUnsafeResources()977     public boolean canLoadUnsafeResources() {
978         return mBase.canLoadUnsafeResources();
979     }
980 
981     /**
982      * @hide
983      */
984     @Override
getActivityToken()985     public IBinder getActivityToken() {
986         return mBase.getActivityToken();
987     }
988 
989     /**
990      * @hide
991      */
992     @Override
getServiceDispatcher(ServiceConnection conn, Handler handler, int flags)993     public IServiceConnection getServiceDispatcher(ServiceConnection conn, Handler handler,
994             int flags) {
995         return mBase.getServiceDispatcher(conn, handler, flags);
996     }
997 
998     /**
999      * @hide
1000      */
1001     @Override
getIApplicationThread()1002     public IApplicationThread getIApplicationThread() {
1003         return mBase.getIApplicationThread();
1004     }
1005 
1006     /**
1007      * @hide
1008      */
1009     @Override
getMainThreadHandler()1010     public Handler getMainThreadHandler() {
1011         return mBase.getMainThreadHandler();
1012     }
1013 
1014     /**
1015      * @hide
1016      */
1017     @Override
getNextAutofillId()1018     public int getNextAutofillId() {
1019         return mBase.getNextAutofillId();
1020     }
1021 
1022     /**
1023      * @hide
1024      */
1025     @Override
getAutofillClient()1026     public AutofillClient getAutofillClient() {
1027         return mBase.getAutofillClient();
1028     }
1029 
1030     /**
1031      * @hide
1032      */
1033     @Override
setAutofillClient(AutofillClient client)1034     public void setAutofillClient(AutofillClient client) {
1035         mBase.setAutofillClient(client);
1036     }
1037 
1038     /** @hide */
1039     @Override
getAutofillOptions()1040     public AutofillOptions getAutofillOptions() {
1041         return mBase == null ? null : mBase.getAutofillOptions();
1042     }
1043 
1044     /** @hide */
1045     @Override
setAutofillOptions(AutofillOptions options)1046     public void setAutofillOptions(AutofillOptions options) {
1047         if (mBase != null) {
1048             mBase.setAutofillOptions(options);
1049         }
1050     }
1051 
1052     /**
1053      * @hide
1054      */
1055     @Override
getContentCaptureOptions()1056     public ContentCaptureOptions getContentCaptureOptions() {
1057         return mBase == null ? null : mBase.getContentCaptureOptions();
1058     }
1059 
1060     /**
1061      * @hide
1062      */
1063     @TestApi
1064     @Override
setContentCaptureOptions(ContentCaptureOptions options)1065     public void setContentCaptureOptions(ContentCaptureOptions options) {
1066         if (mBase != null) {
1067             mBase.setContentCaptureOptions(options);
1068         }
1069     }
1070 }
1071