summaryrefslogtreecommitdiff
path: root/core/java/android/app/Application.java
Commit message (Collapse)AuthorAgeFilesLines
* Remove STOPSHIPMakoto Onuki2022-04-211-28/+0
| | | | | | Fix: 221248960 Test: Boot, treehugger Change-Id: Ib313e21f4df1b117514887b58f8c229ad87de58f
* Update duplicate-app WTFMakoto Onuki2022-02-241-28/+14
| | | | | | | | | Simplify the logic, and instead only enable it for gms-core Test: Manual test with a test app Bug: 185177290 Bug: 221248960 Change-Id: If75cc3ef8e56469b384d9431f53bcacce638f23c
* Add a check to detect "duplicate app instances" bugMakoto Onuki2022-01-211-0/+50
| | | | | | | | Test: Boot Test: Added debug code to induce the WTF situation, booted and checked the log Bug: 185177290 Change-Id: Ie95164f2794b461115f07d02c2363fbdc9a517b4
* Merge "Notify split controller about activity configuration change" into ↵Andrii Kulian2021-07-281-0/+17
|\ | | | | | | | | | | | | | | sc-v2-dev am: b1d8c0c3c4 am: 5dda0d2b81 Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15379178 Change-Id: I0a3443478d083bf0bd50ea8104c78daf3938686c
| * Notify split controller about activity configuration changeAndrii Kulian2021-07-261-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Track activity configuration changes, so that split controller has a chance to apply metrics-based rules like launching a placeholder. Not using ComponentCallbacks here, since they are only triggered for Application configuration changes, which might be problematic if there are multiple running activities with different sizes. They are also usually triggered before individual activity resources are updated. Also moved post-creation actions to onActivityPostCreated(), since onActivityCreated() is called from the base implementation in Activity#onCreate() and there is still a chance that app may perform some actions after calling super in its override. Bug: 194538838 Test: Configure a placeholder, launch in a small size, enlarge. Change-Id: Ied55d5f920890fa554cdd66419235d61ab03b440
* | Move autofill implementation from Activity to a delegate class.Joanne Chung2021-07-221-1/+1
|/ | | | | | | | Bug: 178364867 Test: manual Test: atest CtsAutoFillServicesTestCases Change-Id: I0cb58b9c6d469a2067e3d5aa027bca1289b3cd1a
* Enable to listen to WindowContext's config changesCharles Chen2021-03-191-40/+9
| | | | | | | | | | | | | | | | | | | | | | | | This CL overrides registerComponentCallbacks for WindowContext. Users can use below code snippet to listen to Configuration changes. ``` Context windowContext = context.createWindowContext( display, ...); windowContext.registerComponentCallbacks( new ComponentCallbacks() { @Override public void onConfigurationChanged( Configuration newConfig) { // Do Something } }); ``` Bug: 181134729 Test: atest WindowContextTests Test: atest ComponentCallbacksControllerTest Change-Id: Iff46607bae3c942a96b64dcc97708f3a8c33f23a
* Add maxTargetSdk restriction to unused APIs.Mathew Inwood2020-10-291-14/+15
| | | | | | | | | | | | | | | | | | | These are APIs that have @UnsupportedAppUsage but for which we don't have any evidence of them currently being used, so should be safe to remove from the unsupported list. This is a resubmit of ag/12929664 with some APIs excluded that caused test failures; see bugs 171886397, 171888296, 171864568. APIs excluded: Landroid/bluetooth/le/ScanRecord;->parseFromBytes([B)Landroid/bluetooth/le/ScanRecord; Landroid/os/Process;->myPpid()I Landroid/os/SharedMemory;->getFd()I Landroid/hardware/input/InputManager;->INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH:I Bug: 170729553 Test: Treehugger Change-Id: I8285daa8530260251ecad6f3f38f98e263629ca7
* Revert "Add maxTargetSdk restriction to unused APIs."Hongwei Wang2020-10-281-15/+14
| | | | | | | | | This reverts commit 72f07d6a8a32db4a0dedd7682a0b3385be2b9cd6. Reason for revert: Droidcop-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?testMethod=testAppZygotePreload&testClass=android.app.cts.ServiceTest&atpConfigName=suite%2Ftest-mapping-presubmit-retry_cloud-tf&testModule=CtsAppTestCases&fkbb=6936597&lkbb=6936969&lkgb=6936551&testResults=true&branch=git_master&target=cf_x86_phone-userdebug>, bug b/171886397 Bug: 171886397 Change-Id: Ibe0f0430a3451477c1ee8ef56a596e91ea1e7672
* Add maxTargetSdk restriction to unused APIs.Mathew Inwood2020-10-271-14/+15
| | | | | | | | | | These are APIs that have @UnsupportedAppUsage but for which we don't have any evidence of them currently being used, so should be safe to remove from the unsupported list. Bug: 170729553 Test: Treehugger Change-Id: I4c8fd0006f950de9955242e93968fb0996ceb372
* Use new UnsupportedAppUsage annotation.Artur Satayev2019-12-181-1/+1
| | | | | | | | Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library. Bug: 145132366 Test: m && diff unsupportedappusage_index.csv Change-Id: I8789f8499d4dca08580672e9e45ed9a7026dd686
* Add pre and post callbacks to ActivityLifecycleCallbacksIan Lake2018-09-251-0/+279
| | | | | | | | | | | | | | | | For each lifecycle event exposed in ActivityLifecycleCallbacks, an additional pair of methods have been added to give developers a reliable callback before and after each lifecycle event. The existing callbacks cannot be used for this as they are called as part of the super implementation and therefore can run at any point in relation to the other code in the Activity. Test: manual BUG: 116118635 Change-Id: If91f3f3248f9d7cf14aac2fe24ce14d92b8d05d3
* Annotate ComponentCallbacks with nullability annotationsIan Lake2018-09-121-1/+1
| | | | | | BUG: 78245676 Test: make Change-Id: Idd88ecbfc97672f3a234641c8892c245b4fe130a
* Add @UnsupportedAppUsage annotationsMathew Inwood2018-08-141-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | For packages: android.app.usage android.app.trust android.app.timezonedetector android.app.timezone android.app.timedetector android.app.job android.app.backup android.app.assist android.app.admin android.app This is an automatically generated CL. See go/UnsupportedAppUsage for more details. Exempted-From-Owner-Approval: Mechanical changes to the codebase which have been approved by Android API council and announced on android-eng@ Bug: 110868826 Test: m Change-Id: I618c5dc4462ae990d9df45c3e9ed3f092cc5138c
* Add nullability annotations to lifecycle callbacksJake Wharton2018-07-101-14/+18
| | | | | | Bug: 77936892 Test: none Change-Id: I83f5ff5c8a7955c189617eb8c489171da93fd47a
* Improved Application.getAutofillClient()Felipe Leme2018-03-141-3/+15
| | | | | | | | | | | - Fixed usage of activity instead of record.activity - Added (optional) verbose logging Bug: 74793485 Test: atest CtsAutoFillServiceTestCases:VirtualContainerActivityTest#testAutofill_appContext\ CtsAutoFillServiceTestCases:VirtualContainerActivityCompatModeTest#testAutofill_appContext Change-Id: I03721cab6428e580b13444bf045f33dc3d787a8d
* Add Application.getProcessName()Andrew Grieve2018-03-061-1/+11
| | | | | | | | | | | | | | | | | | This information is already available to non-sandboxed processes via ActivityManager.getRunningAppProcesses(). However, performing an IPC and iterating processes is quite cumbersome. See other alternatives devs have tried: https://stackoverflow.com/questions/19631894/is-there-a-way-to-get-current-process-name-in-android My specific motivation for exposing this information more directly is to be able to perform process-specific initialization logic in Application.attachBaseContext(): https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java?rcl=ac2e180a1265f88dd4030bb35d69f5d0b2dc488d&l=54 Bug: 73344323 Test: Same code that's used in Chrome via reflection. Change-Id: I83cec468458078e3fa183427a039869f74539c3d
* Autofill compatibility mode.Svetoslav Ganov2018-02-021-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Autofill helps users fill credentials, addresses, payment methods, emails, etc without manually typing. When focus lands on a fillable element the platform captures a snapshot of the screen content and sends it to an autofill service for analysis and suggestions. The screen snapshot is a structured representation of the screen content. If this content is composed of standard widgets, autofill works out-of-the-box. However, some apps do their own rendering and the content in this case looks like a single view to the platform while it may have semantic structure. For example, a view may render a login page with two input test fields. The platform exposes APIs for apps to report virtual view structure allowing autofill services to handle apps that have virtual content. As opposed to apps using standard widgets, this case requires the app developer to implement the new APIs which may require a fair amount of code and could be seen as a processes that could take some time. The most prominent typs of apps that fall into this category are browsers. Until most apps rendering virtual content and specifically browsers don't implement the virutal APIs, autofill providers need to fall- back to using the accessibliity APIs to provide autofill support for these apps. This requires developers to work against two sets of APIs - autofill and accessibility - which is incovenient and error prone. Also, users need to enable two plugins - autofill and accessibility which is confusing. Additionally, the privacy and perfomance impact of using the accessibility APIs cannot be addressed while autofill providers need to use thes APis. This change adds an autofill compatibility mode that would allow autofill services to work with apps that don't implement the virtual structure autofill APIs. The key idea is to locally enable accessibility for the target package and remap accessibility to autofill APIs and vise versa. This way an autofill provider codes against a single set of APIs, the users enable a single plugin, the privacy/performance implications of using the accessibility APIs are addressed, the target app only takes a performance hit since accessibility is enabled locally which is still more efficient compared to the performance hit it would incur if accessibility is enabled globally. To enable compatibility mode an autofill service declares in its metadata which packages it is interested in and also what is the max version code of the package for which to enable compat mode. Targeted versioning allows targeting only older versions of the package that are known to not support autofill while newer versions that are known to support autofill would work in normal mode. Since compatibility mode should be used only as a fallback we have a white list setting with the packages for which this mode can be requested. This allows applying policy to target only apps that are known to not support autofill. Test: cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases cts-tradefed run cts-dev -m CtsAccessibilityServiceTestCases bug:72811034 Change-Id: I11f1580ced0f8b4300a10b3a5174a1758a5702a0
* Merge "Revert "Minor LoadedApk refactoring.""TreeHugger Robot2018-01-301-1/+1
|\
| * Revert "Minor LoadedApk refactoring."Todd Kennedy2018-01-301-1/+1
| | | | | | | | | | | | | | | | This reverts commit 7541ca4d1aa48e3110187a83a8dccbfa72084148. Change-Id: I2a6aa5038870c32c4145436f0463092c9b82dd23 Bug: 71501570 Test: manual
* | Comment more on component callback order for N+ OSYohei Yukawa2018-01-261-3/+13
|/ | | | | | | | | | | This CL attempts to clarify that just having a ContentProvider does not necessarily mean ContentProvider#onCreate() is always called before Application#onCreate() on Android N and later devices because of direct boot. Fix: 67559645 Test: make -j doc-comment-check-docs Change-Id: I33b7cda42146333f48fb445027f5d31f3c5af5b6
* Minor LoadedApk refactoring.Jeff Hamilton2017-12-141-1/+1
| | | | | | | | - Rename varaibles holding LoadedApk to make the code easier to read. - Move resource creation into LoadedApk, consolidating the logic. Test: manual Change-Id: I6bdc70482fbbb346ff694ada528ded18d3a63ef7
* Revert "Add API to allow apps more control over instantiation"Dan Sandler2017-08-151-74/+2
| | | | | | | | This reverts commit 6945710e124ae22dac90f53e9183ab67c6eab258. Bug: 64345190 Test: n/a Change-Id: Id0aa0f3c9fca64476d163ea8b42a74182050b3ae
* Add API to allow apps more control over instantiationJason Monk2017-06-081-2/+74
| | | | | | | | | Let them control construction of standard manifest elements (like activities) through Application. This will allow for things like dependency injection and class loader magic. Test: manual Change-Id: Iaa2215b225c3b97f4e9ac809dfe499f98c7ad5f1
* Revert "Call ActivityCallbacks after corresponding activity methods"Narayan Kamath2017-02-021-11/+0
| | | | | | | | | | This reverts commit 660cf30e2100d8ed40198c95f93b61e5d1cdb10c. bug: 34415265 bug: 34914977 Test: chrome launches Change-Id: I170365fd47313bafb0d722e6d55ee119336137c4
* Call ActivityCallbacks after corresponding activity methodssergeyv2017-01-311-0/+11
| | | | | | Test: android.app.cts.ActivityCallbacksTest bug:34415265 Change-Id: I1d8dd3a5c564c2036174a686aeb0eaf0883c0a55
* docs: Clarified purpose of application "name" attr within manifest.Kevin Hufnagle2016-04-191-12/+14
| | | | | | | | | | | Improved descriptions of the "name" attribute of the <application> element, which appears within an Android app's <manifest> element in its manifest file. Also clarified connection between this attribute and custom subclasses of the Application class. Bug: 1232595 Change-Id: I79b6bd31224c7669b5dc509914a01ead84a049dc Abandoned-Change-Id: Icee66f6b8df55c7fad414b4c19939a483dc7a165
* docs: Fixed whitespace in documents referencing "Application"Kevin Hufnagle2016-04-191-3/+3
| | | | | | | | | | | element. Several files associated with a future CL contain extra whitespace. I've made a separate CL here to avoid inflating the "changed lines" count within this future CL. Change-Id: Ie8199abd2a61b77d0fb349435983050e0e06afc7 Abandoned-Change-Id: I92f75ba0ef08e10210434f824fd99caee3703b5e
* Annotate Application with @CallSuperJohn Reck2015-05-061-0/+6
| | | | | Bug: 19844784 Change-Id: I12431ed65edd0076e1231ba6ebcff479580370c4
* Fix issue #8656537: API review: styles, assistDianne Hackborn2013-04-181-11/+8
| | | | Change-Id: I5542fb548805fc885b51a1dd1133a3ac226df96b
* Modify restrictions bundle per api council recommendationsAmith Yamasani2013-04-171-5/+0
| | | | | | | | | | | | | Use a Bundle for persisting and passing to the application, but use a list to return data back from an application that's exposing restrictions. Changed the xml reading/writing code to store the value type in the Bundle so that it can be reproduced when reading. Earlier we were assuming only String and String[]. Bug: 8633967 Change-Id: I523d5553728edcf28a1e9d432f490b4956f34215
* Application restrictions APIAmith Yamasani2013-03-201-0/+8
| | | | | | | | | | | | | | | | Adds the ability for apps to export some restrictions. The restrictions are presented in Settings based on the restriction type. The user's selections are stored by UserManagerService and provided to the target user's application as a list of RestrictionEntry objects which contain the key, value(s). Also introduce a manifest entry for system apps to request that the app be automatically installed in all users, so that they cannot be deselected by the owner user. Shared account filtering for non-whitelisted apps. Change-Id: I15b741e3c0f3448883cb364c130783f1f6ea7ce6
* Add new API to propagate contextual data to the assist actionDianne Hackborn2013-01-231-1/+50
| | | | | | | | | When launching an assist, we have a new API allowing the current foreground activity/application to provide additional arbitrary contextual information that is stuffed in the assist intent before it is launched. Change-Id: I0b2a6f5a266dc42cc0175327fa76774f814af3b4
* Improved documentation (clarify on issue 8727)Jacob Nordfalk2012-02-011-5/+6
| | | | | Signed-off-by: Jacob Nordfalk <jacob.nordfalk@gmail.com> Change-Id: I2bea866542c95eb0558004a64c9a2fd74aeff35b
* Various work on out of memory managment.Dianne Hackborn2011-07-291-4/+156
| | | | | | | | | | | | | - Improve how we handle processes that have shown UI, to take care of more cases where we want to push them into the background LRU list. - New trim memory level for when an application that has done UI is no longer visible to the user. - Add APIs to get new trim memory callback. - Add a host of new bind flags to tweak how the system will adjust the OOM level of the target process. Change-Id: I23ba354112f411a9f8773a67426b4dff85fa2439
* Work on issue #4518815: Compatibility mode introduces compatibility ↵Dianne Hackborn2011-06-081-1/+3
| | | | | | | | | | | | | | | | | | | regression... ...for Market App iRunner There were a lot of serious issues with how we updated (or often didn't update) the display and resource state when switching compatibility mode in conjunction with restarting and updating application components. This addresses everything I could find. Unfortunately it does *not* fix this particular app. I am starting to think this is just an issue in the app. This change does fix a number of other problems I could repro, such as switching the compatibility mode of an IME. Also a few changes here and there to get rid of $#*&^!! debug logs. Change-Id: Ib15572eac9ec93b4b9966ddcbbc830ce9dec1317
* Fix issue #3152415: Various confusions in docs about ApplicationDianne Hackborn2010-11-011-6/+12
| | | | Change-Id: Ie1b480ed7a47a3eb6ffff76bef0dcd7b2b845e83
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+74
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-74/+0
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+74