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